Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 如何design dac?

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-7-24 23:21:05 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
各位前輩~
8 G& d; C8 {7 @# x/ ^; {' _- @0 R  Q  w3 h: L
我現在正設計一個dac(3bit),雖然有看了一些data和書上的介紹~
2 B' G( y5 r0 l" \. @0 m: D
9 M$ R' P1 C, A$ i) m& s( H5 u+ U/ |不過畢竟理論是理論,但真正要設計一個dac,到底是要如何進行呢?, R# }- t& B- f+ G7 D' U' e/ W
( a/ m: |0 S( w" o& U
譬如* 我的輸入要如何給?
! A$ }# f; U6 K" _6 H   * 要如何知道輸出是我要的?(是要simulation書上提到的dnl,inl...還是...?)3 J2 o/ ~  `7 p: f  \
   0 m6 B  a1 z  B+ w- U' V
實在是因為實驗室沒人在做這方面的研究,所以根本不清楚要如何開始啊?4 k; n' U1 |: m! P9 r. z+ i
( v0 l: F9 Y2 L& ^9 l, m. H
請有經驗的前輩~能給我一些建議...
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
13#
 樓主| 發表於 2008-8-20 23:35:46 | 只看該作者
HI~FINSTER版主謝謝你. N8 P, m5 {! a$ H0 p

$ z. {1 V: k4 C8 n我學長要找看看這個完整的電路,他也不確定...所以我基本上經過這些問答,我大概知道整個DAC要如何運作及如何去模擬它了...2 b2 i' d3 j/ B6 L, `5 s. K
* L# u  e; |2 b3 _
我也試這其他比較基本的架構來實驗,也大致都OK了...非常謝謝你的指教~
12#
發表於 2008-8-15 11:25:26 | 只看該作者
從你的描述來看
3 U% m  m$ k: k" _你應該先弄清楚你學長當初用DAC這個電路的用意,又或者先把DAC的前後電路特性和規格弄清楚
) \2 [' B: ]$ }) w$ [因為從你的說明來看,其實這個電路特性很不像DAC,而你學長大概又為了取一個比較體近這個電路又好叫的名字,所以把這個電路叫作DAC) n. ?& e6 P; X  R
我在前面所言,DAC是把數位信號轉成類比電壓或者電流,每一個數位碼都要相對映到相對映的類比電壓或者電流,而且它的增加和減少都是以2進制的變化而增加和減少
& M' b/ {' a! U3 Q故而,11111111應是最小(從你的描述來看),然後往上以2進制的碼來增加,但你的電路特性卻沒有照這個特性來走,很顯然己經脫離了DAC應為的電路特性+ e; U7 L' ]  s$ ~- ~: W* t( ]
所以,我個人覺得你這個電路應是近似於DAC特性的電路,但實際上並不完全是DAC,但為了方便跟老板解說,所以就直接取名為DAC,也因為如此,所以一直無法以DAC的原理來解說為何在11111111以及在00000000的情況會如此奇怪而不合DAC的動作原理1 g2 ]; Z1 Q" L% D- \, d: G; T7 C) l
我個人比較建議你把這個電路和下一級電路合在一起看,並弄清楚下一級電路需要怎麼子的類比信號來作處理,又或者在你負責的系統中,這個電路功用為何?先弄清楚,不然,我真的覺得你會因為要把這個電路用DAC的原理和運作特性來解釋而卡住

評分

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

查看全部評分

11#
 樓主| 發表於 2008-8-14 17:00:56 | 只看該作者
hi~
1 g. y9 ?% ]9 {# b% f) D% }. o0 @9 j
謝謝finster版主的回答~
; |# j1 v4 A. o$ ^# u1 a$ M$ C  N' I8 }$ x9 S5 F$ b. y4 n
我照這個電路來看,我不確定說我的對它的理解對不對,但我在給11111111時,
0 `- N" O; K  p: f9 W* B$ b1 Z, t% k0 t) i3 ~5 z4 I
他輸出不是0也不是mcel1和mcel2所產生的那個電壓準位,反而是為vdd(最高電壓)...1 r' G) w* s, t

- n) t/ Q5 u. `且在00000000時,它的輸出是所有da7b~da0b上最小電壓....
7 {) _9 V* ^% R$ t0 \8 B+ f( L4 w
% V0 Z/ t" s$ u( L((例如 da7b產生1.7v,da6b產生2v....da0b產生3.3v,輸出卻為1.7v)), t( K8 R* H6 q* M: E. Z

. b) k/ C* r% `) r2 k1 b: U2 A* P給11111111時的輸出也是如此....* }" Y# [' b6 n' z

  V  A0 l/ d  O; l8 b我是猜原本學長給我的這個電路的下一級是不是需要推動某一cell,需要位準在某一個壓降上,
0 G. x1 Q$ B/ ?
9 A0 P- B6 s1 ]) ~$ {所以才要mcel1,mcel2來在11111111時產生一個電壓....( W4 d2 T9 i" M! g( n5 c; K
" n; e) }7 a: G
麻煩版主在費心幫我想看看了~非常感謝...
10#
發表於 2008-8-13 12:55:47 | 只看該作者
原帖由 averyer 於 2008-8-12 06:14 PM 發表 9 r+ I& a- ], M. @6 n5 _
感謝FINSTER版主~
" A+ \# Y6 a5 [8 ^- u6 {" I$ U* ~" h6 r1 B9 h+ ^7 m% V
我在另外付一個檔案...應該比較清楚了~
) P0 A+ m/ ]6 |! |! j* N7 b
) @' R8 @5 [# A, p, L- W我的VDD=3.3V
( f4 I: P; b! s$ V% A) Z2 m5 W# J0 M% d+ d" J3 g- P4 A8 G
我認為是MCEL1和MCEL2在輸入11111111時,會再提供一個電流給輸出,所以輸出才不會為0V,只不過我不知道為什要再另外加這一組MCEL1和MCEL ...

  `9 g( `% R+ n0 m) W- k  q9 l" }5 [! z5 y  u  v

% O5 W" K1 m- l你的解釋是可以成立; S9 Q% l2 b3 T4 c5 Z, {- o$ s  X
不過,這樣一來你就要特別留意從11111111變成11111110時,analog voltage是不是為(1LSB+電壓基準準位)
" O% V7 b! }  T" r  |6 BDAC是把digital code從00000000從11111111的碼變成analog voltage,如果11111111時不是在0V,那它應該在某一個自我所設的類比電壓準位,然後所有的analog voltage會從這個電壓準位隨著digital code的增加而增加
2 h, T: O/ X- I' a* @1 U- i1 |8 p8 M. M/ ]. t6 J3 x. `
不過,從你前面的描述來看,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 感謝經驗分享!您的回覆總是讓人學到很多唷

查看全部評分

9#
 樓主| 發表於 2008-8-12 18:14:27 | 只看該作者
感謝FINSTER版主~$ ?  o3 u( e3 l- S1 d) q
. x6 V# {4 f$ @  X
我在另外付一個檔案...應該比較清楚了~+ ]2 `: S: T6 W# m' Z( K, d

: T6 v/ J! L$ f5 {( F我的VDD=3.3V2 ^. d2 L1 Z, f# }# f

1 q! f9 U- I% q- W& M我認為是MCEL1和MCEL2在輸入11111111時,會再提供一個電流給輸出,所以輸出才不會為0V,只不過我不知道為什要再另外加這一組MCEL1和MCEL2?
( C8 K6 n9 g$ V% u9 I, l  Q) f: f% k: w$ ]* f* M/ c1 P3 {
麻煩FINSTER版主在繼續幫我解答一下,非常感謝~

本帖子中包含更多資源

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

x
8#
發表於 2008-8-12 09:29:51 | 只看該作者
*. mcel1,mcel2的功能是做什用的呢?
, G/ @8 f7 k# R$ @. u. l/ h# U; `   這個要看你的輸入信號和DAC的關係為何
# `8 B3 r, a# a# [, L( X你的圖太小,有些字無法看清楚
2 e; m3 W0 p& ?另外mcell1和mcell2的輸入信號和其他cell的輸入信號有相關嗎??. M5 ]7 K3 G7 g' X- Q( O8 K, W
若有,那關係為何??: c8 H- F4 }5 Z# U* F1 X8 C8 Z8 |) Z
若沒有,那控制mcell1和mcell2的信號腳何時動作,對DAC的影響為何??它會干擾到DAC的輸出信號嗎??它的波形又為何呢??
, Z9 y% v' ~2 \1 R, {& \3 [& p. R7 p6 H$ U
) l4 R! U$ F# P
*. 在dac7b(128)~dac0b(mcel20)給11111111(因為是pmos)cout應該是0v...但模擬結果卻大概在1.7v左右,而在00000000卻大於  
# V- V4 k! n" f- |8 r, c* m) D) B    vdd.試什原因呢?
0 `: v5 U1 p. |& ]9 M$ \7 x4 C0 f8 e你在輸入11111111時,有其他路徑的電流流到電阻嗎??
& d7 K1 \; y2 e+ [& x7 t5 B你在給11111111這組CODE時,有沒有在輸出電阻端先設initial value,另外,你在跑11111111這組code時,總共經過多少cycle??; w* R& j  C" E6 P, U% A( o; V
上面這些情況都會影響你的輸出電壓值,要先確定才能夠回答現象
" f9 b+ ?  p8 b. ?- u2 n3 c. q. `而你給00000000這組code卻會超過vdd,那你的1LSB的電流為何??輸出電阻又為何??是在一開始出現呢??還是在多少個cycle後出現??
4 L- [; |5 w) Q另外,你的vdd是幾伏電壓
7#
 樓主| 發表於 2008-8-11 22:29:29 | 只看該作者
finster版主你好~
' s6 b" `2 _# m: t  H, F. Q$ V; b" j( \
我最近試了一下,也對你提的範例研究了一番...
' C* I1 Z# |2 t2 O( e
% h6 w' A4 E& q& f% m* G$ A你舉的例子我也在一些paper裡看過,也大概知道一二...9 K- }' ]" C9 j
2 Z0 j# o3 H! K% K
不過因為我的重點依舊是我所發問的範例(我老闆希望我用這個電路來做dac)...
. m& Z& }. s& ?; q# }' X- v0 y$ _2 s
目前run的結果...
4 D  }; a, t* c. Y
( N  V% m8 J+ a' V如上述的圖..
; p+ }2 {4 B# C* ]; ^8 b' s6 W
- p& T" d  E& Z2 l+ J0 ^*. mcel1,mcel2的功能是做什用的呢?2 P; a6 I1 @7 T1 O/ C3 @# D
*. 在dac7b(128)~dac0b(mcel20)給11111111(因為是pmos)cout應該是0v...但模擬結果卻大概在1.7v左右,而在00000000卻大於  
  c7 z, x# p9 P2 e* |) `    vdd.試什原因呢?
0 K0 e, P" w  S3 \+ I+ n請各位前輩看看,給點意見...
: x) G% N+ |1 P, U% f# \. C% ^. Q" ?1 u
非常感謝~
6#
發表於 2008-8-1 11:28:35 | 只看該作者
附圖是我以前作10-bit DAC的簡圖0 W* m- T- T" ~3 H
在LSB部份採用6-bit binary code的current switching架構
' Q3 u, j; d; S* L. u' F. H這種架構是很常見的方式,你可以在很多IEEE Journal或者conference paper中找到,下面是2個PMOS作為code switching,上面則是作為bias current, channel length則是採用2進制的比例變化
0 I# n& I: a! f+ V  D5 o請留意它的length size的變化

