verilog case语句_浅谈Design Compiler -- Verilog语言结构到门级的映射
昨天的文章中,我們了解到Design Compiler(DC)作為Synopsys公司開發(fā)的一款用于電路綜合的EDA工具,在全球數(shù)字電路市場(chǎng)去得了巨大的成功,它的設(shè)計(jì)初衷是將用Verilog HDL語言描述的RTL(寄存器傳輸級(jí))電路,映射成基于某個(gè)特定工藝庫的門級(jí)網(wǎng)標(biāo)。那么我們數(shù)字前端設(shè)計(jì)工程師編寫的RTL,對(duì)綜合的結(jié)果到底有沒有影響呢?什么樣的RTL,會(huì)有利于工具的綜合呢?今天我們來討論一下。
Verilog HDL編碼效率
我們知道Design Compiler的輸入是用Verilog HDL編寫的RTL和時(shí)序、面積等約束條件,那么在同樣的約束條件之下,不同的RTL,得出的綜合結(jié)果(包括時(shí)序和面積)會(huì)相差非常多。這就是因?yàn)椴煌木幋a效率所致。
大量的事實(shí)證明,Verilog編碼效率決定Design Compiler綜合得到的電路性能的高低。DC工具的優(yōu)化只能是雪中送炭,而不能錦上添花。所以如果是一段非常低效的RTL代碼,DC也不能綜合出來一個(gè)高效的電路。
我們后面將對(duì)Verilog HDL中的幾種主要結(jié)構(gòu)(always、case等等),進(jìn)行分析,希望能夠讓大家對(duì)Verilog HDL和DC綜合的電路之間,有一個(gè)初步的映射。
可綜合Verilog HDL的編寫原則
我們?cè)诠ぷ髦?#xff0c;總結(jié)出了一些Verilog的編碼原則,它們?nèi)缦滤?#xff1a;
- 從電路到RTL代碼。在編碼之前,需要先大概想出,電路的基本模型,verilog只是將這個(gè)模型描述出來。且不可只是寫代碼,根本不知道所寫的RTL,究竟是否能夠通過DC,映射成電路,或者說,能夠映射成什么樣的電路。
- RTL的代碼層次要清楚。功能越是復(fù)雜,越要注意RTL的邏輯層次結(jié)構(gòu)。這是保證數(shù)據(jù)流和所設(shè)計(jì)模塊清晰的基本條件。
- 參數(shù)的使用。在實(shí)際工作過程,因?yàn)榍岸诵枨笞儎?dòng),規(guī)格更改的情況時(shí)有發(fā)生,所以參數(shù)的應(yīng)用,絕對(duì)是減少自己工作量的重要手段。
- 保證RTL的可綜合性。Verilog HDL中有許多語句,是不能使用DC合成的,在編寫RTL時(shí),一定要避免使用(在驗(yàn)證過程中可以使用)。
- 信號(hào)命名要有實(shí)際意義。有意義的信號(hào)命名,不經(jīng)可以使我們?cè)倬幋a過程中,思路清楚,更重要的是,在驗(yàn)證過程中,能夠提升我們Debug效率。
- 避免latch的產(chǎn)生。在if-elsecase語句結(jié)構(gòu)中,必須保證分支的完整性,避免latch的產(chǎn)生。
小結(jié)
今天我們著重強(qiáng)調(diào)了編碼質(zhì)量的重要性,以及一些實(shí)際的編碼原則,來保證代碼質(zhì)量。還有哪些原則需要注意,歡迎大家和我進(jìn)行討論。
歡迎加關(guān)注“單眼皮老王”,閱讀IC、圖像處理、ASIC、FPGA、AI等相關(guān)文章,更歡迎和我討論。
總結(jié)
以上是生活随笔為你收集整理的verilog case语句_浅谈Design Compiler -- Verilog语言结构到门级的映射的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中的urllib库_七、ur
- 下一篇: 动词ing基本用法_百因必有果,你的“福