想要成為一名優秀的數字IC設計工程師需要哪些基本的專業知識呢?如下:
1.半導體物理學、半導體器件物理學、基本的固體物理、半導體工藝與制造等物理學知識;
2.電路分析、模擬電子線路、COMS模擬集成電路、專用集成電路基礎等模擬IC知識;
3.信號系統、數字信號處理、信道編碼、通信原理等通信知識;
4.C語言、匯編、C++、腳本(shell、tcl、perl)、Linux(我覺得如果懂kernel那就更好了)、體系結構、組成原理等計算機知識;
5.各種EDA和編程調試工具的使用Modelsim、Debussy、quartus ii、Cadence、DC、vim等等(就數字方向而言用的最多的5種左右,模擬另當別論);另外虛擬機什么的總得玩得轉吧!
6.當然最重要的還是我們親愛的--verilog,不會verilog(當然VHDL也是一樣的)那你會別的也算不上優秀的
Digital IC Engineer!verilog語法并不復雜,只是初學者容易犯一些“類C”錯誤,總會不經意間將verilog寫
成了C語言,或者是沒有使用并行思想,或者就是多處賦值等等問題。如果我們克服了之前的一些小毛病,在這
些之外,我們想更近一步提升自己的寫代碼水平、研發水平,而不是只做一個碼農的話那么我們要做的就是:
第一步:提高代碼規范性,每個企業、研究所可能都有自己的一套代碼書寫規范,但是總的來說都有一些共性,
而且往往這些共性的地方還特別多,一個沒有代碼規范的程序員不可能寫出非常漂亮和優秀的程序,當然有了規
范的代碼后也不一定就能寫出漂亮和優秀的程序,這是兩碼事。代碼規范之后的一個境界我覺得是優良的編程風
格,編程風格不同于代碼規范,編程風格在verilog中特別指代那些邏輯上的風格,同樣的功能,使用不同的編
程風格,代碼綜合面積可能是幾倍的關系,這一點我深有體會,另外,人們不經意間的編碼習慣可能會導致許多
冗余代碼,在verilog綜合之后,這些冗余就會成為實實在在多出來的不必要的電路,他們或者是寄存器或者是
沒用的組合邏輯,雖然往往DC一類的綜合工具會對代碼綜合進行優化,并且會根據綜合腳本進行最大化的優化計
算,但是工具畢竟是工具,他不可代替人類,很多冗余電路綜合工具并沒有辦法進行優化,因為工具并不知道你
的本意,也不可完全進行語意預測,而不必要的電路意味著更多的流片成本,更低的work效率和更多的功耗消
耗,這些都不是我們想看到的,所以一個好的coding風格本身對于企業來說就是非常大的價值!!!
當然我認為要培養良好的coding風格并不是一件容易的事,本身 verilog design == 電路設計,透過代碼
看電路這個能力并不是一蹴而就的,這需要我們的長期的學習和思考總結,就像模擬設計一樣,往往這是一種
經驗!