上一章節中,我們了解了有關 CT SDM 的設計考量以模如何建立模擬的環境。
為了要對所建立的模型做驗證,所以我們就製定了一個規格目標,除了在 MATLAB 上的模擬之外,我們也在考慮非理想效應的情況下,經由 MATLAB 模擬所得到的 規格來設計電路,並將 HSPICE 的模擬結果來互相比較對照。在此我們以頻寬 250kHz,10~12bit 的解析度來做設計考量。
4-1 二階系統模擬
參考[45],我們可以決定 OSR 以及量化器的 bit 數。為了要能夠符合規格且 預留因為設計中的非理想效應造成的 SNDR 下降幅度。在此我們選擇 OSR=128,
則取樣頻率 =64MHz,並使用 1.5bit 的量化器。而同時我們將設計 unit-delay 與 half-delay 兩種架構並做兩者之間的比較
f
s為了使 unit-delay 和 half-delay 是在對等的條件下比較,根據 MAPLE 計算 出來的係數,必須先將 unit-delay 和 half-delay 兩者做些微的係數調整(主要 為調整 DFFP 的係數),使得兩者所達到相同的 SNDR 值以及功率頻譜,如圖 4-1.1。
104 105 106 107 108
-120 -100 -80 -60 -40 -20 0
Freq
Y[k] dB
MATLAB ideal
unit delay -- 84dB half delay -- 84dB
圖 4-1.1 二階 unit-delay 和 half-delay modulators 理想狀況功率頻譜
再者兩種架構所需求的增益頻寬如圖 4-1.2 所示,c 值代表增益頻寬與取樣 頻率之間的倍率。可明顯看出在要達到相同的 SNDR 值之下,unit-delay 所需要 的頻寬比 half-delay 的架構要大的許多,而在頻寬持續增大的情況下,兩者的 SNDR 值會趨於一致,即達到理想值。
0 1 2 3 4 5 6 7 8 9 10
30 40 50 60 70 80 90 100
c=GBW/fs
SNDR
half-delay unit-delay
圖 4-1.2 頻寬對 unit-delay 和 half-delay modulators 的影響
4-1.1 HSPICE 模擬之電路架構
整體電路上的實現是 fully-differential 的方式,在此我們使用 folded- cascoded 的運算放大器及 dynamic 的比較器,以及在線性度的考量下使用 1.5bit 的量化器。
在運算放大器的選擇上,由於在 CT SDM 中所要求的增益頻寬通常在 3 左 右就足夠。在我們的設計中,二階的系統以 folded-cascoded 的運算放大器來實 現電路,但是因為在輸出接著的是下一級積分器的電阻,所以為影響其增益大 小,使得設計上的規格要比模擬上來得高。而在三階中則使用 two-stage 的運算 放大器,其中的差異性在接下來的內容會做說明。
f
svip
vbp vb1
vb2
vb3
vb4
von vop VDD
VSS
圖 4-1.3 Folded-cascoded 運算放大器
比 較 器 是 由 兩 個 non-overlapping 的 clock 來 控 制 , 分 為 reset 跟 regeneration 兩段 timing。當 ck2 為 low 時是 reset mode,將輸入兩端電壓拉 回平衡點。而當 ck1 為 low 時是 regeneration mode,此時 M8,M9 導通,會因為
M19 M20
M13 M14
VSS
M16 M15
M17 M18
M12
Q Qb
圖 4-1.4 比較器
comp
comp
comp comp
qb1
qb2
qb3
qb4 buf
buf
buf
buf
and
and
and vrp vip vin
vrn
a
b
c
圖 4-1.5 1.5bit 量化器
1.5bit 的量化器實現方式如上圖,作法為將參考電壓 vrp、vrn 依輸入弦波 的比例分為兩個參考電壓,在把 loop-filter 的輸出電壓與分別做比較後,再經 由簡單的數位邏輯,將其結果分為三個相同的 level
圖 4-1.6 1.5bit 量化器輸入輸出
VIP
vrp vcm vrn vrn vcm vrp
rdacap rdacbp
rdacan rdacbn
vrn vcm vrp vrp vcm vrn
a
最後實現的 2nd-order 的 unit-delay 及 half-delay modulator 結果分別 如圖 4-1.8 及圖 4-1.9 所示。
MATLAB 模擬條件:
Unit-delay: 係數 a1=2.25, a2=2, a3=1.5, k1=1, k2=0.5, kb=1.25, gc=0.005,Jitter = 0.3% = 46.8ps
Half-delay: 係數 a1=1.25, a2=1.5, a3=1.5, k1=1, k2=0.5, kb=0.75, gc=0.005,Jitter = 0.5% = 78ps
HSPICE 模擬所用運算放大器規格:
Unit-delay: 1st stage Æ 65dB, ugbw=420MHz ; 2nd stage Æ 60dB, ugbw=132MHz
Half-delay: 1st stage Æ 60dB, ugbw=164MHz ; 2nd stage Æ 60dB, ugbw=132MHz
輸入信號: 0.4V, 78.25kHz。
104 105 106 107 108
-120 -100 -80 -60 -40 -20 0
73dB 68dB
圖 4-1.8 二階 unit-delay modulator MATLAB 及 HSPICE 模擬結果比較
104 105 106 107 108
-120 -100 -80 -60 -40 -20 0
72.88dB 70dB
圖 4-1.9 二階 half-delay modulator MATLAB 及 HSPICE 模擬結果比較
1-bit 的 feedback DAC 在電路實現上, 是經由 quantizer output 電壓來
控制 switch (transmission gate)。而 switch 在導通時通常會存在個小電阻值,
這成為造成係數誤差的一項原因。所以我們可以加大 switch 的尺寸或是梢微調 整回授的電阻值來消除此影響。
4-1.2 非理想效應(Non-Idealities)
首先從 MATLAB 來模擬增益頻寬對於 SNDR 值所造成的影響。圖 4-1.10 可以觀察出 half-delay 的架構上對於 GBW 的要求比 unit-delay 來得低。而 圖 4-1.11~13 為在 HSPICE 上的模擬結果
在一開始都使用 2 的運算放大器時,圖 4-1.11。兩種架構對應到的 SNDR 值基本上還與 MATLAB 所得到的結果接近,但是試著加大頻寬後觀察其 結果,圖 4-1.12 及圖 4-1.13。並未如預期中得到 SNDR 上升的好處。
f
s0 2 4 6 8 10 12 14 16 18 20
10 20 30 40 50 60 70 80 90 100
c=GBW/fs
SNDR (dB)
2nd order modulator
half-delay unit-delay
圖 4-1.10 二階 modulator 中 GBW 對 SNDR 造成的影響
104 105 106 107 108 -120
-100 -80 -60 -40 -20 0
unit-delay 67dB half-delay 75dB
圖 4-1.11 在 unit-delay 及 half-delay modulators 中使用相同放大器頻寬所得到的結果
104 105 106 107 108
-120 -100 -80 -60 -40 -20 0
GBW=2fs -- 75.3dB GBW=4fs -- 75.3dB
圖 4-1.12 在 Half-delay 中不同的 GWB 對應的 SNDR 值
在模擬過程中我們加入了 jitter 的因素,圖 4-1.14,根據在不同頻寬大小 對於二階 modulators SNDR 影響的模擬結果觀察,圖 4-1.12 和 4-1.13,原以為 是 jitter 所造成的影響已超過增益頻寬的影響,以致於限制住系統的 SNDR 表 現。然而在之後我們從事三階 CT SDM 設計過程中,發現了主要問題在於運算放 大器架構的選擇上,於 4-2 節三階系統的設計中會多加說明。
104 105 106 107 108 -120
-100 -80 -60 -40 -20 0
GBW=4fs -- 66dB GBW=6fs -- 69dB
圖 4-1.13 在 Unit-delay 中不同的 GWB 對應的 SNDR 值
0 1 2 3 4 5 6 7 8 9 10
20 30 40 50 60 70 80
c=GBW/fs
SNDR
jitter 0.2%
half-delay unit-delay
圖 4-1.14 加入 0.2% jitter 後(約 30ps)對系統表現的影響
圖 4-1.15 說明的在有限的輸出擺幅之下,對於整體系統的影響。因為 如果在輸出振幅產生 distortion 的話,有可能含有信號成份的資訊就會被 截除造成 SNDR 值的衰減。而在觀察模擬結果時,unit-delay 在於其每一級 的輸出都要比 half-delay 來得大些,這也是其對於輸出擺幅的要求較大的 原因。
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
saturation voltage
SNDR(dB)
2nd order modulator
half-delay unit-delay
圖 4-1.15 Saturation 對二階 modulator 的影響
4-1.3 係數的變動(Coefficient Variation)
二階中在模擬係數變動的方式是以 HSPICE 中的 Monte Carlo 來做模 擬,給予高斯分佈型態的亂數,再統整模擬後所得的結果。
(1)Half-delay
104 105 106 107 108
Freq (Hz)
SNDR (dB)
Monte Carlo Simulation
60.2dB
104 105 106 107 108
Freq (Hz)
SNDR (dB)
Monte Carlo Simulation
67.6dB
(2)Unit-delay
104 105 106 107 108
Freq (Hz)
SNDR (dB)
Monte Carlo Simulation
58.4dB 57.6dB 65.9dB 61.9dB 60.5dB
圖 4-1.18 R, C variation 25% and matching variation 4%, 2.5%, respectively.
104 105 106 107 108 -120
-100 -80 -60 -40 -20 0
Freq
SNDR (dB)
Monte Carlo Simulation
60.5dB 65dB 65.8dB 62.3dB 71.3dB
圖 4-1.19 R, C variation 25% and matching variation 2%, 0.5%, respectively.
在接下來設計三階的調變器過程中,發現我們在設計二階的系統時,其 實是存在著一些問題。例如 jitter 的效應,在 MATLAB 中的模擬目的是為了 預測實際晶片量測中,所輸入的 clock 信號變異所產生的影響,而在 HSPICE 的模擬中並無法考慮到此效應。然而在上述的 MATLAB 模擬中,在決定規格 時,我們將 jitter 的效應考慮過高,以至於造成 jitter 成為了影響系統表 現的主要因素。進而使得在訂定運算放大器的規格時產生了誤差。
這也解釋了在 HSPICE 模擬無法準確地與 MATLAB 模擬相對應(相較於 MATLAB 訂定的規格,在 HSPICE 模擬中所對運算放大器的要求更高)。而根 據上述的模擬做為參考的基礎,除了避免發生同樣的問題,也試著將 MATLAB 與 HSPICE 之間模擬的差異一步一步的解決,這將在下一節中談論。
4-2 三階系統模擬
首先有了模擬二階 CT SDM 的經驗後,在三階的模擬上加了更多的考量。在 係數的選擇上,先就不同的 out-of-band gain 來選則係數。原則上 out-of-band
gain 越大,對於雜訊的衰減能夠得到好處,相對的能得到較好的 SNDR。但是太 大的 out-of-band gain 則會使的系統容易受到非理想效應的影響而趨於不穩 定。所以我們就不同的 out-of-band gain 來計算係數並做選擇。
同樣的我們希望頻寬為 250k Hz,12bit 的解析度,就此選擇 OSR=64,即取 樣頻率為 32 MHz,為了屏除回授 DAC 線性度對系統的影響,在能夠達到設計規 格的情況下,使用 1bit 的量化器。
a) Half-delay
Outband gain a1 a2 a3 kb Gc
(1) 1.5 0.7972 0.5293 0.1719 0.3664 0.0014
(2) 2 1.3229 1.3183 0.64 0.5824 0.0014 (3) 2.5 1.6922 2.0169 1.1633 0.726 0.0014
表 4-2.1 Half-delay 於不同 out-of-band gain 所計算出來的三階係數
b) unit-delay
Outband gain a1 a2 a3 kb Gc
(1) 1.5 0.9349 0.5722 0.171 0.799 0.0014 (2) 2 1.6725 1.4781 0.638 1.3296 0.0014 (3) 2.5 2.2327 2.3074 1.1601 1.7043 0.0014
表 4-2.2 unit-delay 於不同 out-of-band gain 所計算出來的係數
而在經過模擬之後,在 out-of-band gain=2 的時候,對於 unit-delay 及 half-delay 都有較好的表現。再針對 DFFP 的係數做調整,unit-delay 及 half-delay 的 a0 分別為 2 及 1.5。在理想的狀況下其功率頻譜如圖 4-2.1。
在高階的系統我們特別需要注意積分器的輸出,於先前的章節有討論過。所
103 104 105 106 107 108 -150
-100 -50 0
Freq
SNDR (dB)
The FFT of Y[n]
unit-delay 94dB half-delay 94dB
圖 4-2.1 理想的三階 unit-delay 及 half-delay CT SDM 功率頻譜
以在模擬時我們要在各級的輸出部分加入 saturation 的方塊,用以考量輸出最 大振幅的限制。而加入 saturation 後的系統表現如圖 4-2.2 所示。
103 104 105 106 107 108
-140 -120 -100 -80 -60 -40 -20 0
Freq
SNDR (dB)
with saturation
ud--84dB hd--85dB
圖 4-2.2 加入 saturation 後的 unit-delay 及 half-delay 三階 CT SDM 功率頻譜
因為在二階系統的設計時,MATLAB 訂定的放大器規格與在 HSPICE 中所需要 設計的放大器規格有所差異。我們由此重新思考,既然 MATLAB 是在理想的狀況 下做模擬,那麼在 HSPICE 的模擬中,應該也要先從建立理想的電路出來。這樣 一來,才能夠確定我們的電路接法沒有問題,這是做二階電路時所未考量的。
4-2.1 HSPICE 模擬所使用之電路架構
因此利用 HSPICE 中的 來模擬電路中的積分器以及比較器。
在比較器中因為有 S/H 的動作,所以除了使用 外,於其輸出的部
份再加了一個 D Flip-Flop。而 DFF 以及在回授路徑上所使用的 delay,以 D-latch 實現,是屬於數位電路的部份,對於整個系統而言的影響並不大,
所以在這邊直接以 CMOS 來實現。另外回授的 1-bit DAC,使用 來 當為理想的開關。至於 clock 信號,以 pulse 的方式給予。而三階的電路如 圖 4-2.3 所示。
e element
e element
g
element
透過上述的理想元件,替代了原本所設計的類比元件部份。經由模擬 後,很成功的可以發現,在 half-delay 的架構中,可以得到與 MATLAB 接近 的理想狀況下的 SNDR 值,如圖 4-2.4。然而在 unit-delay 的架構中,圖
vrp vrp vrn
rdacap
rdacbp
rdacan
rdacbn
vrp vrn vrn vrp
a
c
Latch
qfqfb
qbfqbfb r0p
r0n
c0p
c0n vrn
rf0p oip3
oip3 oin3
rf0n oin3
Comparator
圖 4-2.3 三階 CT SDM 電路
理想的電路來實現。所以在這邊我們推斷,原因應出於 latch 的部份,相較 於 half-delay,unit-delay 使用了兩個 latch,因為第二個 delay 的輸入 為第一個 delay 的輸出,有可能在經由 latch 過後,資料的處理上產生了些 許的時間誤差。
103 104 105 106 107 108
-140 -120 -100 -80 -60 -40 -20 0
Freq
SNDR (dB)
half-delay
86dB
圖 4-2.4 HSPICE 在三階 half-delay 理想電路模擬
103 104 105 106 107 108
-140 -120 -100 -80 -60 -40 -20 0
Freq
SNDR (dB)
unit-delay
76dB
圖 4-2.5 HSPICE 在三階 unit-delay 理想電路模擬
D-latch D-latch
至信號輸入 回授信號
至量化器輸入
CLK
DFF D-latch
回授信號
至信號輸入 至量化器輸入
(a)
CLK
(b)
圖 4-2.6 不同的回授 delay 做法 (a)使用兩個 D-latch (b)使用一個 D-latch 及 DFF
所以在這個考量之下,試著以 DFF 來實現 unit-delay,讓回授信號同 時送回兩條回授路徑,圖 4-2.6。而在經過此調整之後再次模擬 unit-delay 的架構可得如圖 4-2.7 的結果。發現低頻部份雜訊上揚的情形有所改善,也
所以在這個考量之下,試著以 DFF 來實現 unit-delay,讓回授信號同 時送回兩條回授路徑,圖 4-2.6。而在經過此調整之後再次模擬 unit-delay 的架構可得如圖 4-2.7 的結果。發現低頻部份雜訊上揚的情形有所改善,也