類比電路設計的九重境界

本文章轉載至公眾號:射頻工程師的日常,如有侵刪。

01

我記得本科剛畢業時,由於本人

打算研究感測器的

,後來陰差陽錯進了

復旦逸夫樓專用積體電路與系統國家重點實驗室做研究生。

現在想來這個實驗室名字大有深意,只是當時惘然。

電路和系統

,看上去是兩個概念,兩個層次。我同學有讀

電子學與資訊系統方向

研究生的,那時候知道

他們是“系統”

的, 而

我們呢,是做模擬“電路”設計的,自然要偏向電路。

而模擬晶片設計初學者對奇思淫巧的電路總是很崇拜,尤其是這個領域的最權威的雜誌

JSSC

(IEEE Journal of solid state circuits), 以前非常喜歡看, 當時立志看完近二十年的文章,打通奇經八脈,總是憧憬啥時候咱也灌水一篇, 那時候國內在此雜誌發的文章鳳毛麟角, 就是在國外讀博士,能夠在上面發一篇也屬優秀了。

02

讀研時,我導師是鄭增鈺教授,李聯老師當時已經退休,逸夫樓邀請李老師每個禮拜過來指導。鄭老師治學嚴謹,女中豪傑。

李老師在類比電路方面屬於國內先驅人物,現在在很多公司被聘請為專家或顧問。李老師在87年寫的一本(運算放大器設計);

即使現在看來也是經典之作。李老師和鄭老師是同班同學,所以很要好,我自然相對於我同學能夠幸運地得到李老師的指點。

李老師和鄭老師給我的培養方案是:

先從運算放大器學起。所以我記得我剛開始從小電流源開始設計。那時候感覺設計就是靠模擬調整引數。

但是我卻永遠記住了李老師語重心長的話:

運放是基礎,運放設計弄好了,其他的也就容易了。

當時不大理解,我同學的課題都是AD/DA,鎖相環等“高階”的東東,而李老師和鄭老師卻要我做“原始”的模組,我僅有的在(固體電子學)(國內的垃圾雜誌)發過的一篇論文就是軌到軌(rail-to-rail)放大器。

做的過程中很鬱悶,非常羨慕我同學的專案,但是感覺李老師和鄭老師講的總有他們道理,所以我就專門看JSSC運放方面的文章,基本上近20多年的全看了。當時以為很懂這個了,後來工作後才發現其實還沒懂。所謂懂,是要真正融會貫通,否則塞在腦袋裡的知識再多,也是死的。

但是運算放大器是類比電路的基石,只有根基紮實方能枝繁葉茂,兩位老師的良苦用心工作以後才明白。

總的來說,在復旦,我感觸最深的就是鄭老師的嚴謹治學之風和李老師的這句話。碩士畢業,去找工作,當時有幾個offer。我師兄孫立平, 李老師的關門弟子,推薦我去新濤科技,他說裡面有個常仲元,魯汶天主教大學博士,很厲害。

我聽從師兄建議就去了。新濤當時已經被IDT以8500萬美金收購了,成為國內第一家成功的晶片公司。面試我的是公司創始人之一的總經理Howard。 C。 Yang(楊崇和)。Howard是Oregon State University 的博士,鎖相環專家。

面試時他當時要我畫了一個兩級放大器帶Miller補償的, 我很熟練。他說你面有個零點,我很奇怪,從沒聽過,雲裡霧裡,後來才知道

這個是Howard在國際上首先提出來的,等效模型中有個電阻,他自己命名為楊氏電阻。

當時出於禮貌,不斷點頭。不過他們還是很滿意,反正就這樣進去了。我呢,面試的惟一的遺憾是沒見到常仲元, 大概他出差了。進入新濤後,下了決心準備術業有專攻。因為本科和研究生時喜歡物理,數學和哲學,花了些精力在這些上面。工作後就得真刀真槍的幹了。

03

