一言以蔽之:文人相輕,自古而然,IC產業亦若是。
「文人相輕」是出自曹丕在《典論》中的一句話,指的是讀書人之間互相看不起。這句話當然不是鐵律,不過的確說出了文人之間的傾向。隨著人們書唸得越多,想法也越來越多,就會越堅持自己的見解,就越傾向於看輕別人的貢獻。
網路上有一張圖,叫「IC工程師崗位鄙視鏈」,這圖很經典地詮釋了IC工程師各種崗位之間的文人相輕。原文有一些專業的tool名稱和遊戲的哏,在儘量不失原義的情況下,我轉寫為下表。
(備註:本表的閱讀方式為,左下的工程師看右上的工程師。橫的一列是本職位看別人的感覺,直的一欄是本職位在別人心目中的感覺。例如第一列,架構工程師覺得架構工程師自己是公司的核心,架構工程師覺得設計工程師會被ChatGPT取代,……,架構工程師覺得後端工程師會被EDA取代。)
架構 | 設計 | 驗證 | 中端 | 後端 | |
架構 | 我們運籌帷幄,就是公司的核心 | 設計就是即將被ChatGPT取代的職位 | 驗證就是另一個也會被ChatGPT取代的職位 | 中端沒什麼用啊 | 後端的作用,很快就被EDA所取代了 |
設計 | 架構就是蹩腳的程序員,根本不懂電路 | 沒有設計就沒有IC,我們就是造物主 | 驗證不過是設計的祕書罷了 | 中端沒什麼用啊 | 後端就是做support的 |
驗證 | 沒聽說過架構有什麼用,不知道在跩什麼 | 設計可以被驗證取而代之 | bug都靠驗證找出來,我們力挽狂瀾於既倒 | 中端沒什麼用啊 | 後端就是做support的 |
中端 | 沒聽說過架構有什麼用,不知道在跩什麼 | 設計的作用感覺連compiler都比不上 | tool檢查就能找到問題了,要驗證幹嘛 | 我們負有承上啟下、繼往開來的責任 | 後端寫腳本也不如中端,不知道在幹嘛 |
後端 | 沒聽說過架構有什麼用,不知道在跩什麼 | 設計就是蹩腳的程序員,根本不懂電路 | 驗證不過幫前面人做錯擦屁股的而已 | 中端沒什麼用啊 | 整顆IC都靠後端實現,我們可謂是扶大廈之將傾 |
架構
架構工程師的主要工作就是定義晶片的規格,如果規格訂得不對,就算實現做得再好,這產品仍然沒有人要。正所謂運籌帷幄之中,這就是架構工程師得以自豪的原因。
然而架構做久了以後,容易與實做脫鉤,verilog coding的能力自然就荒廢了,所以設計工程師就覺得他們只會打高空,根本不懂電路。而驗證、中端、後端工程師都與架構工程師沒什麼關聯,因此只認為他們高高在上。
設計
設計工程師的主要工作就是按照晶片規格,寫出verilog,由於他們創造萬物,就自詡為造物主。但是在架構工程師看來,設計工程師沒有發想的能力,不過就是基於架構弄出東西而已,而寫硬體語言沒什麼了不起,交給ChatGPT生一生就可以了。
驗證工程師看設計寫的verilog,常常能找出一堆錯誤,就覺得設計工程師到底在幹什麼,連這種簡單的東西都會寫錯,我來寫都比你強。中端、後端工程師看設計,就覺得設計工程師完全沒有實體電路工藝的概念,只會寫一堆製程合不出來的verilog,
驗證
驗證工程師的主要工作就是驗所有的功能,要找出設計的bug,由於常能找到很多漏洞,所以自詡為力挽狂瀾的中流砥柱。
從架構工程師的角度來看驗證,會覺得跟設計沒什麼差別,反正都是寫代碼的。設計工程師看驗證,覺得不過就是個秘書,因為真正寫verilog的是設計,驗證就是幫忙我跑腿的。中端、後端工程師看驗證,覺得他們就是跑tool幫別人擦屁股而已,也不用什麼腦。
中端
中端工程師的主要工作就是合成、可測試性設計等,是前端設計以及後端實現的橋樑,負有承上啟下、繼往開來的責任。
不過從其他工程師的觀點來看,就覺得中端上也不是、下也不是,甚至在規模比較小的公司,還沒有中端工程師的的職缺,而是把中端的工作分給前端和後端。因此,中端工程師很尷尬的,前端設計不熟、後端實現也不精,其他職位的工程師就不知道中端有什麼用。
後端
後端工程師的主要工作就是實現晶片,要不是有後端豐富的經驗,做出來的晶片要嘛面積太大(成本高),要嘛功耗太高,就沒有競爭力可言了。
從架構、設計、驗證工程師的角度來看後端,只覺得他們就是用用EDA、做做support罷了。而中端工程師則是覺得後端寫腳本的能力比不上自己。
上面這表格的對角線斜體字是自己看自己,全部都是優點,其他格子就是自己看別人的觀點,全部都是缺點。其實每個職位,在IC design的環節中都佔有一席之地,想要做出一顆好的chip,每個階段都是不可或缺的。