Introduction to Analog IC 類比積體電路導論

教授: 吳重雨

教授很認真,講話很清晰有條理,投影片很詳細。

而這門課讓我覺得最不一樣的地方是,下課的時候,可以看到教室前面大家排隊等著問老師問題。教授人很好,很歡迎大家發問。

好喜歡這種問問題,又得到解答的感覺啊。

以往修課的經驗是,老師問大家有沒有問題,沒有人敢舉手。其實藉由發問,很多不理解的東西都能迅速獲得解答,對於我的學習很有幫助。

另外,手寫作業幾乎每個禮拜都有,有時候會有Hspice模擬的作業。最重要也最精采的就是期末的Final Project,要自己設計一個Amplifier。並不是隨便做一個能放大的Amplifier就能交差了事,要符合一定的規格。

舉例來說,這次要做一個寬頻高速的opamp,要達到SR=200V/us,還有unity gain frequency=100MHz等等。

Final project: DC gain & phase

盲目地調W和L是沒有結果的。

開始之前先想想,滿足SR需要多大的電流? 滿足100MHz頻寬和Phase Margin,先估算在pole和zero的位置,需要多大的gm和電容?

符合基本的規格之後,還要測試在不同Corner下,電路是不是還能正常運作? CMRR, PSRR, Output Swing, Noise, THD, Settling Time? 此外,還要想辦法讓Power Dissipation越小越好。

我覺得設計OP最困難的地方是,很多時候我好不容易調好了A,B就壞掉了。等我千辛萬苦調好了B,又產生C的問題。卡在無止境的調整迴圈中,雖然很痛苦,但是也給了我很多思考和複習上課內容的機會。

我設法從我有限的知識中尋找答案,或是google搜尋。很多時候,或許當下卡在一個點解不出來,但是稍微休息一下,在吃飯、洗澡、睡前等等的空檔,突然靈光乍現的想出解決辦法。我的想法有時候對,有時錯,我慢慢從錯誤中學習,也慢慢明白了trade-off (魚與熊掌不可兼得)的道理。

VLSI 超大型積體電路設計導論

教授: 李鎮宜

基本上分成上課跟Lab,上課就是投影片介紹一些VLSI的基本知識,還有如何用MOS去實現邏輯等等。

Lab很重要也很累(淚),簡單來說就是要實際做出一個電路的架構,分成四個步驟。

  1. 寫Verilog確認每個邏輯閘的功用
  2. 將Verilog的邏輯用MOS組成,用Hspice驗證
  3. 把Hspice的電路實際畫出layout
  4. 畫完layout之後,跑DRC & LVS驗證是否正確。驗證成功之後,再轉為Hspice code,驗證考慮寄生電容的結果
Final project: MAC6 layout picture

Layout之所以那麼累,是因為這些密密麻麻的色塊,都是一個一個畫方塊出來的><。方塊組成MOS,MOS組成邏輯閘,邏輯閘組成電路。每次作業繳交前都要沒日沒夜的拿命在畫,看著色塊眼睛都花了,卻還有一大塊電路還沒開始。就算畫完了也不能高興,因為一跑DRC和LVS驗證,就送給你100個error。眼花撩亂地在方塊中尋找我到底錯在哪裡QQ,卻還是沒有頭緒。

如果要我用一句話簡單地形容畫layout,我會這麼說:

我在拿積木蓋城堡。

因為layout是一個立體的結構,所以要先挖地基(Nwell),打鋼筋(poly),填水泥(pplus, nplus),再將積木(metal)一層一層的往上蓋,最後蓋出大城堡。

現在想想,不是很喜歡這種靠蠻力畫layout的方法,其實呼叫instance就直接有現成的MOS,或是有EDA工具可以自動轉成layout啊。

不過這麼辛苦地寫lab,還是有學到東西的。最重要的是可以將課堂上學到的東西親自驗證一遍,加深印象。或是說很多時候,如果沒有親自去畫,親自去跑模擬,親自去測試,你永遠不知道每個電路的特性。你不會知道哪一種D flip flop比較好,怎麼處理CLK,怎麼讓電路更快更好。

微處理機原理與實驗

教授: 曹孝櫟

這學期用的開發板是nucleo64-L476RG。

前半學期用組合語言控制一些基本的元件像是LED、鍵盤等。覺得比較困難的是用組合語言寫遞迴函式,因為程式每遞迴一次,就需要更新並儲存返回的指標(LR)。簡單來說,就是出門後要不斷記下回家的門牌,所以要清楚了解push, pop, stack pointer的用法,不然在路上怎麼迷路的也不知道。

