Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 3729|回復: 12
打印 上一主題 下一主題

[問題求助] 如何design dac?

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-7-24 23:21:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位前輩~
! `/ ?& L5 t* U& t/ x
2 d2 U& B( W5 q我現在正設計一個dac(3bit),雖然有看了一些data和書上的介紹~
9 y/ B8 B5 W* j# _& `( o# H; J6 e. K0 V; N
不過畢竟理論是理論,但真正要設計一個dac,到底是要如何進行呢?
3 G; D6 z" ^' s' n. @2 U' f  _9 }0 z1 M& O
譬如* 我的輸入要如何給?+ q% O0 @& Z' v0 K, d
   * 要如何知道輸出是我要的?(是要simulation書上提到的dnl,inl...還是...?); H) Q: Y7 E) I
   ! A1 o: Z7 Z# Q- _8 U  W- D
實在是因為實驗室沒人在做這方面的研究,所以根本不清楚要如何開始啊?
1 r! q+ \6 t# P; I6 |5 j: n  U1 z" o6 g. S( x( z
請有經驗的前輩~能給我一些建議...
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-7-25 11:27:10 | 只看該作者
這種問題還真難回答% l2 \- x# p, V
DAC是把數位碼轉換成類比電壓的電路+ n* F7 b, z1 v4 f2 w1 [& `, c
所以輸入信號是數位的"0"和"1"信號,亦即0電壓和VDD電壓的數位信號
# W  ?1 \! {& b" @; d: I/ E而你是3-bit DAC,假若輸出的最高電壓準位是1V,1個LSB=1/(2^3)=0.125V,換算為
7 l1 r& W  k1 A% S+ R9 ]4 F+ \000  -->  0.000V! D2 P5 c& a! Y( U' ~' _' b
001  -->  0.125V
" i0 j* z3 r8 J% F" X3 u: [3 G010  -->  0.250V
1 `% s9 j# R# q# F+ l7 v.          .
# r$ G6 A) M1 z. U) ^.          .  B" r7 q4 n7 ^+ O$ `7 k& k7 P
111  -->  1.000V
1 I: d7 p% R) r4 W6 w$ j你先藉由INL和DNL來計算出DAC的特性和轉換準位是否正確,然後才去計算SNR,SFDR,THD等參數
3#
 樓主| 發表於 2008-7-28 13:54:05 | 只看該作者
感謝finster的回答~0 n& m6 O0 J5 q% T, n+ l

- H" ^& ], j8 M' v: f( q關於這點我大概知道~8 [- b! F: ]; S, W
  W' o2 ]+ A: z3 k: U) {
現在因為從學長那�得到一個電路,不過是很久以前的電路~
+ ?7 H- \9 l  D  `/ l# J/ j' [) P+ V& j' u0 x* J
我有拿來跑過,不過對電路還是有些疑問  t  J- v+ d2 {9 p. g4 I8 o# |

+ ]& F& N# @3 [* mcel1,mcel3,mcel5...mcel26是把他當成一個電阻嗎?
% S6 i  B% j: R. N  H3 \6 P" p* mcel2,mcel6,mcel8...mcel25則是switch吧?
2 [) b  q7 R' {* 我給da0b~da7b的輸入後,為什在00000000不是在0v呢?
& P" [5 X4 K8 i+ y# G( i+ {" ^) n* 這個電路應該是current scaling dac 吧?3 o, b( J5 p9 s, {# h+ Z7 b
* 在mcel16,mcel21,mcel23,mcel26應該是當成保護mcel15,mcel19和mcel24,mcel25的元件吧?! E; U. @& e6 F& ~. s7 |
8 ]- q1 @4 H9 K
我總是對電路都不太確定,只知大概~請各位前輩在幫我解答一下~麻煩各位了~謝謝

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
4#
發表於 2008-7-28 17:55:25 | 只看該作者
我稍微看了一下電路* k% K6 o& z6 ]0 o' b% l% c
1. mcel1,mcel3,mcel5...mcel26是把他當成一個電阻嗎?
: v3 V% r% t. S5 X2 }   嚴格來講,並不是,這是採用current scale的cascode架構的DAC,上面的那顆MOSFET是用來增加阻抗用的,你可以視它為一顆電阻並沒有錯,因為的它的作用類似是一顆電阻,不過,更正確的講法是這顆MOSFET是要提供一個由外部的bias voltage所產生出一個DAC所需的current5 Q" |* t$ Y7 [* w/ z  `

