18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

混合編程中的模塊命名與管理

FPGA之家 ? 來源:Spinal FPGA ? 作者:玉騏 ? 2022-12-13 17:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

最近在項目中以SpinalHDL為主體做系統(tǒng)集成,其中遇到了不少模塊命名與管理的坑,借此機(jī)會,再來聊一聊混合編程中的模塊件命名與管理的事情。

問題是什么

不可否認(rèn),在當(dāng)前的整體大環(huán)境下,Verilog/SystemVerilog仍然是主流,而SpinalHDL其本質(zhì)上更像是一個生成Verilog的腳本工具。在團(tuán)隊合作中,最終拿去生成跑綜合及布局布線生網(wǎng)表的仍然是Verilog代碼。團(tuán)隊合作時當(dāng)同時存在SpianlHDL代碼和Verilog代碼時不可避免的存在命名沖突的問題:

盡管SpinalHDL支持參數(shù)化設(shè)計,但其參數(shù)化是基于Scala層面上的,當(dāng)我們調(diào)用SpinalHDL同一個IP以不同的參數(shù)例化時往往會為每次例化均生成一個Verilog模塊代碼。而當(dāng)合作中存在多人調(diào)用組件生成RTL代碼時最后往往會有模塊命名撞車的問題。

在《被忽略的兩個Tips》及《換個名字混江湖》中對于模塊的命名均有提到一些方法,這里就真實的使用場景來看看這個問題。

setDefinitionName

在《換個名字混江湖》中對setDefinitionName的使用有較為詳細(xì)的介紹,setDefinitionName可以手動的修改最終生成的Verilog代碼對應(yīng)的模塊名,像下面的這段代碼:

e62eaad8-7878-11ed-8abf-dac502259ad0.png

這里在例化Apb3Decoder這個SpinalHDL中的IP組件時,通過setDefinitionName來設(shè)置生成RTL代碼時該模塊名重新命名為Deocer。最終生成的代碼便是下面這樣:

e6bb984e-7878-11ed-8abf-dac502259ad0.png

倘若不添加setDefinitionName指定那么生成的RTL代碼則保持原來的名字:

e6d79d8c-7878-11ed-8abf-dac502259ad0.png

通過setDefinitionName可以手動的為我們的模塊指定特定的名稱,但如此做帶來的問題是我們需要要求每個人在例化每個模塊時均指定名稱。稍有不慎漏掉一個那么在最后合并整體工程時便會有重復(fù)命名的問題。更值得把握的是當(dāng)我們調(diào)用的其他lib有多層嵌套例化時那么這種方式便顯得更為復(fù)雜了。

globalPrefix

通過globalPrefix的方式可以使得在生成RTL代碼時為每個模塊添加一個特定的前綴。像下面的代碼:

e6fc5a14-7878-11ed-8abf-dac502259ad0.png

指定每個模塊的命名前面均添加“test_”,可以看到最終生成的RTL代碼的每個模塊前均添加有"test_"前綴:

e7228946-7878-11ed-8abf-dac502259ad0.png

e735caec-7878-11ed-8abf-dac502259ad0.png

多人合作時根據(jù)每個人負(fù)責(zé)的功能模塊分別添加響應(yīng)的模塊命名前綴似乎是一個很的方式,然而是否通用? 看下面的例子:

e763e6f2-7878-11ed-8abf-dac502259ad0.png

這里我們在SpinalHDL中調(diào)用了封裝好的RTL代碼addTop,如果我們在例化時指定globalPrefix為“test_”,那么看看會是什么樣子:

e78193b4-7878-11ed-8abf-dac502259ad0.png

問題來了,我例化的BlackBox代碼模塊名稱為addTop,而這里例化的時候卻例化了test_addTop——一個壓根沒有的模塊。

也就意味著當(dāng)代碼里存在Verilog和SpinalHDL代碼混合使用時那么這種globalPrefix方式便顯得太“一刀切”了。

怎么做

解決不了上面的問題那么無論SpinalHDL再怎么優(yōu)秀那終究是雞肋~

怎么做?合二為一唄!

看下面的代碼:

e7a5964c-7878-11ed-8abf-dac502259ad0.png

而最終生成的RTL代碼為:

e7d9942e-7878-11ed-8abf-dac502259ad0.png

是不是看起來解決了我們的問題? setDefinitionName的優(yōu)先級是高于globalPrefix的,我們在例化BlackBox時通過setDefinitionName指定模塊的名字來避免在添加globalPrefix時帶來的問題便可。

