色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

從可綜合的RTL代碼的角度聊聊interface

FPGA技術驛站 ? 來源:FPGA技術驛站 ? 2023-10-12 09:06 ? 次閱讀

SystemVerilog引入了interface,這里我們從可綜合的RTL代碼的角度聊聊interface。

什么是interface?

Interface是將一系列信號封裝為一個模塊,這里的“一系列信號”通常是彼此相關的,比如AXI接口協議之一的AXI4-Stream的TLAST/TVALID/TREADY/TDATA,這個“模塊”稱為接口模塊。接口模塊可以被實例化作為其他module的端口,從而簡化了module之間以及module與TB(testbench)之間的連線操作。

使用interface的好處

使用interface的好處也是顯而易見的。我們來看個例子。如下圖所示,待測模塊和測試平臺之間的連線包含5個信號,采用此方法就要在DUT module內定義5個端口,在TB內定義對應的5個信號。

c7524efc-6892-11ee-939d-92fbcf53809c.png

如果采用interface就會形成下圖所示的連接方式。這樣無論是DUT還是TB只需要在自身模塊內實例化這個interface即可。

c764393c-6892-11ee-939d-92fbcf53809c.png

可見,使用interface會帶來這樣幾個好處:

(1)module之間的連線由輸入/輸出列表替換為interface,不易出錯

(2)如果需要更新module的輸入/輸出端口,只用在interface里進行一次更新,而不必在相關module的端口處進行多次更新

其他好處跟UVM相關,這里先不做闡述。

接口的定義

我們從可綜合RTL代碼的角度看個例子,如下圖所示的兩個模塊,一個是控制模塊,一個是存儲模塊,控制模塊生成相應的控制信號給存儲模塊。

c7786538-6892-11ee-939d-92fbcf53809c.png

我們使用interface定義這組信號,如下圖所示代碼。從這段代碼可以看到,接口模塊以interface作為關鍵字開始,以endinterface結束(像不像module,endmodule)。Interface可以參數化,如代碼的4行所示,可以有輸入/輸出或雙向端口如代碼第7行所示。代碼第10行和第11行定義了寫方向的控制信號,第13行和14行定義了讀方向的控制信號。第16行modport(端口模塊)用來定義信號方向。對存儲模塊而言,這些信號都是輸入信號,對控制模塊而言,除時鐘外其他信號均為輸出信號。

因為只是定義信號的方向,所以只用列出信號名稱而無需指定信號的位寬。同時,同方向的信號可列在同一行,如代碼第17行所示。如果信號方向聲明的結尾也是modport的結尾,那么該結尾沒有任何額外標點符號,如代碼第22行的結尾,如果信號方向聲明的結尾不是modeport的結尾,那么結尾就用逗號,如代碼第21行。注意代碼第10行至第14行定義的信號類型為logic,相比于Verilog里的reg,logic更靈活,不僅可以用在always進程中,也能用于assign賦值語句中(Verilog需要用wire)。

c7843e58-6892-11ee-939d-92fbcf53809c.png

在存儲模塊中,可直接在端口列表內實例化該接口模塊,如下圖所示代碼片段第9行,實例化方式和模塊的實例化方式一樣,需要注意的是這里不能指定interface內的parameter,其余輸入/輸出端口不在接口模塊內的可單獨聲明,如代碼第10行和第11行所示。

c79d407e-6892-11ee-939d-92fbcf53809c.png

在模塊內部使用interface內聲明的接口,需要采用如下圖所示代碼片段的方式,如代碼第23行,通過i0_mem_ports.wen使用寫使能信號。因為代碼內部可能會反復使用interface內的信號,所以interface的名字盡量短一些。

c7b28e70-6892-11ee-939d-92fbcf53809c.png

同樣地,在控制模塊內可直接實例化上述定義的interface,如下圖所示代碼片段。

c7c1386c-6892-11ee-939d-92fbcf53809c.png

在設計的頂層,需要依次實例化接口、存儲模塊和控制模塊。此時,就需要對接口的parameter進行設定,如下圖所示代碼片段的第15行所示。