2 }4 G) u# c7 X2 F6 b2. mcel2,mcel6,mcel8...mcel25則是switch吧?
* j! |$ D$ ^7 I3 T% I   是的,你可以這個樣子看它並沒有錯,不過,建議把上面兩顆MOSFET看成是cascode架構會比較完整( X2 K: G' Y: ^  p

6 E/ k1 X" m1 x; n3. 我給da0b~da7b的輸入後,為什在00000000不是在0v呢?& T0 d; |" |6 m1 d+ r
   建議你在DAC的output設initial電壓為0V,如此一來應該就會是了
6 r( J- A: h1 B  B1 K" g% x1 a
8 ?. p, R) U; H! U* B4. 這個電路應該是current scaling dac 吧?
1 e/ L' Y8 l+ f! e   我沒有看到它的size比例,不過,若從電路架構來看,是的
6 e% Y# h5 \! [& i! H# k
! b: ~8 Y3 `5 V* y5. 在mcel16,mcel21,mcel23,mcel26應該是當成保護mcel15,mcel19和mcel24,mcel25的元件吧?
: ?! C0 U  a) Y* m2 l   不是,誠如我在第一點所言,你要把它看成是cascode架構以及上面那顆MOSFET是在提供一個由外部的bias voltage所產生出一個DAC所需的current,當比例值已經大到有點離譜時,一般的作法是串接MOSFET來減少電流值(另外一種說法是增加電阻),不過,因為電路圖有些字並不清楚,所以無法很正確的判斷,若由我以從的電路來判斷,上面的MOSFET的Gate應該要接同一點電位會比較合適些
5#
 樓主| 發表於 2008-7-31 22:50:28 | 只看該作者
hi~
( M7 b, j# I! w
. e- e3 g( j9 g7 W8 ^* }謝謝finster的回答~# M  G" L) M. P2 i& I$ }
* s7 ^3 z- C# P& @; H
1. 從mcel3,mcel5...mcel13的比分別為32,16,8...1,但怎麼感覺和current scale不太一樣啊?0 J4 z- g3 F5 \  e) c0 K
   因為mcel1,mcel2組成了類似inv(有什作用呢?)
4 p1 \% H0 t6 I; m3 I2 K( P1 e  F/ Z# [( ^
2. mcel21,mcel19,mcel15,mcel16,mcel26,mcel25,mcel24,mcel23,mcel22,mcel20,mcel17,mcel18又有什用途呢?
; \+ i# G. t0 v   (因為我覺得current scale應該不是只包括mcel3~mcel13這部分嗎?)
: U. d" c( R8 G: ^4 q4 S, y8 c2 L. w" `  |4 r2 g" e, r3 {
3. 假如mcel1,mcel3...mcel26是提供一個所需的current的話,納這些mos不就都需要工作在sat.嗎?0 I" t. I8 r0 u1 W
" J7 J2 v) X& a# v$ @  D; t- t1 G
p.s 除了幾個mos的gate是接dac7b~dac0b,其餘mos的gate都是接到同一個reference voltage上...
( z. x2 Y& O* U% N0 I
# I+ G* s- u8 v9 `對電路概念不是很清楚,所以又要麻煩各位大大的幫忙了,非常感謝~
6#
發表於 2008-8-1 11:28:35 | 只看該作者
附圖是我以前作10-bit DAC的簡圖
/ U8 N# W$ z' E  N+ K5 a" c在LSB部份採用6-bit binary code的current switching架構/ D; q+ u0 Z, a0 @+ t  `
這種架構是很常見的方式,你可以在很多IEEE Journal或者conference paper中找到,下面是2個PMOS作為code switching,上面則是作為bias current, channel length則是採用2進制的比例變化
7 `, Y! O6 Z! a8 O請留意它的length size的變化

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
7#
 樓主| 發表於 2008-8-11 22:29:29 | 只看該作者
finster版主你好~$ n8 x- h( O6 m' g  g, U0 b, i, t3 j

5 l5 [, m8 e# F% k4 P我最近試了一下,也對你提的範例研究了一番.../ y/ g4 y4 G. F- f. j
6 ?9 d3 v% ?' q! M
你舉的例子我也在一些paper裡看過,也大概知道一二...
/ S9 ~) Q) c3 o, ^& A* d* J1 s) S7 g
不過因為我的重點依舊是我所發問的範例(我老闆希望我用這個電路來做dac)...* }& D& E! v9 S/ [

- m5 D/ M) x& A; _+ N! a. K目前run的結果...9 Y/ Z7 _6 O3 E- X
/ `+ j2 E2 _% E6 T7 g
如上述的圖..0 f9 c. b) V! `- z; {" W
8 e* s" l. L! N
*. mcel1,mcel2的功能是做什用的呢?
# t4 L, \( j2 {5 P6 W% k( B*. 在dac7b(128)~dac0b(mcel20)給11111111(因為是pmos)cout應該是0v...但模擬結果卻大概在1.7v左右,而在00000000卻大於  ! p! r. u/ c, ~  {7 j% r
    vdd.試什原因呢?
* a; P6 r* B6 ]# z: w請各位前輩看看,給點意見...
, l2 V, i5 K2 `! W% J6 m8 r2 e4 n
非常感謝~
8#
發表於 2008-8-12 09:29:51 | 只看該作者
*. mcel1,mcel2的功能是做什用的呢?. P1 o( h8 g; D( o! z
   這個要看你的輸入信號和DAC的關係為何
' B9 X+ X( V0 K* m) N  h你的圖太小,有些字無法看清楚* s- p3 B6 U1 b2 A
另外mcell1和mcell2的輸入信號和其他cell的輸入信號有相關嗎??, J$ j# g: Q. X8 H, U
若有,那關係為何??6 [8 a! m- Y- k7 m
若沒有,那控制mcell1和mcell2的信號腳何時動作,對DAC的影響為何??它會干擾到DAC的輸出信號嗎??它的波形又為何呢??
3 r5 o) r  Z% P9 D1 J
+ n; L9 I9 T8 p# N, \. \3 E' I- o7 ^+ B  b) u1 k
*. 在dac7b(128)~dac0b(mcel20)給11111111(因為是pmos)cout應該是0v...但模擬結果卻大概在1.7v左右,而在00000000卻大於  
7 r" L5 ~5 W* C. K1 ~    vdd.試什原因呢?
* @6 e' a1 D6 n你在輸入11111111時,有其他路徑的電流流到電阻嗎??$ Q! C4 ?/ E1 K! L5 T, t0 `
你在給11111111這組CODE時,有沒有在輸出電阻端先設initial value,另外,你在跑11111111這組code時,總共經過多少cycle??
2 Z* e$ x" ~" A  F, t: c/ y上面這些情況都會影響你的輸出電壓值,要先確定才能夠回答現象/ S3 M7 z( L* ~" w1 M  K3 q
而你給00000000這組code卻會超過vdd,那你的1LSB的電流為何??輸出電阻又為何??是在一開始出現呢??還是在多少個cycle後出現??
- T! ~+ h8 _0 ^  D( b另外,你的vdd是幾伏電壓
9#
 樓主| 發表於 2008-8-12 18:14:27 | 只看該作者
感謝FINSTER版主~
1 l+ a, N  m' ?, o4 L8 {& g9 d$ T7 `) k# O4 V( ]' I
我在另外付一個檔案...應該比較清楚了~
  y0 m0 Y) D$ a3 L
1 [  r! e% @) k3 g! L我的VDD=3.3V$ U" i+ u( n# S/ n

) `9 j) h( _3 a6 E. ^; {- v! |我認為是MCEL1和MCEL2在輸入11111111時,會再提供一個電流給輸出,所以輸出才不會為0V,只不過我不知道為什要再另外加這一組MCEL1和MCEL2?
; N# ^' y6 K' U2 y( v; {
& D9 B, e  Z+ z% f8 d: z& g麻煩FINSTER版主在繼續幫我解答一下,非常感謝~

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
10#
發表於 2008-8-13 12:55:47 | 只看該作者
原帖由 averyer 於 2008-8-12 06:14 PM 發表 " Z' a  P8 ^* A; Q+ Y$ R; S
感謝FINSTER版主~
) B# w; @* G7 a0 A) h$ R% n& k
+ l* M% L2 d& Q* q' x- o我在另外付一個檔案...應該比較清楚了~
4 f: F3 I  C. q
1 A% z! L. ?: x/ t2 e8 _  G我的VDD=3.3V# c& `& g8 ^1 P2 X+ F
6 W3 }2 \2 S" f
我認為是MCEL1和MCEL2在輸入11111111時,會再提供一個電流給輸出,所以輸出才不會為0V,只不過我不知道為什要再另外加這一組MCEL1和MCEL ...

6 }4 ~2 |! k1 v% Z5 E
( |; k* `! x7 h, E; ]' R  C1 F3 u
你的解釋是可以成立4 [1 E- Z7 R1 L! y& R: Y/ ]: w
不過,這樣一來你就要特別留意從11111111變成11111110時,analog voltage是不是為(1LSB+電壓基準準位)
3 {. F! K' C: o; M- d0 _; YDAC是把digital code從00000000從11111111的碼變成analog voltage,如果11111111時不是在0V,那它應該在某一個自我所設的類比電壓準位,然後所有的analog voltage會從這個電壓準位隨著digital code的增加而增加9 M! u' m, n7 J# J: g: b

- ~. d: o/ j- m5 E7 b. G, }+ \6 s不過,從你前面的描述來看,11111111時模擬結果卻大概在1.7v左右,而你的VDD=3.3V,我不知道你1LSB是多少mV,不過8-bit共256階,這個樣子就很危險,你的code在接近00000000時會很嚴重失真,可是你又說00000000卻大於vdd,這個樣子的現象很奇怪(因為那表示你的輸出電壓會往vdd回灌電流),很不合電路原理,除非你MCEL1和MCEL2只有在輸入11111111時才有動作,不過,這樣子一來,就完全不符合DAC的電路原理和精神,而且,也沒有人會這個樣子設計DAC,尤其當你在測INL/DNL/SFDR/SNR/THD...等參數時,DAC的performance會很差

評分

參與人數 1Chipcoin +5 +5 收起 理由
sjhor + 5 + 5 感謝經驗分享!您的回覆總是讓人學到很多唷

查看全部評分

11#
 樓主| 發表於 2008-8-14 17:00:56 | 只看該作者
hi~
6 v% b8 M8 A! W) I% ~7 F2 c/ t) j6 O2 O2 A6 }
謝謝finster版主的回答~
# r$ S. y+ I& F0 q6 Y, l) q9 n) S2 D2 ?) c7 X
我照這個電路來看,我不確定說我的對它的理解對不對,但我在給11111111時,
5 \5 `: k  h, C# A
5 s; g! l' _& d他輸出不是0也不是mcel1和mcel2所產生的那個電壓準位,反而是為vdd(最高電壓)...* _4 z# E& \! V. a6 _7 y% o% v3 ~
* c* k# ?- Y) A
且在00000000時,它的輸出是所有da7b~da0b上最小電壓....5 ?/ t1 a; j% j6 c% V6 L4 I

+ {( P* V! }# P0 n/ x7 e((例如 da7b產生1.7v,da6b產生2v....da0b產生3.3v,輸出卻為1.7v))
( z1 Y" V& M, c% V. b7 {* C+ D9 ^% L& v3 N6 b
給11111111時的輸出也是如此....
7 s6 l* K6 M! _3 @  t: @$ O8 o! N* k+ }) X5 f1 w$ V. ]. C
我是猜原本學長給我的這個電路的下一級是不是需要推動某一cell,需要位準在某一個壓降上,) j" s' G- N/ f' v
. C( S, v' Q. ]7 ~! A) G! p3 h' b5 E
所以才要mcel1,mcel2來在11111111時產生一個電壓....
- J2 Z0 `8 u) Z6 j* _& Z( r; H, f5 a, }& Z) ~# F# h% B; S
麻煩版主在費心幫我想看看了~非常感謝...
12#
發表於 2008-8-15 11:25:26 | 只看該作者
從你的描述來看9 ^8 l6 [" K4 Y+ ]
你應該先弄清楚你學長當初用DAC這個電路的用意,又或者先把DAC的前後電路特性和規格弄清楚
! e2 B- i: {& F7 [因為從你的說明來看,其實這個電路特性很不像DAC,而你學長大概又為了取一個比較體近這個電路又好叫的名字,所以把這個電路叫作DAC# c7 n! p/ T2 ]' N
我在前面所言,DAC是把數位信號轉成類比電壓或者電流,每一個數位碼都要相對映到相對映的類比電壓或者電流,而且它的增加和減少都是以2進制的變化而增加和減少
1 N: b% S# r" F" v  B, i故而,11111111應是最小(從你的描述來看),然後往上以2進制的碼來增加,但你的電路特性卻沒有照這個特性來走,很顯然己經脫離了DAC應為的電路特性
, x2 B: x5 b# {4 {* y所以,我個人覺得你這個電路應是近似於DAC特性的電路,但實際上並不完全是DAC,但為了方便跟老板解說,所以就直接取名為DAC,也因為如此,所以一直無法以DAC的原理來解說為何在11111111以及在00000000的情況會如此奇怪而不合DAC的動作原理2 `4 F2 E4 n0 q3 {5 p9 Y& B6 Z9 w- R
我個人比較建議你把這個電路和下一級電路合在一起看,並弄清楚下一級電路需要怎麼子的類比信號來作處理,又或者在你負責的系統中,這個電路功用為何?先弄清楚,不然,我真的覺得你會因為要把這個電路用DAC的原理和運作特性來解釋而卡住

評分

參與人數 1 +5 收起 理由
skyer1 + 5 你的經驗就是知識的來源!

查看全部評分

13#
 樓主| 發表於 2008-8-20 23:35:46 | 只看該作者
HI~FINSTER版主謝謝你
9 B) F# a! `" y: I+ e' N, ]
( S; f: e( H9 B( B) T( M我學長要找看看這個完整的電路,他也不確定...所以我基本上經過這些問答,我大概知道整個DAC要如何運作及如何去模擬它了...
' {2 C, V2 ]9 G6 u: I% d, a2 s/ Q+ H. h) L& H1 `. _
我也試這其他比較基本的架構來實驗,也大致都OK了...非常謝謝你的指教~
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-12-30 01:58 AM , Processed in 0.178010 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表