欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

數(shù)字硬件建模SystemVerilog之Interface和modport介紹

OpenFPGA ? 來(lái)源:OpenFPGA ? 2023-04-28 14:12 ? 次閱讀

概述

SystemVerilog Interface是modport的一種,但比簡(jiǎn)單的輸入、輸出或輸入輸出端口的功能更多。在其最簡(jiǎn)單的形式中,Interface端口將相關(guān)的信號(hào)捆綁在一起作為一個(gè)單一的復(fù)合端口。例如,構(gòu)成AMBA AXI總線的所有單個(gè)信號(hào)都可以被歸納為一個(gè)Interface端口。

一個(gè)Interface可以做的不僅僅是封裝總線信號(hào)。SystemVerilog Interface為設(shè)計(jì)者提供了一種集中總線功能的方法,而不是將功能分散在設(shè)計(jì)中的幾個(gè)模塊中。這就模擬了設(shè)計(jì)工程師在RTL層面的工作,并讓綜合工作在整個(gè)設(shè)計(jì)中適當(dāng)?shù)胤峙溟T級(jí)總線硬件。

當(dāng)遵循特定的建模準(zhǔn)則和限制時(shí),Interface是可以綜合的。Interface也可以用在不可綜合級(jí)別的建模,并作為驗(yàn)證測(cè)試平臺(tái)的一部分。先進(jìn)的驗(yàn)證方法,如UVM 、OVM和VMM,都使用Interface。

使用Interface作為modport

interface:定義interface模塊以關(guān)鍵字interface和endinterface結(jié)尾,內(nèi)部通過(guò)定義輸入輸出信號(hào)和對(duì)應(yīng)的logic信號(hào),注意,雙態(tài)信號(hào)不可以定義為logic。定義好了interface后,需要在top層將interface進(jìn)行例化。

modport:使用modport來(lái)對(duì)上述信號(hào)接口進(jìn)行一個(gè)分組和方向指定,這樣會(huì)使得接口更加條理清晰。在頂層top中例化test時(shí)參數(shù)還是接口(模塊內(nèi)部是modport)

一個(gè)模塊的端口可以被聲明為一個(gè)Interface類型,而不是傳統(tǒng)的輸入、輸出或inout端口。一個(gè)模塊可以有任意數(shù)量的interface,interface可以與其他端口以任意順序連接。本書中的例子將Interface端口列在前面,只是為了強(qiáng)調(diào)Interface端口的作用。

有兩種風(fēng)格的Interface端口聲明--通用和特定類型。這兩種風(fēng)格都是可以綜合的。

通用Interface端口

一個(gè)通用的Interface端口通過(guò)使用關(guān)鍵字interface來(lái)定義端口的類型。而不是使用一個(gè)特定的Interface類型的名稱。語(yǔ)法是:

module(Interface

當(dāng)module被實(shí)例化時(shí),任何類型的Interface都可以被連接到通用Interface端口。這就提供了靈活性,同一個(gè)模塊可以用多種方式使用,不同的Interface連接到模塊上。在下面的例子中,模塊bridge被定義為有兩個(gè)通用Interface端口。每個(gè)通用Interface端口可以有一個(gè)ahb_bus Interface實(shí)例或一個(gè)Interface端口。

8df9d784-e583-11ed-ab56-dac502259ad0.png

特定類型的Interface端口

一個(gè)modport可以被明確地聲明為一個(gè)特定類型的Interface。一個(gè)特定類型的接口端口是通過(guò)使用一個(gè)Interface的名稱作為端口類型來(lái)聲明的。語(yǔ)法是:

module()。

比如說(shuō):

8e05e8ee-e583-11ed-ab56-dac502259ad0.png

一個(gè)特定類型的Interface端口只能連接到同一類型的Interface實(shí)例上。在上面的例子中,高層網(wǎng)表可以實(shí)例化CACHE模塊并連接一個(gè)ahb_bus Interface的實(shí)例,但不能連接一個(gè)usb_bus Interface的實(shí)例。如果錯(cuò)誤的Interface實(shí)例類型被連接到特定類型的Interface端口,仿真器或綜合工具將發(fā)出一個(gè)闡述錯(cuò)誤。特定類型的Interface端口確保錯(cuò)誤的Interface不會(huì)被無(wú)意中連接到端口上。明確命名可以連接到端口的Interface類型,也使端口類型對(duì)其他需要審查或維護(hù)模塊的人更加明顯。有了特定類型的Interface端口,就更容易看清端口的確切使用方式。

最佳實(shí)踐指南10-2
為RTL模型使用特定類型的Interface端口。不要在設(shè)計(jì)模塊中使用通用的interface。

一個(gè)模塊的功能需要引用Interface內(nèi)的信號(hào)。對(duì)于特定類型的Interface,Interface內(nèi)的信號(hào)名稱在編寫模塊的時(shí)候就已經(jīng)知道了,可以毫無(wú)顧慮地引用。對(duì)于通用Interface端口,不能保證連接到模塊Interface端口的每個(gè)Interface實(shí)例都有相同的信號(hào)名稱。

Interface modports

Interface為簡(jiǎn)化模塊間的連接提供了一種實(shí)用而直接的方法。然而,連接到一個(gè)Interface的每個(gè)模塊可能需要看到Interface內(nèi)信號(hào)的獨(dú)特視圖。例如,在AHB總線上,hwdata信號(hào)是主模塊的輸出,而同樣的hwdata是同一總線上從屬模塊的輸入。

SystemVerilog Interface提供了一種方法來(lái)定義Interface信號(hào)的不同視圖,這樣每個(gè)模塊都能看到具有正確端口方向的Interface端口。這個(gè)定義是在Interface中使用modport關(guān)鍵字進(jìn)行的。Modport描述了Interface所代表的modport。一個(gè)Interface可以有任意數(shù)量的modport定義,每個(gè)定義都描述了一個(gè)或多個(gè)其他模塊如何看待Interface內(nèi)的信號(hào)。

一個(gè)modport定義了模塊在Interface中看到的信號(hào)的端口方向。modport的定義并不重復(fù)已經(jīng)在Interface信號(hào)聲明中定義的向量大小和類型信息。一個(gè)modport只定義連接模塊是否將一個(gè)信號(hào)視為輸入、輸出、inout端口。

下面的界面中顯示了兩個(gè)modport聲明的例子。

8e0ea24a-e583-11ed-ab56-dac502259ad0.png

指定使用哪種modport

SystemVerilog提供了兩種方法來(lái)指定一個(gè)模塊Interface端口應(yīng)該使用哪種modport。

作為模塊定義中Interface端口聲明的一部分

作為與模塊實(shí)例的接口連接的一部分

這兩種方式都是可以綜合的,但將modport作為modport定義的一部分來(lái)指定有一些優(yōu)勢(shì),這將在下面幾段中討論。

在模塊的interface聲明中選擇modport。要從一個(gè)Interface使用的特定調(diào)制端口可以直接指定為模塊內(nèi)Interface端口聲明的一部分。要連接到Interface的modport被指定為:

.

比如說(shuō)。

8e1877ac-e583-11ed-ab56-dac502259ad0.png

只有特定類型的Interface端口可以指定一個(gè)modport作為端口聲明的一部分。通用Interface端口不能指定一個(gè)modport。

在實(shí)例化和連接這個(gè)主模塊的上級(jí)模塊,Interface的一個(gè)實(shí)例被連接到modport,而不指定modport的名稱。例如:

8e1fbfda-e583-11ed-ab56-dac502259ad0.png

在module實(shí)例中選擇modport。另一種編碼方式是不在模塊定義中選擇modport,而是將modport的選擇推遲到模塊實(shí)例化時(shí)進(jìn)行。下面的例子聲明了第一個(gè)從屬模塊的端口作為simple_ahb Interface端口,但沒(méi)有指定使用哪個(gè)modport定義。

8e2cad44-e583-11ed-ab56-dac502259ad0.png

然后可以在模塊實(shí)例化時(shí)指定Interface的具體???,將一個(gè)Interface的實(shí)例連接到一個(gè)模塊實(shí)例。該連接被指定為:

.

比如說(shuō)。

8e368c24-e583-11ed-ab56-dac502259ad0.png

當(dāng)在模塊實(shí)例中指定要使用的modport時(shí),模塊定義可以使用特定類型的Interface端口或通用Interface端口類型。

注意事項(xiàng)
一個(gè)modport可以在模塊端口定義或模塊實(shí)例中選擇,但不能同時(shí)選擇。
最佳實(shí)踐指南10-3
選擇模塊使用的modport作為模塊的Interface端口聲明的一部分。不要在網(wǎng)表級(jí)別選擇modport。

將modport作為端口聲明的一部分來(lái)指定,還可以使模塊獨(dú)立于其他模塊進(jìn)行綜合。它還有助于使模塊更加自我記錄。閱讀或維護(hù)該模塊的工程師可以立即看到哪一個(gè)modport將被用于該模塊。

在不指定modport的情況下連接到Interface。模塊Interface端口可以連接到一個(gè)Interface實(shí)例,而不需要指定具體的modport定義。當(dāng)沒(méi)有指定modport時(shí),Interface中的所有wire都被假定為有一個(gè)雙向的inout方向。在仿真中,Interface中的變量被假定為ref類型。(ref端口允許端口的兩邊都可以讀取和修改變量。ref端口是不可綜合的,在本書中沒(méi)有討論)。綜合編譯器將沒(méi)有指定modport的Interface端口中的所有信號(hào)視為inout雙向端口。

使用modports來(lái)定義不同的連接集

在一個(gè)由幾個(gè)不同模塊使用的比較復(fù)雜的Interface中,可能不是每個(gè)模塊都需要看到Interface中的同一組信號(hào)。Modports使得為每個(gè)使用該Interface的模塊創(chuàng)建一個(gè)自定義的Interface視圖成為可能。

一個(gè)模塊只能訪問(wèn)其modport定義中列出的信號(hào)。這使得Interface中的一些信號(hào)有可能被完全隱藏,不被某些模塊看到。例如,Interface可能包含一些信號(hào),只有通過(guò)master_portsmodport連接到Interface的模塊才能使用,而通過(guò)s1ave_ports modport連接的模塊不能使用。

完整的AMBA AHB總線有19個(gè)信號(hào),其中有幾個(gè)信號(hào)只由總線主機(jī)使用,而不是由總線從機(jī)使用。

下面的例子說(shuō)明了一個(gè)自定義版本的simple_ahb Interface,增加了3個(gè)額外的AMBAAHB信號(hào)-hprot,hburst和htrans,只被主模塊使用。master_ports和slave_ports的modport聲明確保主模塊和從模塊看到各自模塊的正確信號(hào)集。

例10-5: 用modports的Interface來(lái)定制Interface信號(hào)的視圖

///////////////////////////////////////////////////////////
//SimpleAMBAAHBInterface
///////////////////////////////////////////////////////////
//`begin_keywords"1800-2012"
interfacesimple_ahb(
inputlogichclk,//bustransferclk
inputlogichresetN//busreset,activelow
);
logic[31:0]haddr;//transferstartaddress
logic[31:0]hwdata;//datasenttoslave
logic[31:0]hrdata;//returndatafromslave
logic[2:0]hsize;//transfersize
logichwrite;//1forwrite,0forread
logichready;//1fortransferfinished
//additionalAHBsignalsonlyusedbybusmaster
logic[3:0]hprot;//tranferprotectionmode
logic[2:0]hburst;//transferburstmode
logic[1:0]htrans;//transfertype

//mastermoduleportdirections
modportmaster_ports(
outputhaddr,hwdata,hsize,hwrite,//toAHBslave
inputhrdata,hready,//fromAHBslave
inputhclk,hresetN,//fromchiplevel
//additionalAHBsignalsonlyusedbybusmaster
outputhprot,hburst,htrans
);

//slavemoduleportdirections
modportslave_ports(
outputhrdata,hready,//toAHBmaster
inputhaddr,hwdata,hsize,hwrite,//fromAHBmaster
inputhclk,hresetN//fromchiplevel
);
endinterface:simple_ahb
//`end_keywords

使用 simple_ahb .master_ports modport 的模塊可以使用 hprot, hburst和htrans信號(hào)。一個(gè)使用simple_ahb.slave_ports modport的模塊不能訪問(wèn)這3個(gè)信號(hào)。因?yàn)檫@些信號(hào)沒(méi)有在slave_ports modport中列出,就好像這些信號(hào)根本不存在一樣。

