8051不是此篇的重點好嗎?
前一陣子貼文講到現在學生要不要會寫一顆8051,引起了一點爭議,到底在目前技術一日百里的情況下做這件事。其實,#我們是在討論一個大學三年級上下,#剛剛入門到IC設計這個領域,#之前可能只在大二數位系統寫過簡單的Verilog,#對EDA工具還不太熟的狀況。
做這樣的事是不是浪費時間,是不是老頭以前好棒棒所以覺得現在的年輕學子都要會老頭以前會的東西呢?讓我把場景拉到二十多年前。
當時,我有幸造訪加州理工學院(就是那個排名不是一二三,但是大家都肅然起敬的Caltech),遇到一位教授,專門做機器動物的,那時我看到的demo是一隻會飛的蝙蝠,當場立正站好是我的第一反應。我問教授,他的目標是什麼?他沒跟我講要發什麼論文以及做什麼理論,他輕描淡寫地說要做一隻一比一能飛的蚊子,幾年前我看到已經可以做蜻蜓了,這幾年我有看到蚊子了,不知道是不是他實驗室做的(他應該是到了退休年紀的了)。
他提及怎麼訓練博士生。因為clean room與各式加工機是必須的,博士生前兩年不准看論文,只准修很少的課,其他的時間就是維修clean room與修機器。他說,特殊機器很貴,沒辦法壞掉就買,連修都很貴,所以博士生多數必須買壞掉的二手機器來殺肉,遇到真的買不到的零件或是治具,因為有加工機房,所以要自己車。我的下巴都要掉下來了,心想這樣子哪有學生要找他念博班,博班要念幾年?教授很健談,自己回答了我的問題,前兩年假如沒通過他的認可就要離開實驗室了,如果留下來繼續念,六年是最快的,十年的算一般的。至於有沒有學生來跟呢?假如畢業就可以到前幾名的大學任教或是還沒畢業就有高薪的工作等著他,會沒有人來嗎?這也是教授自己當博士生時他的老師對他的訓練方式。
大家認為讓一個博士生花兩年每天只是在修理機器如何呢?修不好還要滾蛋呢!其實原因蠻簡單的,因為這個實驗室要用的很多東西沒有現成的可以買,有的話也很貴不一定買得起。但是沒在賣難道研究就不做了嗎?
這樣的訓練方式不是一般人可以走的路,一整個國家會這麼樣的功夫的人也不必太多,但是如果要做這麼前沿的技術,總要有幾個是從頭走過來看過所有風景的人。
我並沒有說所有電機資工的學生都要會寫一個8051,但是做一個8051的過程剛好可以讓一個有志走這條路的學生把語法建立得扎實一點,把toolchain好好摸一遍,還有Synopsys的reference design可以參考,讓你比較你跟高手差多遠。在IC設計領域,很多事是有一個標準的, 我記憶中Synopsys的one-cycle 8051只有一萬多一點個邏輯閘,0.35製成可以跑超過100Mhz。有人說,與其做8051,為何不做現代更厲害的RISC-V呢?問題是,你要讓一個才剛修過數位系統與計算機組織的學生去做一個RISC-V嗎?很多人會說,有很多工具(cpu compiler)可以讓你定義指令集,定義架構,定義匯流排等等就可以生出一個CPU,還帶 C Compiler呢?我的實驗室以前也做過類似的介面與匯流排電路產生器,不會錯且通常比普通學生親手刻的要好很多,不過用產生器的學生在這方面總是懂得不如做這些工具的學生,當然前者有他強過後者的部分就是,一個人不需要什麼都會,遇到時再學就好,但是有時年輕與體力是學一件事的基本要件,俗話說,過了那個村就沒那個店了,萬一這是個關鍵技術,如同上面說的Caltech的例子呢?這國家總要有一些人會吧!跑在最前面的人往往不可能兼顧這麼底層的能力,何況產品趕快出去比較要緊,有多少人願意如Caltech的博士生一樣做這麼多年呢?但也只有這等人才能做出那樣等級的東西。
我回憶起大概16年前,我們團隊算是台灣做數位音頻放大器最前沿的了。把邏輯與高壓做成兩顆IC是正常做法,因為製程不同,較為便宜的CMOS製程一般就是5V,而客戶需求要超過10V,這樣才能超過10W,可以用在一般的電腦產品上,也才有量,為了價格的競爭力,幾乎所有客戶都希望用CMOS,而且是single chip solution,還要內建USB。客戶不會理你這麼做合不合理,其他比我們更早進市場的用的是2-die solution,如果我們跟他們一樣有什麼理由要轉單給我們呢?我們的工程師還好是從古時候自己做電晶體起家的,跟世界先進合作,硬是把CMOS製成電壓提到超過15V,而一般安全操作電壓可以在12~13V。當這個世界沒有人提供參考電路給我們的工程師時,如果唸書時沒做過類似的設計,即使世界先進能不收錢每兩個月給我們一個shuttle,時間到了還是做不出來。
很多精密的科技是沒有參考設計的,類似EUV/DUV這個目前只有ASML才做得夠好的機器,世界上不是只有ASML才知道這樣的專利技術,問題是很多時候就是看你有沒有那種夠有經驗,嘗試錯誤的次數可以比一般工程師少一個數量級的工程師。很多時候,你沒從底層做上來的基本功即使把全部的資料都攤在面前你還是做不出來。
前面的文章討論的是很前端的技術,不是一般般的東西,而且要真的能動的東西,不是只用來寫論文而已,需要在架構上跑很前面的人,也需要在實作上很堅強的人,還必須加上很有經驗的「老人」,大家通力合作,這三種人不需要多,但是缺任何一種不是做很久,就是做不出來。
半導體產業是那種你一旦落後一季,很快就變成落後半年,然後就是一年,再要追上來就難上加難的產業,我當學生的初期,聯電跟台積電是差不多的,在某一年的製程轉換選擇技術合作對象時聯電落後了,未來我也不覺得有太大的機會可以追上。
做很久才做出來,跟做不出來的差異差不多是五十步與百步之差,所以遇到要用才來練功就是會讓你做很久。
很多時候,我們的學生很仰賴reference design,很倚賴generation tool,我自己在很多年前就已經放棄自己建cell library了,所以要不是我們工程師(比我年紀大XD),我當時應該是做不出來的,即使願意回頭做,也要很久才做得出來。
現在這AI時代,我們確實都需要依賴類似Pytorch的工具,但是一旦你想做點新的model而現有工具裡卻沒有的,你自己是否還做得出來呢?能自己做的人不必多,但是想做更前端技術的團隊之中卻必須要有人懂。
我玩音響很多年,有一個牌子叫Rowland,有一度,他改用ICE功率模組,又有一度他改用功率IC,聲音據說還不錯,很多人也用這個功率IC來做,這個功率IC周邊零件沒幾個,很容易做,但是對於後級放大器,輸出級的架構甚至只是偏壓都影響聲音甚巨,假如你已經無法設計,只能用功率IC,也就只能用reference design,那麼你剩下能做的事就很少甚至是很trivial,最終只能把機殼做很漂亮然後砸錢買廣告能賣出去就好,但是我們都知道那是什麼回事。
要不要從基本功練起,我想是看個人,但是從半導體這樣的護國神山產業來看,政府,科技部(快消失了),學校與老師們是不是該多想想,還是大家覺得我們的學生只要學會呼叫reference design與generation tool就好,遇到有需要的時候再來學呢?
留言
張貼留言