每天上班模擬之餘和下班後,就狂看英文原版書。第一本就是現在流行的Razavi的那本書。讀了三遍。感覺大有收穫。

那時候在新濤,初生牛犢不怕虎,應該來說,我還是做得很出色的,因此得到常總的賞識,被他評價為公司內最有potential的人。偶爾常總會過來指點一把,別人很羨慕。

其實我就記住了常總有次聊天時給我講的心得,他大意是說做類比電路設計有三個境界:

第一是會手算,意思是說pensile-to-paper, 電路其實應該手算的,模擬只是證明手算的結果。

第二是,算後要思考,把電路變成一個直觀的東西。

第三就是創造電路。

我大體上按照這三部曲進行的。

Razavi的那本書後面的習題我仔細算了。公司的專案中,我也力圖首先以手算為主,放大器的那些引數,都是首先計算再和模擬結果對比。久而久之,我手計算的能力大大提高,一些小訊號分析計算,感覺非常順手。

這裡講一個小插曲,有一次在一個專案中,一個保護迴路AC模擬總不穩定, 調來調去,總不行,這兒加電容,那兒加電阻,試了幾下都不行,就找常總了。

因為這個迴路很大,所以感覺是瞎子摸象。常總一過來三下五除二就擺平了,他仔細看了,然後就匯出一個公式,找出了主極點和頻寬表示式。

透過這件事,我對常總佩服得五體投地, 同時也知道直觀的威力。所以後來看書時,都會仔細推導書中的公式,然後再直觀思考訊號流,不直觀不罷手。一年多下來, 對放大器終於能夠透徹理解了,感覺學通了, 通之後發現一通百通。

最後總結:放大器有兩個難點,一個是頻率響應,一個是反饋。其實所謂電路直觀,就是用從反饋的角度來思考電路。

每次分析了一些書上或者JSSC上的“怪異”電路後,都會感嘆:反饋呀,反饋!然後把分析的心得寫在paper上面。

學通一個領域後再學其他相關領域會有某種“加速”作用。常總的方式是每次做一個新專案時,讓下面人先研究研究。

我在離開新濤前,做了一個鎖相環。我以前沒做過,然後就把我同學的碩士論文,以及書和很多paper弄來研究。

研究了一個半月,常總過來問我:鎖相環的3dB頻寬弄懂了吧?

我笑答:早就弄懂了。

我強大的運放的頻率響應知識用在鎖相環上,小菜了。我這時已經去研究高深的相位噪聲和jitter了。

之後不久,一份30多頁的英文研究報告發出來,常總大加讚賞!。後來在COMMIT時,有個專案是修改一個RF Transceiver晶片, 使之從WCDMA到TD-SCDMA。

裡面有個基帶模擬濾波器。我以前從沒接觸過濾波器,就花了兩個月時間,看了三本英文原版書,第一本有900多頁,和N多paper, 一下子對整個濾波器領域,開關電容的,GmC的,Active RC的都懂了。

提出修改方案時, 由於我運放根基紮實,看文章時對於濾波器訊號流很容易懂,所以很短時間就能一個人提出晶片電路原理分析和修改方案。

最後報告寫出來(也是我的又一個得意之作),送給TI。,TI那邊對這邊一下子肅然起敬,Conference call時, 他們首先說這份報告是“Great job!”,我英文沒聽懂,Julian對我誇大拇指,說“他們對你評價很高呢”。

後來去Dallas, TI那邊對我們很尊敬, 我做報告時,很多人來聽。

04

總之,現在知道,凡事情,基礎很重要,基礎紮實學其他的很容易切入, 並且越學越快。

我是02年 11月去的COMMIT,當時面試我的也是我現在公司老闆Julian。

Julian問我:你覺得SOC (system on chip)設計的環節在哪兒?

我說:應該是類比電路吧,這個比較難一些。Julian說錯了,是系統。

我當時很不以為然, 覺得類比電路工程師應該花精力在分析和設計電路上。

