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

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

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

Interface接口的優(yōu)勢(shì)和使用示例

FPGA之家 ? 來源:FPGA之家 ? 2023-09-01 15:38 ? 次閱讀

什么引入interface?

將設(shè)計(jì)和驗(yàn)證從邏輯上和時(shí)間上分開,使得兩個(gè)小組可以相對(duì)獨(dú)立;

IC 設(shè)計(jì)的復(fù)雜度逐漸增加,模塊之間的連接也逐漸復(fù)雜,傳統(tǒng)的 Verilog信號(hào)連接方式代碼量太大,容易出錯(cuò),且不易于復(fù)用。

Interface的優(yōu)勢(shì)

簡(jiǎn)潔:

1、使用 Interface 在驗(yàn)證中添加、刪除和修改信號(hào)時(shí)只需要修改 Interface 和使用該 Interface 的模塊,怎么理解?

c20d68dc-447f-11ee-a2ef-92fbcf53809c.png

如圖所示:頂層模塊top例化了模塊m1和m2,a信號(hào)從m2經(jīng)過頂層模塊到m1。假設(shè)現(xiàn)需將信號(hào)a修改為b,不使用接口的情況下,m1、m2及top模塊都應(yīng)該做出相應(yīng)的修改;若使用接口,top例化的是接口,接口內(nèi)的信號(hào)修改只需要修改m1、m2相關(guān)部分即可。

2、兩個(gè)塊之間有兩個(gè)以上的信號(hào)連接,并且使用特定的協(xié)議時(shí),使用接口更利于復(fù)用。

硬件域的橋梁:

Interface 是硬件域( module、設(shè)計(jì)中使用)和軟件域( class、驗(yàn)證環(huán)境中使用)交互的唯一方式。

定義要點(diǎn)

Interface 的定義與 Module 類似,可以參考 Module 的定義方法;由于接口直接與DUT打交道,因此變量建議聲明為四值邏輯logic;同時(shí)為了防止驗(yàn)證環(huán)境帶來的競(jìng)爭(zhēng)問題,驅(qū)動(dòng)硬件的信號(hào)應(yīng)使用非阻塞賦值;Interface端口列表中只需要定義時(shí)鐘、復(fù)位等公共信號(hào),或者不定義任何端口信號(hào)。

使用示例

首先定義interface,然后在頂層例化后作為module的端口列表分別傳入DUT和TB中。

c22fc8a0-447f-11ee-a2ef-92fbcf53809c.jpg

接口中的modport

前一個(gè)例子中使用了點(diǎn)對(duì)點(diǎn)無(wú)信號(hào)方向的連接方式。在使用該端口的原始網(wǎng)單里包含了方向信息,編譯器依次來檢查連線錯(cuò)誤。也可以通過modport來進(jìn)一步限定信號(hào)傳輸?shù)姆较?,避免端口連接的錯(cuò)誤。

c24a4158-447f-11ee-a2ef-92fbcf53809c.png

需要注意的是modport中的input和output方向是調(diào)用該modport模塊的輸入輸出方向,比如TEST的modport內(nèi)聲明的方向,就是調(diào)用它的test模塊輸入輸出。

事實(shí)上modport在驗(yàn)證環(huán)境中使用并不多,因?yàn)橄挛奶岬降牟坏玞locking塊包含了modport的方向信息,同時(shí)clocking塊也可作為同步信號(hào)的驅(qū)動(dòng)。

接口中的clocking塊

clocking 塊,用來對(duì)同步信號(hào)進(jìn)行采樣和驅(qū)動(dòng),可以避免設(shè)計(jì)和驗(yàn)證的競(jìng)爭(zhēng)。clocking block需要指定一個(gè)觸發(fā)時(shí)鐘,比如posedge clk、negedge clk。

c2704236-447f-11ee-a2ef-92fbcf53809c.png

同若驗(yàn)證環(huán)境中需要同步驅(qū)動(dòng),利用“arb_if.cb.*”的方式利用clocking塊中的信號(hào)進(jìn)行驅(qū)動(dòng)即可。