小小建議

在當(dāng)前的環(huán)境下,團(tuán)隊合作時若你采用SpinalHDL作為編程語言不妨采用下面的方式來進(jìn)行混合編程下的模塊命名與管理:

1、若只負(fù)責(zé)單個模塊的開發(fā),那么在生成rtl代碼時根據(jù)模塊的功能通過globalPrefix添加適當(dāng)?shù)那熬Y。

2、若在SpinalHDL中例化封裝Verilog代碼時,在例化時通過setDefinitionName指定例化時的模塊名稱確保生成RTL代碼時不會被修改掉。

審核編輯:湯梓紅

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

    關(guān)注

    7

    文章

    2815

    瀏覽量

    52430
  • Verilog
    +關(guān)注

    關(guān)注

    30

    文章

    1368

    瀏覽量

    113711
  • 混合編程
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    8427

原文標(biāo)題:混合編程中的模塊命名與管理

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    VC與MATLAB混合編程在語音及圖像處理的應(yīng)用

    VC與MATLAB混合編程在語音及圖像處理的應(yīng)用 [hide][/hide]
    發(fā)表于 11-25 09:28

    基于labview與matlab的混合編程

    求大神解答怎樣編寫一個VI控制matlab仿真小車前后行走 。。。。。。。。通過SIT混合編程
    發(fā)表于 03-06 14:42

    labview與matlab混合編程

    labview與matlab混合編程
    發(fā)表于 05-13 17:03

    LABVIEW 與 MATLAB混合編程

    誰有用Xactive方法實現(xiàn)LABVIEW 與 MATLAB混合編程具體實例,包含詳細(xì)步驟的!急求?。?!
    發(fā)表于 03-29 22:22

    LabVIEW與Matlab混合編程

    `針對LabVIEW與Matlab混合編程得文件,謝謝大家可以關(guān)注我的微信公眾號,獲取更多技術(shù)相關(guān)得文章`
    發(fā)表于 12-10 16:12

    Matlab與VC混合編程

    Matlab與VC混合編程
    發(fā)表于 04-03 16:14

    ADSP-TS101S混合編程的接口規(guī)范和標(biāo)準(zhǔn),有什么應(yīng)用?

    混合編程的接口規(guī)范和標(biāo)準(zhǔn)混合編程的調(diào)用和中斷混合編程在系統(tǒng)程序管理的應(yīng)用
    發(fā)表于 04-25 09:33

    關(guān)于混合編程的基本知識都在這里

    C語言和匯編語言的混合編程混合編程的方法有哪些?混合編程的實例有哪些?混合編程的注意事項有哪些?
    發(fā)表于 04-25 08:56

    基于flash MX和authorware的混合編程軟件小助

    提出了基于flash MX 和authorware 的混合編程方法,給出了混合編程的關(guān)鍵――變量傳遞的方法,并給出相應(yīng)范例。關(guān)鍵詞:多媒體 軟件 變量 程序隨著多媒體技術(shù)和網(wǎng)絡(luò)技術(shù)的出
    發(fā)表于 08-31 11:04 ?13次下載

    Matlab與C混合編程匯總

    接受matlab與C,C++等混合編程的方法案例
    發(fā)表于 01-14 16:09 ?0次下載

    DSP集成開發(fā)環(huán)境混合編程及FFT算法的實現(xiàn)

    DSP集成開發(fā)環(huán)境混合編程及FFT算法的實現(xiàn)
    發(fā)表于 12-17 21:16 ?16次下載

    C_與Matlab混合編程在BEAM繪制的應(yīng)用_范嬋嬌

    C_與Matlab混合編程在BEAM繪制的應(yīng)用_范嬋嬌
    發(fā)表于 03-19 11:26 ?0次下載

    Qt與Matlab混合編程

    Qt與Matlab混合編程
    發(fā)表于 03-27 08:48 ?0次下載

    混合編程面臨著哪些性能挑戰(zhàn)

    討論混合編程面臨的性能挑戰(zhàn)和幫助開發(fā)人員克服內(nèi)存挑戰(zhàn)的工具。
    的頭像 發(fā)表于 11-13 06:29 ?3174次閱讀

    matlab vsFortran混合編程工具

    matlab vsFortran混合編程工具
    發(fā)表于 06-30 14:51 ?0次下載