Julian後來自己run了現在這公司On-Bright,把我也帶來, 同時也從TI拉了兩個,有一個是方博士。

我呢,給Julian推薦了朱博士。這一兩年,我和朱博士對方博士佩服得五體投地。

方博士是TI華人裡面的頂級高手, 做產品能力超強。On-Bright現在做電源晶片,我和朱博士做了近兩年,知道了系統的重要性。

晶片設計最終一定要走向系統, 這個是晶片設計的第四重境界。電路如同磚瓦,系統如同大廈。

晶片設計工程師一定要從系統角度考慮問題,否則就是隻見樹木,不見森林。

電源晶片中,放大器,比較器都是最最普通的, 其難點在於對系統的透徹理解。

在On-Bright,我真正見識了做產品,從定義到設計,再到debug, 晶片測試和系統測試,最後到RTP (release to production)。

Julian把TI的先進產品開發流程和專案管理方式引入On-Bright,我和朱博士算是大開眼界,也知道了做產品的艱辛。

類比電路設計的九重境界

第一重:

你剛開始進入這行,對PMOS/NMOS/BJT什麼的只不過有個大概的瞭解,各種器件的特性你也不太清楚,具體設計成什麼樣的電路你也沒什麼主意,你的電路圖主要看國內雜誌上的文章,或者按照教科書上現成的電路,你總覺得他們說得都有道理。你做的電路主要是小規模的模組,做點差分運放,或者帶隙基準的模擬什麼的你就計算著發文章,生怕到時候論文湊不夠。總的來說,基本上看見運放還是發怵。你覺得spice是一個非常難以使用而且古怪的東西。

第二重:

你開始知道什麼叫電路設計,天天捧著本教科書在草稿紙上狂算一氣。你也經常開始提起一些技術引數,Vdsat、lamda、early voltage、GWB、ft之類的。總覺得有時候電路和手算得差不多,有時候又覺得差別挺大。你也開始關心電壓,溫度和工藝的變化。例如低電壓、低功耗系統什麼的。或者是超高速高精度的什麼東東,時不時也來上兩句。你設計電路時開始計劃著要去tape out,雖然tape out看起來還是挺遙遠的。這個階段中,你覺得spice很強大,但經常會因為AC模擬結果不對而大傷腦筋。

第三重:

你已經和PVT鬥爭了一段時間了,但總的來說基本上還是沒有幾次成功的設計經驗。你覺得要設計出真正能用的電路真的很難,你急著想建立自己的信心,可你不知道該怎麼辦。你開始閱讀一些JSSC或者博士論文什麼的,可你覺得他們說的是一回事,真正的晶片或者又不是那麼回事。你覺得Vdsat什麼的指標實在不夠精確,模擬器的預設設定也不夠滿足你的要求,於是你試著模擬器調整引數,或者試著換一換模擬器,但是可它們給出的結果仍然是有時準有時不準。你上論壇,希望得到高手的指導。可他們也是語焉不詳,說得東西有時對有時不對。這個階段中,你覺得spice雖然很好,但是幫助手冊寫的太不清楚了。

第四重:

你有過比較重大的流片失敗經歷了。你知道要做好一個電路,需要精益求精,需要戰戰兢兢的仔細檢查每一個細節。你發現在設計過程中有很多不曾設想過的問題,想要做好電路需要完整的把握每一個方面。於是你開始系統地重新學習在大學畢業時已經賣掉的課本。你把能能找到的相關資料都仔細的看了一邊,希望能從中找到一些更有啟發性的想法。你已經清楚地知道了你需要達到的電路指標和效能,你也知道了電路設計本質上是需要做很多合理的折中。可你搞不清這個“合理” 是怎麼確定的,不同指標之間的折中如何選擇才好。你覺得要設計出一個適當的能夠正常工作的電路真的太難了,你不相信在這個世界上有人可以做到他們宣稱的那麼好,因為聰明如你都覺得面對如此紛雜的選擇束手無策,他們怎麼可能做得到?這個階段中,你覺得spice功能還是太有限了,而且經常對著“time step too small”的出錯資訊發呆,偶爾情況下你還會創造出巨大的模擬檔案讓所有人和電腦崩潰。