傳統的輸入/輸出列表方式存在這樣幾個不足之處:

(1)需要在相關模塊中反復聲明輸入/輸出信號

(2)存在不同模塊端口不匹配的風險

(3)設計規格的更改會導致需要在相關多個模塊中進行輸入/輸出信號的更新

這種重復性的更新不僅涉及到很多行代碼,還會存在信號名稱寫錯或者信號位寬寫錯的風險。

注意:module端口聲明若采用input/output/inout這種形式,實例化時這些端口是可以懸空的,但如果采用interface,實例化的interface是不允許處于未連接的狀態。

c7ddf65a-6892-11ee-939d-92fbcf53809c.png

Vivado對interface是支持的。將上述4個文件直接添加到Vivado中,如下圖所示。在Hierarchy窗口中,可以看到top下面只有控制模塊和存儲模塊,而沒有接口模塊,因為接口并不是一個module。在Libraries下則可以看到接口模塊。在Compile Order窗口下,可以看到工具會先編譯接口模塊,再編譯其他模塊。

c7fbc388-6892-11ee-939d-92fbcf53809c.png

Vivado下打開Elaborated Design,可以看到interface信息,如下圖中的高亮部分,工具以“接口名.信號名”的方式顯示net的名字。

c818fa2a-6892-11ee-939d-92fbcf53809c.png

綜上所示,SystemVerilog提供的interface支持參數化,支持信號分組(modport),在可綜合的RTL代碼中,可使用interface簡化輸入/輸出列表的描述。






審核編輯:劉清

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

    關注

    1

    文章

    388

    瀏覽量

    60608
  • UVM
    UVM
    +關注

    關注

    0

    文章

    182

    瀏覽量

    19413
  • Interface
    +關注

    關注

    0

    文章

    103

    瀏覽量

    38961
  • Module
    +關注

    關注

    0

    文章

    72

    瀏覽量

    13157
  • DUT
    DUT
    +關注

    關注

    0

    文章

    190

    瀏覽量

    12816

原文標題:說說SystemVerilog的Interface

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

