我想講講自己的成長歷程,主要是技術(shù)能力是怎么提升的。先簡單介紹一下。本人一直從事audio dac/adc的,也就是sigma delta dac/adc,在audio中,dac遠(yuǎn)比adc重要,所以重點(diǎn)還是在dac上。目前dac的水平是做到了100多個db的動態(tài)范圍,關(guān)鍵在于功耗很低面積很小,是在公司原來70多個db的基礎(chǔ)上,不僅將性能做到了100多個db,還將功耗面積都大大減少了,性能功耗面積全面超出了國外知名的IP供應(yīng)商。
你買mp3之類的東西,你說是播放重要還是錄音重要呢?所以dac比adc重要。
我不是什么大牛,只不過有點(diǎn)心得感悟,拿出來分享而已。寫得不好,見笑了。
在學(xué)校的時候我一直想做個程序設(shè)計師,自己摸索編程(編稱對一個模擬電路設(shè)計工程師來說是很重要的,后面會提到),畢業(yè)后卻成了模擬電路設(shè)計師。實際的我的專業(yè)不是計算機(jī)也不是微電子。剛進(jìn)公司時實際上只懂得一點(diǎn)點(diǎn)帶隙基準(zhǔn)的設(shè)計,實際上連ac/tran仿真都沒有弄明白,還不知道電路一定要經(jīng)過tran仿真,密勒補(bǔ)償也不知道是什么意思。現(xiàn)在回想起來笑死人了。剛分給項目組時,主管在忙項目,剛好項目遇到瓶頸,他又不喜歡帶人,覺得我又用不上,干脆就分給我一個課題:研究一下classd吧,現(xiàn)在挺火的,研究好了你就是專家了,公司沒有人研究過。于是我就開始了長達(dá)半年多的放羊式的工作生涯,大部分的基礎(chǔ)都是在這個時候建立的。在這些時間內(nèi)我干嗎呢?看看拉扎維,gray的書,發(fā)現(xiàn)跟classd也沒什么關(guān)系阿,在網(wǎng)上找paper,看了將近100多篇,還是沒有頭緒,畢竟paper中的垃圾太多了,找出真正好的paper不容易。后來終于找到TI的一篇classd論文,講得很好,于是試著做電路,并且開始仿真。后面我將講一些自己感覺對學(xué)習(xí)模擬電路真正有用的方法。
說的沒錯,機(jī)遇還是很重要的,重要的是自己善于把握機(jī)遇。人生就這樣,什么時間段就做什么事情,如果把握不住,以后就再沒有這么好的時光了,珍惜現(xiàn)在非常重要。到目前為止,我工作3年多了。IP供應(yīng)商是ChipIdea,現(xiàn)在被mips收購了。classd幾年前還是挺火的,現(xiàn)在就成了白菜了。不少人有誤解,說classD的性能比不上ClassAB,更比不上ClassA,實際上是不對的。ClassD照樣可以做到非常好,好好設(shè)計的話,96dB動態(tài)范圍,-80dB以上的性能是很容易得到的,ClassAB反而不容易做好諧波失真。ADI有個AD1991,性能很高,遠(yuǎn)比一般的ClassAB高,但是我看其架構(gòu)一般,有更好的架構(gòu)可以做到同樣的性能,但是功耗更低,很重要的是,開發(fā)周期可以更短。關(guān)鍵在于架構(gòu)。其實所有的電路都這樣,關(guān)鍵在于架構(gòu)。做電路有4點(diǎn)是非常重要的,
1、性能;
2、功耗;
3、面積;
4、開發(fā)周期
決定這4個范圍的折衷關(guān)系的關(guān)鍵就是架構(gòu)。
1. 作模擬的一定要基礎(chǔ),所謂的基礎(chǔ)!用來分析模擬電路的通用工具:信號與系統(tǒng)和電路理論,這兩本本科教材恰恰是做模擬的基礎(chǔ)
2. 深刻理解基本的模擬電路模塊,比如current mirror,2 stage miller OTA,folded-cascode OTA等。不是說看了Allen的書,懂了其中的公式,而是能琢磨出書中不曾提過的方面,即使書中的東西,也能有自己的理解甚至修正。這個過程既是一個需要理論嚴(yán)格推倒的過程,又是一個需要培養(yǎng)直覺的過程;既是一個看書學(xué)習(xí)別人的過程,又是一個獨(dú)立思考,形成自己設(shè)計方法的過程。畢竟,真正的做出產(chǎn)品有所創(chuàng)新,教科書遠(yuǎn)遠(yuǎn)是不夠的。
3. 在2的基礎(chǔ)上形成對于模擬電路設(shè)計的一種直覺以及經(jīng)驗值,這是實際設(shè)計中的最有用,比如一個current mirror Vdsat取多少,面積取多大;另外對于各種電路的優(yōu)劣有了更加深刻認(rèn)識,知道對于所需要的性能,能夠選取最簡單可靠的結(jié)構(gòu)來實現(xiàn)(這一點(diǎn)是很重要的)。
4. 在流片基礎(chǔ)上積累工程經(jīng)驗,知道模擬電路在實際過程還有哪些仿真無法預(yù)測的東西,這往往不是一個電路的問題,而是可能各個模塊之間配合之類的。
5. 針對流片中的問題進(jìn)一步加深了對電路的理解,并且在此基礎(chǔ)上能夠有所創(chuàng)新。在實際中發(fā)現(xiàn)很多做模擬的,論文也許看了不少,書也看過不少,可是拿他們的電路做一下DC,發(fā)現(xiàn)很多current mirror Vdsat只有幾十mV,一個差分對工作狀態(tài)都十分不合理,比如輸入差分對vdsat,active load Vdsat取的都不合理,比如輸出級館子的L。
還有很多人做電路是拿大炮打蚊子,很普通的要求,硬是做的很復(fù)雜的結(jié)構(gòu),不計面積。
開始看classd,我是怎么都看不懂,搞不懂原理。方波能表示諧波失真很低的正弦波?開始用開環(huán)結(jié)構(gòu),即使用最理想的PWM產(chǎn)生器,也很難產(chǎn)生諧波失真很低的波形,何況模擬電路有那么多非理想性呢?當(dāng)時還看到文獻(xiàn)說要做死區(qū)時間。我想這怎么可能呢?那不是就制造非線性嗎?但是沒有死區(qū)時間的話,功耗很大,EMI問題也很難解決。真是太矛盾了,簡直就是沒有辦法折中。大家知道,開關(guān)電路仿真速度是很慢的,半個小時才能夠仿真一個周期,精度還不是很高,所以一有什么想法,我都需要花至少半個小時以上的時間去驗證。實際上,使用的時間遠(yuǎn)比半個小時要長,因為hspice經(jīng)常碰到收斂性問題,而且經(jīng)常是仿真到一半的時候不收斂!前功盡棄!痛苦了很長時間。后來發(fā)現(xiàn)spectre的收斂性比較好,以后就一直用spectre了。但是還是時常有收斂性的問題。為了這個問題,我找了一本專門將spectre仿真的書(是開發(fā)spectreRF的那個牛人寫的),研究spectre是如何計算,做電路的時候如何幫助仿真器收斂,建模的時候要考慮那些不收斂因素。這是我做設(shè)計的風(fēng)格,遇到不懂的問題,總是去找專業(yè)的書或者文獻(xiàn),認(rèn)認(rèn)真真研究,即使花很多時間也要去做,重要的是一定要弄懂!在那之后我就很少碰到收斂性問題了,即使碰到了也能夠很快解決。classD的矛盾問題當(dāng)時沒有辦法解決,最后我想,一定是我的思路錯了。這個時候的我,還是從時域去思考問題的。不過在研究文獻(xiàn)的時候,我找到了方向:
1、要從頻域解決問題;
2、ClassD的重點(diǎn)是noise shaping;
于是開始學(xué)習(xí)信號與系統(tǒng)。當(dāng)時感覺,很多人都覺得信號于系統(tǒng)很重要,但是真正花時間去學(xué)習(xí)的人并不多,因為真正用信號的概念去解決問題的人并不多。我看書的習(xí)慣是通讀一遍,一般使用3天到1個星期的時間,然后就結(jié)合自己的實際工作開始研究相關(guān)章節(jié)。但是信號與系統(tǒng)太理論化了,還是不知道怎么應(yīng)用到實際中。我想ClassD怎么說也算一個模擬濾波器吧,又研究起了濾波器的書,其間也是需要用拉普拉斯算子推導(dǎo)傳輸函數(shù)的。在推導(dǎo)的過程中,慢慢建立起信號與系統(tǒng)的概念。但是對于ClassD的noise shaping,我還是不懂。ClassD的重點(diǎn)是noise shaping,這點(diǎn)我是從sigma delta調(diào)制器中了解到的。sigma delta是7 C4 D 相當(dāng)成熟的理論,現(xiàn)在幾乎很少人去研究它了。我想,干嘛不先弄懂sigma delta再做ClassD呢?于是我找這方面的資料。恰好我的一位同事非常喜歡搜集各種模擬電路的書籍,他給我推薦了一本ADI牛人寫的《Delta- Sigma Data Converters - Theory,Designand Simulation》,我現(xiàn)在把這本書稱為sigma delta bible,我的大部分sigma delta的知識都是從這本書中得來的。同樣還有一本很重要的書是:《Understanding Delta Sigma Data Converters》_這本書也是ADI的牛人寫的。如果有人問我,做模擬電路從做什么開始最好?我會說從sigma delta adc/dac做起最好,因為它會告訴你什么是信號,什么是傳輸函數(shù),什么是建模,什么是噪聲等等模擬電路中最核心的內(nèi)容。如果問學(xué)習(xí)sigma delta要看什么書的話,我就推薦這兩本書。我之所以在這個領(lǐng)域能做出一些東西來,這兩本書的作用是最大的!
但是不是說我學(xué)完這兩本書就什么都會了。還差太遠(yuǎn)了,因為吸收知識是不容易的。而且,說句實話,做電路可不是學(xué)教科書,書上講得都是對的。現(xiàn)實情況是我們經(jīng)常不知道哪些是對的,哪些是錯的,paper滿天下,但是錯誤或者含糊不清的東西也滿天下。當(dāng)我們遇到?jīng)]有資料講過的問題時,甚至不相信自己的推導(dǎo)是否正確。很多人做完電路后也經(jīng)常疑惑,自己做的電路真的可以工作嗎?性能能夠達(dá)到要求嗎?有bug嗎?有什么地方?jīng)]有考慮到嗎?
做模擬電路和做數(shù)字電路或者軟件最大的不同并不是兩者之間的難度的差距,而且模擬面對太多不確定的問題,軟件可以運(yùn)行,FPGA可以跑邏輯,但是模擬電路沒有,只有比蝸牛還慢的仿真軟件,而且還沒有辦法模擬真實的情況。在回片之前很難有100%的把握說自己是對的!做模擬電路的信心實際上來自于你自己怎樣去判斷哪些仿真結(jié)果是可信的,哪些 仿真結(jié)果是不可信的。真正的提高來自于對已有芯片的debug。當(dāng)時公司剛好有一款芯片正在debug,出了了不少問題,其中一個問題就是sigma delta DAC的問題。我在開會和其他情況下,我知道了這個問題的現(xiàn)象,那就是輸出居然有三角波!這個嚴(yán)重的問題過了很長時間都沒有能夠解決。當(dāng)時我拿到了設(shè)計文檔,對 里面的結(jié)構(gòu)進(jìn)行matlab建模,當(dāng)然還是學(xué)習(xí)階段。說到matlab建模,我得重點(diǎn)說一下,matlab是非常重要的工具,做sigma delta的優(yōu)點(diǎn)是,你必須掌握這個重要的工具,否則是很難進(jìn)步的。前面說過,我原來是想當(dāng)程序員的,寫過一些代碼,這個時候,我寫代碼的經(jīng)驗馬上幫了我大忙,我很快就進(jìn)入了狀態(tài),對matlab非常有感覺,于是我就用matlab 對sigma delta系統(tǒng)開始進(jìn)行建模了。這里我又要介紹一本書了,那就是《數(shù)字信號處理實踐方法》,這本書我花了一個黃金周看完,一個黃金周除了看書吃飯睡覺幾乎不做別的事情,黃金假期就這樣給我毀了,但是這是我最不后悔的一個黃金周,因為這事我學(xué)習(xí)信號與系統(tǒng)的關(guān)鍵轉(zhuǎn)折點(diǎn)。這本書深入淺出,很多我原來看信號與系統(tǒng)沒有看懂的內(nèi)容都在這本書中看懂了。而且與matlab的結(jié)合,使得本書特別適合sigma delta建模的指導(dǎo)書。這本書講數(shù)字濾波器的,與其說數(shù)字濾波器,不如說是離散時間濾波器,所謂ADC/DAC不就是離散時間濾波器嗎? 而且我連數(shù)字濾波器的算法也研究了,為我以后接下整個codec的設(shè)計打下了基礎(chǔ)。這個領(lǐng)域是比較奇怪的,做模擬電路的人覺得這個是數(shù)字電路的領(lǐng)域,做數(shù) 字電路的人又忙于做實現(xiàn),沒有時間去研究,就成了真空地帶。只有我不忙項目,想學(xué)什么就學(xué)什么,自己又有興趣,剛好自己又在學(xué)習(xí)數(shù)字信號處理。所以就研究了起來。有matlab作為實踐工具,學(xué)習(xí)還是很快的。當(dāng)時就一邊寫代碼,一邊優(yōu)化算法去了。《Delta-Sigma Data Converters - Theory, Design and Simulation》這本書我也一直在看,直到有一天,我在書中看到了這個現(xiàn)象的描述,而且規(guī)律和測試結(jié)果相似,于是我對這個現(xiàn)象用matlab進(jìn)行了建模,建模結(jié)果表明,三角波是可以建模出來!而且其它現(xiàn)象也類似!于是,我把建模結(jié)構(gòu)給領(lǐng)導(dǎo)演示了,我說問題應(yīng)該應(yīng)該是這個,但是我也不知道電路是在哪里出了問題,給我時間,我相信可以把問題找出來!
做事情重要的不是你本身有多厲害,而是你有多投入。
就自己的經(jīng)驗來說,收獲最多的總是投入最大的時候,而且投入的多少和得到的多少是相差很多的。假如投入80%的話,收益可能是20%,但是如果再加20% 的投入,你卻可能得到另外的80%的收益。所謂行百里者半于九十也就是這樣的道理。
實際上問題的現(xiàn)象和書中所講是有區(qū)別的,甚至有矛盾的地方。在建模中我對發(fā)生問題的可能性進(jìn)行了研究,對問題發(fā)生的可能行也進(jìn)行了猜測,同時對電路進(jìn)行了仿真。為了做仿真,我又學(xué)習(xí)了VerilogA語言,進(jìn)行了簡單建模,同時研究dft算法,研究用什么樣的方法可以提高仿真精度,同時減少仿真時間。 sigma delta的仿真是非常緩慢的,經(jīng)常是一天才能夠仿真一個case。在仿真的時候,我?guī)缀踅^望了,因為仿真結(jié)果表明,設(shè)計沒有問題,找不到任何問題的跡象。我不斷變換條件去仿真,同時也在不斷建模。在建模的時候,我發(fā)現(xiàn),這個問題在某某電路之前不可能出現(xiàn)這個問題,在某某電路之后也不可能出現(xiàn)這個問題! 推理和建模都說明了這個問題,但是拿電路一仿真,發(fā)現(xiàn)又沒有這個問題!無法重現(xiàn)。當(dāng)時的心情就是:絕望!問題看起來近在咫尺又遠(yuǎn)在天邊,看到了希望,又好像沒有希望!就這樣我仿真了兩個多月的時間,幾乎要放棄了。在不斷的仿真中,終于有一次,我把這個問題仿真出來了,但是表現(xiàn)和測試結(jié)果又有不一致的地方。當(dāng)時我的判斷是,問題并沒有找出來,我不過是找到了另外一個沒有那么嚴(yán)重的問題而已。debug過程又進(jìn)入了絕望的階段。
當(dāng)時有新的項目要開始做了,里面剛好有這個模塊,項目組內(nèi)分模塊的時候,大家都不愿意選這個模塊,不過我倒是很愿意。我的思路是一定要把問題找到,才開始做電路。實際上是很冒風(fēng)險的,項目是有進(jìn)度要求的,但是debug這種事情是沒有辦法控制進(jìn)度的,很容易把項目變得不可控。但是問題不找出來怎么能夠保證下一版就沒有問題呢?難道問題會憑空消失嗎?我決定把時間繼續(xù)投入到debug中,堅持到最后時刻,才開始這個模塊的設(shè)計。正好領(lǐng)導(dǎo)也重視這個問題,所以才能夠繼續(xù)堅持下去。在某天看波形的時候,我看到問題了!波形有不對的地方,我對這個問題進(jìn)行抽象,從信號與系統(tǒng)的角度來看,應(yīng)該跟測試結(jié)果吻合。我建立了新的模型,建模仿真表明,跟測試結(jié)果的表現(xiàn)是一致的,對電路做了調(diào)整,在做spice仿真,發(fā)現(xiàn)問題真的不見了!最讓我激動的是:我做到了理論/建模/測試/仿真的一致性!讓我100%的確定,我找到了問題的根源,唯一擔(dān)心的是,不知道是否還有未發(fā)現(xiàn)的問題。畢竟模擬電路和數(shù)字電路不同,數(shù)字電路對就是 對,錯就是錯,模擬電路卻是模糊的,仿真經(jīng)常還是會出現(xiàn)盲點(diǎn)的。不過幸運(yùn)的是,電路修改后就沒有問題了。讓我感到驚訝的是,實際上問題出現(xiàn)的地方跟原來一大早的推論是一致的,在那一點(diǎn)之前的通路不可能出現(xiàn)這個問題,在后面的通路也不可能出現(xiàn)這個問題。問題就在那個點(diǎn)上。這個困擾人那么久的問題,說白了其實是小小的錯誤,修復(fù)這個錯誤,我所做到的不過是修改了一根線而已。但是收獲很多,遠(yuǎn)比一根線多多了!做sigma delta最重要的是噪聲,就是在那段時間,我獲取了不少數(shù)據(jù),利用這些數(shù)據(jù),并且修改仿真方法,最終做到了仿真與測試的一致,這對噪聲計算的信心增加了很多。有句話說:lowpowermeans understand more about noise,這句話是非常正確的,懂得了噪聲,你就知道怎么去簡化電路,降低非關(guān)鍵電路的功耗,并且恰當(dāng)?shù)匾?guī)劃關(guān)鍵電路的功耗。對電路也能夠提出很多創(chuàng)新的地方出來,包括結(jié)構(gòu)的創(chuàng)新。debug完成之后,就開始做項目中的DAC了,我馬上對結(jié)構(gòu)進(jìn)行了全面的修改,減少了沒有必要的噪聲源,同時合理規(guī)劃噪聲,降低了功耗。那個時候時間已經(jīng)很緊張了,但是完成這個電路的速度很快,最后還是趕上了項目進(jìn)度,tapeout出去了。不過項目也因為其它原因夭折了。一般人第一次都是不怎么敢創(chuàng)新的,都希望求穩(wěn),但是我當(dāng)時的想法卻是,創(chuàng)新才是最穩(wěn)妥的,對自己有足夠的信心,牛氣十足。現(xiàn)在回過來看當(dāng)時的情形,自己也感覺很吃驚,明明是第一次做電路,卻好像自己是一個專家一樣,幾乎沒有投片的經(jīng)驗,卻信誓旦旦地說自己的電路沒有問題,一定可以達(dá)到很高的水平。其實除了自己,其他人都不怎么相信,特別是有好幾年工作經(jīng)驗的老員工。不過也不怪他們,如果我處于他們的位置,我的想法恐怕和也他們一樣。
沒有想到帖子居然給加入精華了。我做事情比較固執(zhí),很多東西我都想研究清楚,不喜歡似懂非懂的狀態(tài),所以會花很多時間去學(xué)習(xí)。這是看起來比較慢的學(xué)習(xí)方法,卻讓我學(xué)到不少別人沒有學(xué)到的知識。上面提到的項目完成后,我又回頭去做了一下classd項目,花了一個星期的時間定義了top結(jié)構(gòu),對信號傳遞函數(shù),噪聲傳遞函數(shù)都進(jìn)行了計算,并搭建了veriloga模型,在這個模型中研究了各種非理想性,同時也加入了擴(kuò)頻算法。并且仿真驗證(都是建模的)。在系統(tǒng)中就保證了電路的非理想性對電路性能的影響是微乎其微的。通過這種方法,把電路設(shè)計的難點(diǎn)轉(zhuǎn)移到系統(tǒng)函數(shù)中,而非模擬電路設(shè)計中。和將電路難點(diǎn)轉(zhuǎn)移到數(shù)字電路中是相同的道理。做完之后,我發(fā)現(xiàn)classd是非常簡單的東西,而且肯定可以做到比較低的功耗,最后,以至于自己連做classd電路的興趣都沒有了,因為在我眼中,這是一個已經(jīng)充分論證的論題,沒有必要再投片去驗證了。后來這個電路就交給其他同事去做了,因為我又有了新的項目。最后這個項目做出來,性能非常好,相比之下,TI的classd的性能只能說是非常一般。總結(jié)起來,classd技術(shù)與我原來所想的其實是一樣的,利用了噪音整形技術(shù),但是比sigma delta ADC/DAC更簡單,因為沒有真正意義的數(shù)模轉(zhuǎn)換部分,電路實現(xiàn)是很簡單的。
原帖地址:http://bbs.eetop.cn/thread-141642-1-1.html
整理后的地址:http://bbs.eetop.cn/thread-313574-1-1.html
關(guān)注EETOP,后臺輸入 百寶箱查看推薦文章:
-
模擬數(shù)字產(chǎn)品開發(fā)流程
-
SPICE簡史
-
干貨分享:測量自己的心電圖(從理論到電路)
-
好的模擬IC工程師應(yīng)該具有的素養(yǎng)
-
模擬IC設(shè)計領(lǐng)域的經(jīng)典之作
-
是否需要模擬后仿真?
-
極點(diǎn)零點(diǎn)之我見
-
六本經(jīng)典模擬IC書籍精彩評論及總結(jié)
-
模擬設(shè)計的100條圣經(jīng)
-
模擬電路學(xué)習(xí)入門的建議
-
模擬IC流片經(jīng)驗分享
-
模擬IC年薪幾十萬師兄的模電學(xué)習(xí)經(jīng)歷
-
想成為一名模擬ic設(shè)計師在本科期間應(yīng)該做哪些準(zhǔn)備?
-
模擬電路設(shè)計的九重進(jìn)階
-
模擬集成電路設(shè)計第二講:傳輸函數(shù),零極點(diǎn)的形成及時域響應(yīng)
-
我還要不要繼續(xù)學(xué)習(xí)模擬設(shè)計--一個跨行碩士的疑問
-
如何學(xué)習(xí)模擬IC設(shè)計
-
模擬大牛談模擬工程師身價及發(fā)展方向
-
模擬電路應(yīng)知應(yīng)會200問
-
模擬后仿真的幾種做法以及優(yōu)缺點(diǎn)
-
關(guān)于模擬地與數(shù)字地很意思的解釋
-
干貨! 深入淺出射頻模擬電路設(shè)計經(jīng)典講義
-
伏模之路--模擬電路學(xué)習(xí)感悟
-
模擬IC設(shè)計真的很難學(xué)嗎?
-
模擬IC正向設(shè)計流程總結(jié)
-
模擬學(xué)習(xí)感悟與總結(jié)
-
模擬濾波設(shè)計講義
-
拉扎維模擬CMOS集成電路設(shè)計講義Part3
-
拉扎維模擬CMOS集成電路設(shè)計講義Part2
-
模擬學(xué)習(xí)感悟與總結(jié)
-
電子工程師
+關(guān)注
關(guān)注
252文章
767瀏覽量
95621 -
模擬技術(shù)
+關(guān)注
關(guān)注
17文章
469瀏覽量
39733
原文標(biāo)題:模擬IC設(shè)計-我的成長經(jīng)歷
文章出處:【微信號:eetop-1,微信公眾號:EETOP】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論