R-String DAC的阻值要取多少確實有點麻煩。
DAC中unit cell的阻值基本上是三個東西在做取捨
1. Settling time
2. Mismatch
3. DNL
這邊我們先以"Pure DAC"來討論,因此先不討論電阻如何影響DNL
(Subrange R-DAC就需要考慮)
這邊應該滿多人有疑問,奇怪不需要考慮電阻貢獻的NOISE嗎?
可以參考Razavi第七章,有RC電路的輸出功率雜訊推導,這邊我就不詳細描述。
最後推導結果為KT/C,Noise跟電阻無關,只跟電阻串輸出電容大小有關!
用心的讀者,如果真的去模擬RC電路的輸出雜訊會發現,我明明電阻變大輸出雜訊
也會跟著變大,難道書上資訊有錯?
嘿嘿..這邊簡單來說呢~書上積分頻寬是無限大!如果你模擬NOISE積分範圍太小,你
就會認為電阻會影響輸出雜訊,試著將積分頻寬拉大吧!
(可是如果"你考慮的Noise頻寬範圍很窄",就需要考慮電阻大小)
既然我們先不討論Noise和DNL,那只剩下兩個東西在做取捨
1. Settling time
2. Mismatch
1.Settling time我們都知道Vo=Vin(1-e^(-t/𝜏))
既然我們先不討論Noise和DNL,那只剩下兩個東西在做取捨
1. Settling time
2. Mismatch
1.Settling time我們都知道Vo=Vin(1-e^(-t/𝜏))
假設輸出誤差我們想要<0.5*LSB
因此Vin-Vin*(1-e^(-t/𝜏))<0.5*LSB
我們可以得到T=A*𝜏
𝜏=R*C,假設C和T已知,可以求得R的範圍!
(注意:求得的R為等效阻抗,為Middle Code看進去的阻抗,才是電阻值最大的,需再
轉換成Ru的電阻值,以後有機會在說明)
2.知道阻值大小之後,我們還不知道W*L要如何決定
2.知道阻值大小之後,我們還不知道W*L要如何決定
(由於這邊我有些字體打不上來,只好先打在PPT,再複製貼上了ORZ(如圖1所示)...)
這邊<1LSB為規格,N為Bit數,Ac為PDK給出的參數,如圖2所示。
圖1:計算Unit cell面積大小 |
錯誤法一直跑Monte-Carlo重複決定W*L需要多大,這是非常花時間和伺服器資源
的。
佑哥我自己習慣做法步驟
1.先手算出需要的面積大小(W*L)
1.先手算出需要的面積大小(W*L)
2.代進DAC Behavior Matlab Model模擬確認INL結果(見圖3)
如果有問題或者有錯誤的地方,歡迎大家提出來,互相切磋學習進步!
沒有留言:
張貼留言