收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    如何在不改變RTL代碼的情況下,優化FPGA HLS設計

    用軟件 C 轉化來的 RTL 代碼其實并不好理解。今天我們就來談談,如何在不改變 RTL 代碼的情況下,提升設計性能。 本項目所需應用與工
    的頭像 發表于 12-20 11:46 ?2006次閱讀
    如何在不改變<b class='flag-5'>RTL</b><b class='flag-5'>代碼</b>的情況下,優化FPGA HLS設計

    RTL級設計的基本要素和步驟是什么

      綜合(Logic Synthesize)是指將HDL語言、原理圖等設計輸入翻譯成由與、或、非門等基本邏輯單元組成的門級連接(網表),并根據設計目標與要求(約束條件)優化所生成的邏輯連接,輸出門級網表文件。RTL綜合指將
    的頭像 發表于 01-17 16:57 ?1.1w次閱讀
    <b class='flag-5'>RTL</b>級設計的基本要素和步驟是什么

    RTL代碼和仿真代碼的區別

    RTL代碼和仿真代碼的區別,哪些verilog語句是綜合的??哪些不能??
    發表于 07-21 13:08

    為什么quartus綜合沒有報錯而modelsim rtl仿真就報錯了

    為什么quartus綜合沒有報錯而modelsim rtl仿真就報錯了
    發表于 09-24 11:02

    如何理解Xilinx的RTL

    各位大神,我的通用移位寄存器HDL代碼如上,我用的Xilinx ISE開發環境,我想問綜合后的RTL圖要如何理解,上述HDL代碼RTL圖如
    發表于 08-14 14:30

    來自vivado hls的RTL可以由Design Compiler進行綜合嗎?

    您好我有一個關于vivado hls的問題。RTL是否來自xivix FPGA的vivado hls onyl?我們可以在Design Compiler上使用它進行綜合嗎?謝謝
    發表于 04-13 09:12

    架構的角度看如何寫好代碼 + 我的思考

    架構漫談(八):架構的角度看如何寫好代碼 + 我的思考
    發表于 06-18 06:16

    如何保證RTL設計與綜合后網表的一致性

    如何保證RTL設計與綜合后網表的一致性文章簡介:在超大規模數字集成電路的設計中,我們使用邏輯綜合工具來完成RTL設計到門級網表的轉化。我們
    發表于 01-23 23:10 ?19次下載

    RTL8201/RTL8201BL pdf datashee

    The RTL8201/RTL8201BL is a single-port Phyceiver with an MII (Media Independent Interface)/SNI
    發表于 03-04 16:42 ?121次下載

    設計復用的RTL指導原則

    設計復用的基本要求是RTL 代碼移植。通常的軟件工程指導原則在RTL 編碼時也適用。類似軟件開發,基本的編碼指導原則要求
    發表于 12-24 00:46 ?32次下載

    如何設計綜合的Verilog代碼和應該遵循什么原則

    在接觸Verilog 語法參考手冊的時候,我們發現其提供了一組非常豐富的功能來描述硬件。所以大家往往會疑惑那些Verilog語句是綜合的,那些是只能用于寫Testbench的,其實,參考手冊中只有
    發表于 04-20 10:59 ?4894次閱讀

    如何在C代碼中插入寄存器?

    對于邏輯級數較高的路徑,常用的方法之一是在其中插入流水寄存器,將路徑打斷,從而降低邏輯延遲,這在HDL代碼中實現起來比較容易。此外,RTL代碼風格
    的頭像 發表于 02-02 17:07 ?3333次閱讀
    如何在C<b class='flag-5'>代碼</b>中插入寄存器?

    【開源硬件】PyTorch到RTL - 基于MLIR的高層次綜合技術

    01 演講題目 ? 開源硬件系列02期: PyTorch到RTL - 基于MLIR的高層次綜合技術 02 演講時間 ? 2022年11月27日 上午?10:00 03 內容簡介 ? 為了解
    的頭像 發表于 11-24 08:15 ?2232次閱讀

    邏輯綜合與物理綜合

    利用工具將RTL代碼轉化為門級網表的過程稱為邏輯綜合綜合一個設計的過程,讀取RTL
    的頭像 發表于 11-28 16:02 ?3120次閱讀

    RTL追蹤到Scala

      在三天前SpinalHDL1.8.0正式上線,在這次更新中增加了Scala代碼和生成的RTL代碼之間的對照功能,也就是說我們可以在生成的RTL
    的頭像 發表于 12-09 10:32 ?1442次閱讀
    主站蜘蛛池模板: 18和谐综合色区 | 国产69精品久久久久无码麻豆 | 樱花草动漫www | 國産麻豆AVMDMD0179 | 精品国产福利在线视频 | 99久久香蕉国产线看观看 | 无码一卡二卡三卡四卡 | 学生妹被爆插到高潮无遮挡 | 亚洲午夜久久久久中文字幕 | 毛片网站网址 | 伧理片午夜伧理片 | 中文字幕在线免费视频 | 精精国产www视频在线观看免费 | 空姐被黑人 苏晓曼 | 欧美18精品久久久无码午夜福利 | 欧美日韩视频一区二区三区 | 久久成人国产精品一区二区 | 欧美一区二区日韩一区二区 | 久久一级视频 | 99视频精品在线 | 91国偷自产一区二区三区 | 亚洲精品理论电影在线观看 | 亚洲AV 中文字幕 国产 欧美 | 国语对白嫖老妇胖老太 | 打扑克床上视频不用下载免费观看 | 日韩精品人成在线播放 | 暖暖视频大全免费观看 | 韩国电影real在线观看完整版 | 一二三四高清中文版视频 | a级毛片高清免费视频 | 手机在线成人精品视频网 | 亚洲成A人片在线观看中文L | 偷拍亚洲制服另类无码专区 | 亚洲色偷偷偷网站色偷一区人人藻 | 久草在线一免费新视频 | 亚洲AV无码一区二区三区牛牛 | 麻豆国产人妻欲求不满 | 年轻的朋友4在线看中文字幕 | 日本无吗高清 | 国模精品一区二区三区视频 | 蜜芽最新域名解析网站 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品