第五重:

你覺得很多競爭對手的東西不過如此而已。你開始有一套比較熟悉的設計方法。但是你不知道如何更加最佳化你手頭的工具。你已經使用過一些別人編好的指令碼語言,但經常碰到很多問題的時候不能想起來用awk或者perl搞定。你開始大量的佔用伺服器的模擬時間,你相信經過大量的模擬,你可以清楚地把你設計的模組調整到合適的樣子。有時候你覺得做電路設計簡直是太無聊了,實在不行的話,你在考慮是不是該放棄了。這個階段中,你覺得spice好是好,但是比起 fast spice系列的模擬器來,還是差遠了;你開始不相信AC模擬,取而代之的是大量的transient模擬。

第六重:

你開始明白在這個世界中只有最合適的設計,沒有最好的設計。

你開始有一套真正屬於自己的設計方法,你會傾向於某一種或兩種模擬工具,並能夠熟練的使用他們評價你的設計。你開始在設計中考慮PVT的變化,你知道一個電路從開始到現在的演化過程,並能夠針對不同的應用對他們進行裁減。你開始關注功耗和麵積,你tape out的晶片開始有一些能夠滿足產品要求了。但是有時候你還是不能完全理解一些複雜系統的設計方法,並且犯下一些愚蠢的錯誤並導致災難性後果。你開始閱讀 JSSC時不只是挑一兩片文章看看,或許把JSSC作為廁所讀物對你來說是一個不錯的選擇。在這個階段中,你覺得spice是一個很偉大的工具,你知道如何在spice中對精度和速度做合理的模擬,並隨時做出最合適的選擇。

第七重:

你開始真正理解類比電路設計的本質,無論對於高精度系統還是高速度系統都有自己獨有的看法和經驗。你可以在系統級對不同的模組指標進行折中以換取最好的效能。你會了解一個潛在的市場並開始自己的產品定義,並且你知道只要方法正確,你設計出的產品會具有很好的競爭力。你可以從容的從頭到腳進行整個電路的功能和指標劃分,你瞭解裡面的每一個技術細節和他們的折中會對於你的產品有怎樣的影響。你開始關注設計的可靠性。在這個階段中,你覺得spice是一個很實用的工具,並喜歡上了蒙特卡洛模擬,但你還是經常抱怨伺服器太慢,雖然你經常是在後半夜執行模擬。

第八重:

這個時候成功的做出一個晶片對你來說是家常便飯,就象一名駕駛老手開車一樣,遇到紅燈就停、綠燈就行。一個產品的設計對於你來說幾乎都是無意識的。你不需要再對著模擬結果不停的調整引數和最佳化,更多時候之需要很少量的模擬就可以結束一個模組的設計了。你能夠清楚地感覺到某一個指標的電路模組在技術上是可能的還是不可能的。你完全不用關心具體模組的噪聲係數或者信噪比或者失真度。你只需要知道它是可以被設計出來就可以了,更詳細的技術指標對你來說毫無意義。你開始覺得JSSC上的東西其實都是在湊數,有時候認為JSSC即使作為廁紙也不合格(太薄太脆)。你覺得spice偶爾用用挺好的,但是實在是不可靠,很多的時候看看工作點就差不多夠了。

第九重:

這時候的你對很多電路已經料如指掌,你可以提前預知很多技術下一輪的發展方向。一年你只跑上幾次模擬,也可能一模擬就是幾年。你很少有畫電路圖的時候,多數時間你在打高爾夫或是在太平洋的某個小島釣魚。除了偶爾在ISSCC上湊湊熱鬧,你從不和別人說起電路方面的事,因為你知道沒人能明白。