0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

Spinal FPGA ? 來源:Spinal FPGA ? 2023-02-08 10:01 ? 次閱讀

》nameWhenByFile

測試代碼如下:

37195e7a-a713-11ed-bfe3-dac502259ad0.png

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

37538b68-a713-11ed-bfe3-dac502259ad0.png

在SpinalHDL中對于when的使用,when中所包含的條件往往會生成以一個when+fileName+行號的變量來替代,看起來無非代碼多了幾行,并不影響功能。

因為有行號的引入,我們一旦對SpinalHDL代碼中這部分代碼哪怕是添加了幾行注釋也會引起生成代碼的部分修改,雖然不影響功能,但對于那些喜歡看RTL代碼的人就顯得略顯得不爽了。

對于when的使用,可以在生成RTL代碼時采用下面的形式來生成:

SpinalConfig(
nameWhenByFile=false
  ).generateSystemVerilog(demo0())

生成代碼如下:

378a4efa-a713-11ed-bfe3-dac502259ad0.png

如此生成的代碼不會再對when語句聲明單獨的變量,代碼看起來和那些采用Verilog寫代碼的人毫無差異吧~

這對于生層的RTL盡可能減少非必要的信號名稱變化。

》genLineComments

更近一步,對于代碼生成時采用下面的形式生成:

  SpinalConfig(
    nameWhenByFile = false,
    genLineComments = true
  ).generateSystemVerilog(demo0())

此時生成的代碼風格如下:

37bb7304-a713-11ed-bfe3-dac502259ad0.png

當genLineComments聲明為true時,在生成RTL代碼中會標注映射對應的SpinalHDL代碼行號,這對于初學者在對比生成的RTL代碼學習SpinalHDL還是非常的有幫助~

》bitVectorWidthMax

SpinalHDL中對于信號位寬默認是最大不超過4096(Intel DDR校準控制IP里面就有信號位寬就是4096 bit位寬),當設計里定義了信號 位寬超過4096,則會在生成RTL代碼時報錯,可通過SpianlConfig中的bitVectorWidthMax對最大位寬進行修改:

37d2d882-a713-11ed-bfe3-dac502259ad0.png

37fe516a-a713-11ed-bfe3-dac502259ad0.png







審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • DDR
    DDR
    +關注

    關注

    11

    文章

    698

    瀏覽量

    64969
  • Verilog
    +關注

    關注

    28

    文章

    1333

    瀏覽量

    109749
  • RTL
    RTL
    +關注

    關注

    1

    文章

    384

    瀏覽量

    59534

原文標題:SpinalConfig Tips——讓代碼優(yōu)雅點兒