本帖子中包含更多資源

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

x
5#
 樓主| 發表於 2008-7-31 22:50:28 | 只看該作者
hi~4 Y7 t1 P& n+ c4 N+ Y: M$ l
) W) p, ]+ A% z, A! W* b5 H4 S
謝謝finster的回答~
6 T& x! B' J8 C; t. m$ |+ q7 @# a# K" G4 E& E
1. 從mcel3,mcel5...mcel13的比分別為32,16,8...1,但怎麼感覺和current scale不太一樣啊?; I$ r( C& W" W. ~/ X
   因為mcel1,mcel2組成了類似inv(有什作用呢?)( Q) E4 C/ }/ s

: l/ ]1 e8 m' ?) J. d7 a$ P2. mcel21,mcel19,mcel15,mcel16,mcel26,mcel25,mcel24,mcel23,mcel22,mcel20,mcel17,mcel18又有什用途呢?* ^; E' R/ g: S0 o% o/ |# ^
   (因為我覺得current scale應該不是只包括mcel3~mcel13這部分嗎?), P- a" {9 `1 R% T; e
* Y$ V) g2 W& K' D, Y" m
3. 假如mcel1,mcel3...mcel26是提供一個所需的current的話,納這些mos不就都需要工作在sat.嗎?, S8 G+ \& B7 a* T8 X6 w$ N# M