同時(shí)可以為clocking塊中信號(hào)設(shè)置建立和保持時(shí)間,若未設(shè)置建立時(shí)間或保持時(shí)間時(shí)則會(huì)默認(rèn)在clocking事件前1step輸入采樣,在事件后#0對(duì)輸出驅(qū)動(dòng)。

c288a704-447f-11ee-a2ef-92fbcf53809c.png

標(biāo)注的語(yǔ)句表示在時(shí)鐘上升沿前10ns進(jìn)行采樣,在時(shí)鐘上升沿2ns后進(jìn)行驅(qū)動(dòng)。怎么理解?事實(shí)上這個(gè)步驟主要是為了模擬實(shí)際的硬件行為,感興趣的可以自己畫幾級(jí)觸發(fā)器來分析,TB對(duì)DUT的驅(qū)動(dòng)一側(cè)相當(dāng)于DUT的上一級(jí)觸發(fā)器,采樣DUT數(shù)據(jù)一側(cè)的TB相當(dāng)于DUT的下一級(jí)寄存器。

幾點(diǎn)注意:clocking不是interface獨(dú)有的,module、program也可以聲明clocking模塊;clocking中列舉的信號(hào)都是由interface、module、program等聲明了clocking的模塊定義的,cloking自身不聲明信號(hào);一個(gè)interface中可以定義多個(gè)clocking,同一個(gè)變量可以在多個(gè)clocking塊中被應(yīng)用,且可以聲明不同的輸入輸出方向。

完結(jié)。

審核編輯:湯梓紅

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

    關(guān)注

    33

    文章

    8257

    瀏覽量

    149956
  • IC設(shè)計(jì)
    +關(guān)注

    關(guān)注

    37

    文章

    1287

    瀏覽量

    103436
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1333

    瀏覽量

    109713
  • Interface
    +關(guān)注

    關(guān)注

    0

    文章

    103

    瀏覽量

    38570

