ADC電路主要存在靜態仿真和動態仿真兩類仿真,針對兩種不同的仿真,我們存在不同的輸入信號和不同的數據采樣,因此靜態仿真和動態仿真是完全不同的兩個概念,所以設置的參數不同:
靜態參數仿真:
主要參數為INL DNL
輸入斜坡信號作為激勵
用WavevsWave 繪制出輸入模擬量和數字編碼之間的關系。利用calculator中的inl dnl函數進行計算。
動態參數仿真:
信噪比(SNR),信號噪聲失真比(SINAD),有效位數(ENOB),總諧波失真(THD),無雜散動態范圍(SFDR);
SNR:信噪比是輸入信號和噪聲(不包括任何諧波以及直流) 的功率比,衡量器件內部噪聲大小的基本參數。
SINAD:SINAD是輸入信號和所有輸出信號失真功率(包括諧波成分,不包括直流)比,它測量的是輸出信號所有傳遞函數非線性加上系統所有噪聲(量化、抖動和假頻)的累積效果。
ENOB: 表示ADC在轉換過程中真正輸出有效的位數。
THD: 總諧波失真是輸入信號與系統所有諧波的總功率比,它可提供系統對稱和非對稱非線性產生的失真大小,用以表達其對信號的諧波含量的作用或者影響。
SFDR: 表示器件輸入和輸出之間的非線性
第一步:在ADC后面接一個理想的DAC(VerilogA實現)。根據需求修改所需要的位數。
可以在cadence得ahdLib庫中找到dac_8bit_ideal元件參考
第二步:確定如何加激勵(滿足相干采樣情況下,設定輸入信號頻率)。
我這里使用編寫得程序進行自動計算
下面說明手動計算具體如何實現:
1.確定采樣率
設ADC CLK的周期為40ns,即頻率為25MHz,設置采樣周期為8CLK,轉換周期是12CLK,因此采樣時間間隔為20CLK,從而采樣率為25M/20=1.25MSPS(1.25MHz)
采樣率=CLK的頻率除以(采樣周期+轉換周期)
(若采樣周期為4CLK,采樣率為25M/16=1.5625MSPS)
2.確定采樣點N和周期數M
采樣點取2^n,這樣可以進行FFT分析。此處取M=3,N=128
3.確定AC分析的輸入頻率fin=fs*M/N
根據采樣定理,輸入頻率要小于1.25M/2=0.625MHz=625KHz。若M=3,取N=128,則fin=1.25M*3/128=29.296875KHz
4.確定仿真時間
如果采樣M個周期,每個周期時間1/fin,則:
T=M/fin=N/fs=128/1.25M=102.4us。仿真時,稍微多點時間,保證后面分析時,取數據取在非跳變處。比如仿真110us。由這個公式也可以看出,在采樣率確定的情況下,N越大需要的仿真時間越長,而與輸入信號頻率無關。
接下來就是在電路圖做好設置,就可以仿真啦。
如果仿真時間比較長,比如取4096個點,那仿真時間可能無法接受。可以考慮使用多核
在ADE窗口中:Setup>Environment,彈出如下窗口,加上:
+mt=20 +aps
仿真完成后,波形大概如下:
從圖中可以看出,正弦信號經過ADC轉換,再經過理想DAC的轉換,基本靠譜。
第三步:設置參數并查看結果
得到瞬態仿真波形后,接下來就是對信號進行頻譜分析。
分析方法可以采用:
1. Cadence Spectrum工具2.MATLAB計算
下面說明在利用cadence的spectrum工具進行參數分析
開始時間:t0,結束時間:t0+M/ft
2.MATLAB計算
選中仿真出的輸出信號波形-右鍵-send to-export,
選擇格式為csv,start從一個穩定時刻開始,end默認就可以,step就是1/fs,比如50M,step就是20n,然后導出文件。
打開matlab代碼main,修改讀取的文件,運行得到ADC的輸出頻譜圖及相關動態性能參數值。
-
matlab
+關注
關注
188文章
2998瀏覽量
233265 -
adc
+關注
關注
99文章
6640瀏覽量
548303 -
仿真
+關注
關注
51文章
4241瀏覽量
135328 -
函數
+關注
關注
3文章
4371瀏覽量
64221
原文標題:ADC參數仿真
文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
評論