: ~+ d; E+ f1 Zp.s 除了幾個mos的gate是接dac7b~dac0b,其餘mos的gate都是接到同一個reference voltage上...
" k4 y, w9 a: I, }3 i  L5 h7 j: O( b2 b  w. G
對電路概念不是很清楚,所以又要麻煩各位大大的幫忙了,非常感謝~
4#
發表於 2008-7-28 17:55:25 | 只看該作者
我稍微看了一下電路
# e$ a* T; }7 k7 A' @3 s1. mcel1,mcel3,mcel5...mcel26是把他當成一個電阻嗎?( B$ N* K3 S9 v5 j) b
   嚴格來講,並不是,這是採用current scale的cascode架構的DAC,上面的那顆MOSFET是用來增加阻抗用的,你可以視它為一顆電阻並沒有錯,因為的它的作用類似是一顆電阻,不過,更正確的講法是這顆MOSFET是要提供一個由外部的bias voltage所產生出一個DAC所需的current
) K: s+ u5 E" z# S- v# A, q/ S, _! l5 Z" m  f; B; E& x
2. mcel2,mcel6,mcel8...mcel25則是switch吧?
$ @1 R: a0 w+ z) h: ^   是的,你可以這個樣子看它並沒有錯,不過,建議把上面兩顆MOSFET看成是cascode架構會比較完整* n- R3 A3 S$ K4 S3 i