文章出處:【微信號:Spinal FPGA,微信公眾號:Spinal FPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    SpinalHDL如何快速地實現(xiàn)總線連接

    教你在SpinalHDL總線連接時針對總線的部分信號位寬不同時的如何快速地實現(xiàn)總線連接。
    發(fā)表于 11-28 15:48 ?752次閱讀

    安規(guī)三項

    安規(guī)三項1.安規(guī)三項漏電流、接地電阻、絕緣阻抗有何種區(qū)別?2.接地電阻和絕緣阻抗是如何測試的3.電介質強度是不是和耐壓一個含義
    發(fā)表于 08-03 18:58

    關于SpinalHDL的驗證覆蓋率收集簡單說明

    SpinalHDL 1.4.2開始支持,在我們通過sbt構建項目時,build.sbt的依賴配置如下:開啟覆蓋率收集功能 有注意上文所給例子的小伙伴或許已經(jīng)注意到,我們已經(jīng)開啟了覆蓋率收集:
    發(fā)表于 06-24 15:56

    SpinalHDL關于casez的使用

    SpinalHDL的switch在之前的文章中曾提到過SpinalHDLswitch的使用:通常情況,switch對應著我們日常Ver
    發(fā)表于 07-06 10:59

    SpinalHDL的代碼組織結構如何實現(xiàn)Component參數(shù)化設計呢

    習慣了Verilog的小伙伴,初次看到SpinalHDL的代碼時,總會不自覺的和Verilog代碼對照,本篇就SpinalHDL的代碼組織結構進行一個簡要的梳理。Component<
    發(fā)表于 07-21 14:20

    請問SpinalHDL的Area到底是什么意思

    )及兼顧代碼盡可能復用的準則,SpinalHDL里設計了Area的概念。通過類擴展集成Area,可以有效的避免上述問題。介紹Area之前,先介紹一個概念:在Scala參數(shù)的傳遞均為引用類型,而我們定義
    發(fā)表于 07-22 14:22

    如何在SpinalHDL里啟動一個仿真

    。仿真環(huán)境配置仿真環(huán)境的配置主要包含仿真器的選擇,波形文件生成、覆蓋率生成等參數(shù)配置,每個參數(shù)配置SpinalHDL均封裝成一個函數(shù)。
    發(fā)表于 07-26 16:59

    三項閃聯(lián)國際標準文本明年2月公布

    三項閃聯(lián)國際標準文本明年2月公布 閃聯(lián)宣布將于明年2月公布三項國際標準文本,這些標準均已獲國際標準化組織和國際電工委員會(ISO/IEC)通過。   這三項
    發(fā)表于 12-29 10:28 ?680次閱讀

    iOS 14和tvOS 14系統(tǒng)更新,HomeKit迎來三項重要功能

    援引外媒9to5Mac報道,在即將到來的iOS 14和tvOS 14系統(tǒng)更新HomeKit有望獲得三項重要新功能。
    的頭像 發(fā)表于 03-11 15:09 ?3843次閱讀

    SpinalHDL的對應關系及聲明形式

    針對SpinalHDL的兩大類型Reg、Wire,來梳理下在SpinalHDL的對應關系及聲明形式。
    的頭像 發(fā)表于 07-03 11:02 ?1433次閱讀

    SpinalHDLBundle數(shù)據(jù)類型的轉換

    SpinalHDLBundle與SystemVerilog的packed struct很像,在某些場景,與普通數(shù)據(jù)類型之間的連接賦值可以通過asBits,assignFromBi
    的頭像 發(fā)表于 10-17 09:51 ?1203次閱讀

    針對電子設備基于MEMS顯示的三項預測

    針對電子設備基于MEMS顯示的三項預測
    發(fā)表于 11-02 08:15 ?0次下載
    針對電子設備<b class='flag-5'>中</b>基于MEMS顯示的<b class='flag-5'>三項</b>預測

    國際認證三項電池CTL決議最新動態(tài)

    近日,國際電工委員會IECEE通過其官網(wǎng)發(fā)布了三項電池CTL決議,包括兩臨時決議和一由原臨時決議轉化的正式?jīng)Q議。
    的頭像 發(fā)表于 08-29 18:09 ?853次閱讀
    國際認證<b class='flag-5'>三項</b>電池CTL決議最新動態(tài)

    不同型號的三項電容可以串聯(lián)嗎?

    近年來,隨著電子產品的普及和需求的增加,電容器的應用越來越廣泛。在電路設計,有時候需要將不同型號的三項電容串聯(lián)在一起使用。那么,不同型號的三項電容可以串聯(lián)嗎?
    的頭像 發(fā)表于 11-15 14:22 ?1484次閱讀
    不同型號的<b class='flag-5'>三項</b>電容可以串聯(lián)嗎?

    淺析SpinalHDLPipeline的復位定制

    之前有系列文章介紹了SpinalHDLPipeline的使用,最近在一個功能模塊真實的使用了這個lib。
    的頭像 發(fā)表于 03-17 17:31 ?863次閱讀
    淺析<b class='flag-5'>SpinalHDL</b><b class='flag-5'>中</b>Pipeline<b class='flag-5'>中</b>的復位定制