如何成長成為合格的晶元系統架架構師?
我是微電子專業研一學生,本科同樣微電子。現在學習了模c系統設計,asic,verilog等專業課,覺得模擬數字同等重要,想能成長成數模混合晶元設計的系統級工程師,想請問前輩們我的必經之路
我曾經在H和B兩家通信IC設計公司工作過,我自己的職位是做數字IC設計,在項目組中常常和架構、演算法、Analog/RF的工程師一起工作。說一下自己的感受:H公司項目偏工業用,開發規模大,開發流程嚴謹。架構工程師往往出身演算法或者通信領域,用Matlab來確定系統架構並完成浮點演算法模擬,然後有專門的演算法工程師將其落實為定點演算法,再交給數字/Analog/RF的工程師去實現。
B公司項目偏消費類,每個項目團隊只有3-6IC設計工程師(不含後端與layout)公司幾個項目團隊依賴有一個很能幹的架構工程師。這個架構工程師出身於數字IC設計,自己專研演算法多年,也是先用Matlab搭建系統架構並演算法模擬,然後和數字/Analog/RF的工程師直接去確定系統的可行性,最終實現。
所以你說你想做數模混合晶元設計的系統級工程師,我想演算法是一項基本功,數字IC和模擬IC的設計流程、設計中的風險和成本是一項經驗積累和工具積累,可能還要有大量實際項目的debug、管理和實現的經驗。供你參考另外,胡運旺有本書叫《胡說IC,IC工程師白皮書》,裡面有轉么對系統演算法工程師的職位講解,推薦列舉具體的知識點(背景)或者方法,我覺得並不是關鍵。
關鍵在人本身,所以我堅持一個好的「架構師」的特性就三點:「堅韌」、「樂觀」、「腦洞大開」。
至於好的「系統」架構師,那他一定玩《文明》或《模擬城市》玩得很溜,要不然圍棋或繪畫很棒。數字做得好好的,結果每天都在處理架構方面問題的飄過。干這個必須得了解其它所有崗位的技術要點。射頻模擬前端後端演算法軟體處理器工藝生產測試成本商務等等等等,而大部分需要學習的東西都是在跟不同角色討論技術的過程中吸收,沒有一本書可以教會你的。在設計細節上主要考慮的關鍵詞是解決方案供電時鐘複位中斷低功耗可測性帶寬優先順序仲裁封裝工藝軟硬體劃分匯流排架構管腳復用等等內容,我想這些你都沒在教科書里見過吧。
我記得在我剛開始讀master的時候,我特意跑去問學長一個問題:架構跟IC設計的區別到底是神馬? 學長說的很簡略:架構更加宏觀高層而IC設計更加的底層具體。當時沒太懂,但是做了兩年的架構現在在公司也是做架構,現在對這句話有更多的體會了
樓上的好幾個評論也都提到了這個觀點。要想成為一個系統架構師的話,你不能僅僅只是研究某幾個模塊的設計,你要了解基本整個chip的組成。以我現在的boss為例吧,如果要是開發新產品的話,他不僅僅決定要用哪種ARM的core,還要決定怎麼設計memory hierarchy, 選擇哪種bus protocol更好。同時還要跟physical design的組討論某些功耗啦,跟software的組討論對某些application的支持。在我看來,一個好的架構師肯定是一個IC設計者,不僅如此他們還擁有很強的大局觀。好的架構師就那種 :
」恩,這個chip的設計圖就是這樣,大家開始碼代碼好啦「
然而要成為這種大神我想說的是必備條件是時間,我聽說過和見過的這類架構師少說都混了十幾二十年。為神馬?因為很多時候只有當你的項目跟這個模塊有關的時候你才能懂才能了解。而一個chip上那麼多模塊,是需要一個個虐過來的。僅講SOC,架構這個東西太大了。但是理論上來講,IC領域最適合搞架構的不是IC工程師,而是firmware工程師,或者為硬體開發驅動和演算法的工程師。這是我們公司的CTO(工作25年)在跟我們講職業發展的時候講的。這個講法是很有道理的。因為對於一個很大的晶元項目,做IC的,後端就不說了,即便是前端,也通常很少有人懂整個chip是怎麼拼起來的,大部分人懂得都是自己的領域和模塊,比如DRAM,比如MCU,比如某類匯流排,但是有一個角色會全部都懂,即懂底層,也明白上層的需求。這個就是為晶元開發驅動和演算法的工程師。這類工程師要給IC寫驅動,必須知道晶元是怎麼做的,也必須經常跟IC各個模塊的設計者討論軟硬體劃分和系統定義的事情(扯皮)。從站的角度上來說,他們就比晶元設計者高度更高,看得更加全面。他們能夠知道整個chip的運作方式,整個chip的數據流,所以眼界更寬更大。大部分搞IC的,都是出了自己家門路都不認識,對別的模塊一竅不通。比如,搞IC某一塊的,通常只看那一塊的協議,比如DRAM協議,比如AMBA協議,但是搞FW,整個chip涉及到的所有硬體部件相關協議他們都要看,所以通常知識面也更全,也更適合搞架構。
而IC工程師,因為硬體設計方法的層次還是太低,RTL級的生產力太弱,大部分時候都在搞很細節很具象的東西,所以通常難以獲得抽象層次更高的知識。IC工程師在和FW/軟體工程師定義完軟硬體劃分之後,首先思考的就是怎麼堆底層邏輯,所以也與更上層的東西無緣。
推薦閱讀:
※為什麼最近幾年fpga變得越發受大家重視了?
※Windows 10 如何做到全平台統一?
※德州儀器退出移動CPU領域的原因是什麼?如果德儀沒有退出,那麼現在的移動領域會有怎樣的變化?
※魅藍note的CPU帶寬夠用嗎?
※如何評價小米旗下松果電子首款自主研發處理器「澎湃S1」?