期中考以後,改成用C語言寫,藉由寫暫存器的方式去實現Timer, NVIC Interrupt, LCD, USART, ADC等功能。本來以為寫C code會比較簡單好控制,但是實際要用暫存器設定Timer, Interrupt, UART, ADC等功能非常複雜。設定對應的register, line, enable等等,有時候沒注意到其中一個細節,或是哪一個register沒有設到,哪一條line沒有enable,就是一片空白沒有結果QQ stm32暫存器的複雜度比8051高太多了,啃datasheet也痛苦QQ

這門課也有一個Final Project,要發揮創意製造一個能實際運作的”東西”。我的想法很簡單,做一台迷你投籃機,要像路上的投籃機那樣,會唱歌。下圖是我一開始的構想。

main idea and proposal of the basketball shooter

下面是我的結果,畫質不太好,主要是電路的部分。

Circuit of the basketball shooter (with music)

功能包括:

  • DAC 播放小精靈和馬力歐賽車的音樂
  • 7 seg顯示分數還有倒數時間
  • 進球感測
大概是這樣玩的

在尋找如何播放聲音的過程中,我發現了CubeMX。一用馬上就愛上CubeMX的方便簡單,我只需要簡單的打個勾設定一下,就能夠讓DAC 藉由DMA發出聲音了。不敢想像如果用暫存器設定,會有多複雜啊。

有了CubeMX的幫忙,其實final project只是個簡單的作業。但是它激發了我對CubeMX控制stm32的興趣。網路上有很多教學的網站和影片,期許自己行有餘力能多學一些。

電磁波

教授: 胡樹一

老師很厲害,整本課本背在腦中,上課可以直接在黑板上推導,推導公式很清楚明瞭,寫板書更能加深我的印象。因為都是老師腦中的東西,所以都是各章節的重點和精隨,老師能用淺顯易懂的方式去解釋課本上抽象的概念,還會舉例一些應用,蠻有趣的。

要先學電磁學(一)才能修電磁波哦。

開學從Maxwell Equation 開始講起,介紹time-varying field, Boundary Condition, Wave Equation等。接下來介紹Plane Wave,不同介質間平面波怎麼入射,折射,反射等。

(left) input reactance of short circuit line (right)傳輸線電壓駐波

有了平面波的概念,傳輸線的電流、電壓,其實和電場、磁場很類似。最讓我感到有趣的就是對高頻的訊號而言,阻抗竟然會隨距離改變,還有藉由電壓駐波能回推反射係數和VSWR。

Double Stub Tuning and Smith Chart
Waveguides
Antenna

電磁波好有趣哦。

期末考的大抄

修過電磁學的人都知道,因為公式太多了,所以期中期末考可以帶一張A4大的大抄進去考試。如果你對電磁學感到很失望的話,再給電磁波一個機會吧XDD 老師真的超棒的!幽默風趣,個性直爽,喜歡喝販賣機的飲料,而且上通天文,下知地理XDD 上課是一件很愉快的事,每次都很期待上課!

近代物理

教授: 郭治群

介紹相對論,波的物質性,物質的波動性,原子結構,薛丁格方程式等等。

因為本人資質平庸,到後面實在無法理解老師在教什麼,常常腦袋一片空白的坐在教室裡,加上前面那四門課幾乎把我榨乾了,沒什麼時間力氣好好把這門課讀細讀懂。真正讓我覺得很有趣的是相對論XD 不過也不是在這門課裡面學的。薛丁格方程式就一直不知道算什麼,一直不知道算什麼,一直不知道算什麼,就把氫原子光譜裡面所有的能階算出來,身為一個凡人,真是太抽象了。

我有寫另外一篇文介紹: Relativistic Effect相對論學習筆記,裡面有我認為很有意思的舉例和說明,有興趣的話可以點進去看看。

我和工四。

期中考以後,很後悔自己衝動的選了這麼多課。真的很謝謝身邊的老師,同學,助教,學長姐,家人給我很多的幫助,讓我平安的活到期末。

先這樣。 (記於20190305)

後記:事隔多年再回頭看,覺得當年在一個學期內修這麼多課,真的太累了。很感謝過去的自己這麼努力,但也真的不需要把自己弄得這麼累。

--

--