》nameWhenByFile
測試代碼如下:

當我們采用SpinalSystemVerilog(demo0())的方式生成RTL代碼時其生成的代碼風格如下:

在SpinalHDL中對于when的使用,when中所包含的條件往往會生成以一個when+fileName+行號的變量來替代,看起來無非代碼多了幾行,并不影響功能。
因為有行號的引入,我們一旦對SpinalHDL代碼中這部分代碼哪怕是添加了幾行注釋也會引起生成代碼的部分修改,雖然不影響功能,但對于那些喜歡看RTL代碼的人就顯得略顯得不爽了。
對于when的使用,可以在生成RTL代碼時采用下面的形式來生成:
SpinalConfig( nameWhenByFile=false ).generateSystemVerilog(demo0())
生成代碼如下:

如此生成的代碼不會再對when語句聲明單獨的變量,代碼看起來和那些采用Verilog寫代碼的人毫無差異吧~
這對于生層的RTL盡可能減少非必要的信號名稱變化。
》genLineComments
更近一步,對于代碼生成時采用下面的形式生成:
SpinalConfig(
nameWhenByFile = false,
genLineComments = true
).generateSystemVerilog(demo0())
此時生成的代碼風格如下:

當genLineComments聲明為true時,在生成RTL代碼中會標注映射對應的SpinalHDL代碼行號,這對于初學者在對比生成的RTL代碼學習SpinalHDL還是非常的有幫助~
》bitVectorWidthMax
SpinalHDL中對于信號位寬默認是最大不超過4096(Intel DDR校準控制IP里面就有信號位寬就是4096 bit位寬),當設計里定義了信號 位寬超過4096,則會在生成RTL代碼時報錯,可通過SpianlConfig中的bitVectorWidthMax對最大位寬進行修改:


審核編輯:劉清
-
DDR
+關注
關注
11文章
748瀏覽量
68595 -
Verilog
+關注
關注
30文章
1371瀏覽量
114217 -
RTL
+關注
關注
1文章
393瀏覽量
62435
原文標題:SpinalConfig Tips——讓代碼優(yōu)雅點兒
文章出處:【微信號:Spinal FPGA,微信公眾號:Spinal FPGA】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
在SpinalHDL中如何快速地實現(xiàn)總線連接
安規(guī)三項
關于SpinalHDL中的驗證覆蓋率收集簡單說明
在SpinalHDL中關于casez的使用
在SpinalHDL中的代碼組織結構如何實現(xiàn)Component參數(shù)化設計呢
如何在SpinalHDL里啟動一個仿真
三項閃聯(lián)國際標準文本明年2月公布
iOS 14和tvOS 14系統(tǒng)更新,HomeKit迎來三項重要功能
在SpinalHDL中的對應關系及聲明形式
SpinalHDL中Bundle數(shù)據(jù)類型的轉換
不同型號的三項電容可以串聯(lián)嗎?

分享下SpinalHDL中SpinalConfig中的三項參數(shù)
評論