也有可能在一個(gè)Interface內(nèi)有內(nèi)部信號(hào),這些信號(hào)通過(guò)任何modport都不可見(jiàn)。這些內(nèi)部信號(hào)可能被lint檢查器或Interface中的其他功能所使用。





審核編輯:劉清

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

    關(guān)注

    14

    文章

    1019

    瀏覽量

    83963
  • AHB總線
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    9554
  • Verilog設(shè)計(jì)
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    6551
  • cache技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    41

    瀏覽量

    1096

原文標(biāo)題:數(shù)字硬件建模SystemVerilog-通信總線建模 --Interface和modport

文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    [啟芯公開(kāi)課] SystemVerilog for Verification

    設(shè)計(jì)驗(yàn)證相關(guān)的公開(kāi)課!SystemVerilog作為IEEE-1800,將VLSI設(shè)計(jì)、驗(yàn)證和斷言屬性集中在一起,是數(shù)字超大規(guī)模集成電路設(shè)計(jì)和驗(yàn)證領(lǐng)域最流行的語(yǔ)言。從2006年至今
    發(fā)表于 06-10 09:25

    如何在SystemVerilog中為狀態(tài)機(jī)的命令序列的生成建模

     我們將展示如何在SystemVerilog中為狀態(tài)機(jī)的命令序列的生成建模,并且我們將看到它是如何實(shí)現(xiàn)更高效的建模,以及實(shí)現(xiàn)更好的測(cè)試生成。?
    發(fā)表于 01-01 06:05

    使用SystemVerilog來(lái)簡(jiǎn)化FPGA中接口的連接方式

    電路結(jié)構(gòu),我將flatten_hierarchy選為了none)    下面我們把程序稍作改動(dòng),將a/b/c三個(gè)接口使用SystemVerilog中的interface來(lái)連接?! ??在工程中添加
    發(fā)表于 01-08 17:23

    數(shù)字硬件建模SystemVerilog-歸約運(yùn)算符

    介紹歸約運(yùn)算符對(duì)單個(gè)操作數(shù)的所有位執(zhí)行運(yùn)算,并返回標(biāo)量(1位)結(jié)果。表5-9列出了歸約運(yùn)算符。表5-9:RTL建模的歸約運(yùn)算符歸約運(yùn)算符包括一個(gè)NAND和一個(gè)NOR運(yùn)算符,這是按位運(yùn)算符所沒(méi)有
    發(fā)表于 10-20 15:03

    SystemVerilog語(yǔ)言介紹匯總

    作者:limanjihe ?https://blog.csdn.net/limanjihe/article/details/83005713 SystemVerilog是一種硬件描述和驗(yàn)證語(yǔ)言
    的頭像 發(fā)表于 10-11 10:35 ?2455次閱讀

    SystemVerilog對(duì)硬件功能如何進(jìn)行建模

    本文定義了通常用于描述使用SystemVerilog對(duì)硬件功能進(jìn)行建模的詳細(xì)級(jí)別的術(shù)語(yǔ)。
    的頭像 發(fā)表于 03-30 11:42 ?1800次閱讀

    數(shù)字硬件建模SystemVerilog-網(wǎng)絡(luò)

    每個(gè)SystemVerilog網(wǎng)絡(luò)類型都有特定的語(yǔ)義規(guī)則,這些規(guī)則會(huì)影響多個(gè)驅(qū)動(dòng)程序的解析方式。雖然所有網(wǎng)絡(luò)類型都表示硅行為,但并非所有網(wǎng)絡(luò)類型都可以用標(biāo)準(zhǔn)ASIC和FPGA技術(shù)表示。表3-3列出了ASIC和FPGA綜合編譯器支持的網(wǎng)絡(luò)類型。
    的頭像 發(fā)表于 05-09 09:26 ?2075次閱讀

    數(shù)字硬件建模SystemVerilog-結(jié)構(gòu)體

    默認(rèn)情況下,結(jié)構(gòu)體會(huì)被非壓縮的。這意味著結(jié)構(gòu)體的成員被視為獨(dú)立變量或常量,并以一個(gè)共同的名稱分組在一起。SystemVerilog沒(méi)有指定軟件工具應(yīng)該如何存儲(chǔ)非壓縮結(jié)構(gòu)體的成員。不同的軟件工具具對(duì)于結(jié)構(gòu)體的存儲(chǔ)分布也是不同的。
    的頭像 發(fā)表于 06-30 09:54 ?1502次閱讀

    使用Verilog/SystemVerilog硬件描述語(yǔ)言練習(xí)數(shù)字硬件設(shè)計(jì)

    HDLBits 是一組小型電路設(shè)計(jì)習(xí)題集,使用 Verilog/SystemVerilog 硬件描述語(yǔ)言 (HDL) 練習(xí)數(shù)字硬件設(shè)計(jì)~
    的頭像 發(fā)表于 08-31 09:06 ?1783次閱讀

    FPGA學(xué)習(xí)-SystemVerilog語(yǔ)言簡(jiǎn)介

    SystemVerilog是一種硬件描述和驗(yàn)證語(yǔ)言(HDVL),它基于IEEE1364-2001 Verilog硬件描述語(yǔ)言(HDL),并對(duì)其進(jìn)行了擴(kuò)展,包括擴(kuò)充了 C語(yǔ)言 數(shù)據(jù)類型、結(jié)構(gòu)、壓縮和非
    的頭像 發(fā)表于 12-08 10:35 ?2258次閱讀

    RTL和門級(jí)建模

    SystemVerilog能夠在許多不同的細(xì)節(jié)級(jí)別(稱為“抽象級(jí)別”)對(duì)數(shù)字邏輯進(jìn)行建模。抽象意味著缺乏細(xì)節(jié)。數(shù)字模型越抽象,它所代表的硬件
    的頭像 發(fā)表于 02-09 14:20 ?1153次閱讀
    RTL和門級(jí)<b class='flag-5'>建模</b>

    Interface端口的概念介紹

    SystemVerilog Interfacemodport的一種,但比簡(jiǎn)單的輸入、輸出或輸入輸出端口的功能更多。
    的頭像 發(fā)表于 04-19 14:48 ?1979次閱讀

    數(shù)字硬件建模SystemVerilogInterface方法概述

    SystemVerilog Interfacemodport的一種,但比簡(jiǎn)單的輸入、輸出或輸入輸出端口的功能更多。
    的頭像 發(fā)表于 04-28 14:10 ?2900次閱讀
    <b class='flag-5'>數(shù)字</b><b class='flag-5'>硬件</b><b class='flag-5'>建模</b><b class='flag-5'>SystemVerilog</b><b class='flag-5'>之</b><b class='flag-5'>Interface</b>方法概述

    SystemVerilog的覆蓋率建模方式

    為了確保驗(yàn)證的完備性,我們需要量化驗(yàn)證目標(biāo)。SystemVerilog提供了一套豐富的覆蓋率建模方式。
    的頭像 發(fā)表于 06-25 10:44 ?1254次閱讀

    SystemVerilog硬件設(shè)計(jì)部分有哪些優(yōu)勢(shì)

    Language,硬件描述語(yǔ)言),而SystemVerilog則是HDVL(Hardware Design and Verification Language,硬件設(shè)計(jì)與驗(yàn)證語(yǔ)言)。由此可見(jiàn),
    的頭像 發(fā)表于 10-19 11:19 ?1390次閱讀
    <b class='flag-5'>SystemVerilog</b>在<b class='flag-5'>硬件</b>設(shè)計(jì)部分有哪些優(yōu)勢(shì)