6 ~; i4 l. D# ?2 X) q0 N3. 我給da0b~da7b的輸入後,為什在00000000不是在0v呢?
  A/ G' i& F( ?1 \) W   建議你在DAC的output設initial電壓為0V,如此一來應該就會是了
) w( a+ T8 ^! r  @% T0 W7 H9 v) k# c2 y
4. 這個電路應該是current scaling dac 吧?
! C/ H  @6 k+ Z9 r# [6 L" e! W   我沒有看到它的size比例,不過,若從電路架構來看,是的
1 H, q( h9 h1 i( ~/ s1 ]& _$ u
$ W6 S" v: M( [; v5. 在mcel16,mcel21,mcel23,mcel26應該是當成保護mcel15,mcel19和mcel24,mcel25的元件吧?
- {6 ~- T0 E+ Q! }( ]   不是,誠如我在第一點所言,你要把它看成是cascode架構以及上面那顆MOSFET是在提供一個由外部的bias voltage所產生出一個DAC所需的current,當比例值已經大到有點離譜時,一般的作法是串接MOSFET來減少電流值(另外一種說法是增加電阻),不過,因為電路圖有些字並不清楚,所以無法很正確的判斷,若由我以從的電路來判斷,上面的MOSFET的Gate應該要接同一點電位會比較合適些
3#
 樓主| 發表於 2008-7-28 13:54:05 | 只看該作者
感謝finster的回答~3 G& h. j! h1 `4 @# s

( N6 P4 P8 I4 D. c4 p* S5 w9 w1 k5 X關於這點我大概知道~& i4 W5 B! h* k: k
+ D/ H, h9 D- U. r* H7 k* T4 q  |
現在因為從學長那�得到一個電路,不過是很久以前的電路~
, B& k5 \% i* z+ `4 o2 b# S) N
  M# B" Y& F7 i7 J1 K( }我有拿來跑過,不過對電路還是有些疑問) F4 n3 N5 d4 U

( K0 S" s" S3 s8 }* V* mcel1,mcel3,mcel5...mcel26是把他當成一個電阻嗎?4 l7 m0 r! ^# t9 |5 D
* mcel2,mcel6,mcel8...mcel25則是switch吧?6 }  L* p  x* _! g, ], ^' A
* 我給da0b~da7b的輸入後,為什在00000000不是在0v呢?" V. z3 t4 a0 k2 g* G
* 這個電路應該是current scaling dac 吧?
5 z8 H  F$ U! m& I; L* 在mcel16,mcel21,mcel23,mcel26應該是當成保護mcel15,mcel19和mcel24,mcel25的元件吧?
- X( f5 n: \! n9 }% }" [
; x$ |# V: F/ i4 K  V我總是對電路都不太確定,只知大概~請各位前輩在幫我解答一下~麻煩各位了~謝謝

本帖子中包含更多資源

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

x
2#
發表於 2008-7-25 11:27:10 | 只看該作者
這種問題還真難回答! H2 g7 j2 p; U8 p+ N" ]- o
DAC是把數位碼轉換成類比電壓的電路7 O0 K2 f7 n% @. S( K( `! {
所以輸入信號是數位的"0"和"1"信號,亦即0電壓和VDD電壓的數位信號
" {  w$ L' X; ~; S$ T! Y% W而你是3-bit DAC,假若輸出的最高電壓準位是1V,1個LSB=1/(2^3)=0.125V,換算為
: K* R, g. W  V& B& D000  -->  0.000V/ F/ M! C$ d, K6 d  b
001  -->  0.125V
3 D( g6 }; T* Q3 C0 u) c  ]/ i+ A010  -->  0.250V4 C* W; q+ q+ a. F0 r% P; P
.          .
2 ^5 X1 a* q$ b0 y.          .
0 {" P0 t" E: e) e7 k111  -->  1.000V
; Z9 Z+ Q6 D" B0 f" Q3 }9 n你先藉由INL和DNL來計算出DAC的特性和轉換準位是否正確,然後才去計算SNR,SFDR,THD等參數
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-12-29 09:21 AM , Processed in 0.185010 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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