我與 JK flip-flop 的愛恨情仇
在我大二上的時候,我曾經修過一門課為「數位電路」,用的課本是 Digitial Design by M. Morris Mano。看過這本的人都知道,這本對於JK flip-flop做了非常多的描述與應用,然而這也是我苦難的開始。
因為我完全不懂 JK flip-flop 怎麼用...Orz
老師上課講的我也聽不懂,可見應該是我上課不認真,後來我自己一個人盯著這本課本看,我終於懂了 digital design 這本書想要傳答什麼,其實還蠻簡單的
得知題目的input, output, state, next state(這邊可能會有兩個步驟) -> 寫成 truth table -> 使用 k-map 化簡 -> 寫出每一個 output signal& next state signal 的 boolean algebra -> 畫電路 -> 故事結束
那跟 JK flip-flop 有什麼關係? 因為課本很多都是用它當例子,要懂的話就大概得懂 JK flip-flop,這對當初沒什麼概念的我而言真的蠻痛苦,不過硬是幹到會,之後我就拋棄了 JK flip-flop了,設計上一律使用 D flip-flop (為什麼,看看兩者的功能就知道了XD)。沒有它我可能學不會數位電路,但是有了它,我學數位電路好痛苦...Orz。
在禮拜五的時候,ycma 在上 Computer Arthmetic 幫我們複習基本的 IC Design 時,說了
不要使用 JK flip-flop,晶圓廠也只提供 D flip-flop 的 library 讓你使用,它只是功能看起來比較炫,其實並不好最佳化
我聽到,想到了我以前有點痛苦的往事XD,於是我就問啦,那麼為什麼會有 JK flip-flop,ycma 又說話了 XD
因為這本書是在四十年前寫的,IC Design 尚未自動化,如果插麵包版的話,JK flip-flop 能省下比較多的電路,但是在這個年代,自動化電路設計時,我們會希望元件越簡單越好,因為越簡單越容易最佳化。
其實話說到這邊,已經讓我了解非常多的事了,也果真是隔行如隔山...
這個學期幫忙老師在灌EDA Tool準備上課使用時,使用的是「國家晶片設計中心」所提供的軟體(聽說每個都很貴...), ycma 更是打趣的說,在台灣學硬體的人比較沒空寫 blog XD,呃,我之前是很少找到硬體的blog是沒錯,不過這大概也跟我只下軟體開發的關鍵字有關係,我想有空,我會寫一寫在這個學期的學習經驗
---
其實也沒什麼愛恨情仇的 XD