專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

verilog的代碼規(guī)范和coding風(fēng)格

作者:上善若水   來源:上善若水空間   點(diǎn)擊數(shù):  更新時間:2014年06月08日   【字體:

     想要成為一名優(yōu)秀的數(shù)字IC設(shè)計(jì)工程師需要哪些基本的專業(yè)知識呢?如下:

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

相關(guān)文章