原文標(biāo)題:Interface in systemverilog

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    串行外設(shè)接口(Serial Peripheral Interface Master) Xilinx提供

    串行外設(shè)接口(Serial Peripheral Interface Master) Xilinx提供
    發(fā)表于 08-17 10:23

    合并SLaveFIFO接口和GPIFtoStAGGE FX3固件示例出現(xiàn)錯(cuò)誤:未定義引用

    你好,我正在合并SLaveFIFO接口和GPIFtoStAGGE FX3固件示例,我得到了下面的錯(cuò)誤,請(qǐng)?jiān)谙旅嬲业讲⒏郊庸碳?。幫助我。謝謝您界面,拉鏈1.8兆字節(jié)BMP2.3兆字節(jié) 以上來自于百度
    發(fā)表于 10-17 16:21

    帶LCD的PIC接口示例代碼

    來編碼LCD。我在尋找示例代碼,在那里我可以編寫簡(jiǎn)單的“Hello World”。 以上來自于百度翻譯 以下為原文 I am trying to Interface http
    發(fā)表于 10-23 15:54

    可以獲得Cyconsole的EZ-USB接口示例項(xiàng)目嗎?

    您好!我愿意參考PC端Windows應(yīng)用程序的供應(yīng)商請(qǐng)求。我找不到CySead“EZ-USB接口示例項(xiàng)目”。我想在Windows新應(yīng)用程序中實(shí)現(xiàn)供應(yīng)商命令功能。你能給我示范項(xiàng)目文件嗎? 以上
    發(fā)表于 05-22 07:24

    SCSI接口的具體使用和優(yōu)勢(shì)

    多任務(wù)接口,設(shè)有母線仲裁功能。掛在一個(gè)SCSI母線上的多個(gè)外設(shè)可以同時(shí)工作。SCSI上的設(shè)備平等占有總線?! 《?、SCSI的優(yōu)勢(shì) ?。?)可支持多個(gè)設(shè)備,SCSI-2(FastSCSI)最多可接7個(gè)
    發(fā)表于 01-07 17:49

    Gowin DDR Memory Interface IP參考設(shè)計(jì)

    Interface IP 是一個(gè)通用的 DDR 內(nèi)存接口 IP,符合 JESD79F 標(biāo)準(zhǔn)協(xié)議,該 IP 為用戶提供一個(gè)通用的命令接口,使其與內(nèi)存芯片進(jìn)行互連,完成用戶的訪存需求。IP 包含 DDR 內(nèi)存
    發(fā)表于 10-08 07:17

    SWD的接口對(duì)比JTAG接口有什么優(yōu)勢(shì)?

    SWD的接口對(duì)比JTAG接口有什么優(yōu)勢(shì)
    發(fā)表于 10-09 07:09

    什么是BRI (Basic Rate Interface)

    什么是BRI (Basic Rate Interface)  英文縮寫: BRI (Basic Rate Interface) 中文譯名: 基本速率接口 分  類: 電信設(shè)備
    發(fā)表于 02-22 11:14 ?1540次閱讀

    DVI接口端子定義

    DVI全稱為Digital Visual Interface,即數(shù)字視頻接口。其外觀如附圖所示的接插件。在液晶顯示器上使用DVI接口,比用傳統(tǒng)模擬VGA接口
    發(fā)表于 01-31 11:34 ?4793次閱讀
    DVI<b class='flag-5'>接口</b>端子定義

    IEEE1149.1標(biāo)準(zhǔn)JTAG接口與ISP接口,ISP interface

    IEEE1149.1標(biāo)準(zhǔn)JTAG接口與ISP接口,ISP interface 關(guān)鍵字:JTAG,ISP引腳 JTAG(Joint?Test
    的頭像 發(fā)表于 09-20 18:26 ?2321次閱讀

    AHB Slave Decoder和AHB Slave Interface接口的使用說明

    HME-M7它是集成了高級(jí) MCU (Cortex-M3)內(nèi)核與更高性能 FPGA 資源的智能型芯片。MCU與FPGA可以使用AHB 總線實(shí)現(xiàn)數(shù)據(jù)交互,這就是FP AHB 總線接口。使用AHB總線
    發(fā)表于 11-11 08:00 ?15次下載
    AHB Slave Decoder和AHB Slave <b class='flag-5'>Interface</b><b class='flag-5'>接口</b>的使用說明

    開發(fā)接口協(xié)議DIA應(yīng)用場(chǎng)景示例

    開發(fā)接口協(xié)議(DIA)示例 1.目的 本附件提供了一個(gè)說明性的示例,說明根據(jù)第5條[特別是5.4.3.1的c)至k)]的要求,根據(jù)ISO26262-2:2018的5.4.6和ISO26262-2
    的頭像 發(fā)表于 03-09 09:54 ?3833次閱讀

    C#-Interface接口實(shí)現(xiàn)

    C#-Interface接口實(shí)現(xiàn)(安徽理士電源技術(shù)有限公司招聘信息)-該文檔為C#-Interface接口實(shí)現(xiàn)講解文檔,是一份還算不錯(cuò)的參考文檔,感興趣的可以下載看看,,,,,,,,,
    發(fā)表于 09-28 09:42 ?3次下載
    C#-<b class='flag-5'>Interface</b><b class='flag-5'>接口</b>實(shí)現(xiàn)

    MPC82系列MCU的SPI(串行外圍接口)示例代碼

    MPC82系列MCU的SPI(串行外圍接口)示例代碼
    發(fā)表于 06-30 17:35 ?0次下載
    MPC82系列MCU的SPI(串行外圍<b class='flag-5'>接口</b>)<b class='flag-5'>示例</b>代碼

    代碼的黑盒測(cè)試(下)|?庫(kù)接口測(cè)試Library Interface Testing

    本文介紹通過VectorCAST實(shí)現(xiàn)代碼黑盒測(cè)試的一種方法:庫(kù)接口測(cè)試Library Interface Testing,可以利用工具為API創(chuàng)建測(cè)試用例,來驗(yàn)證應(yīng)用程序庫(kù)函數(shù)的正確性,而無(wú)需訪問源代碼。
    的頭像 發(fā)表于 08-04 14:37 ?812次閱讀
    代碼的黑盒測(cè)試(下)|?庫(kù)<b class='flag-5'>接口</b>測(cè)試Library <b class='flag-5'>Interface</b> Testing