0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Interface接口的优势和使用示例

FPGA之家 来源:FPGA之家 2023-09-01 15:38 次阅读

什么引入interface?

将设计和验证从逻辑上和时间上分开,使得两个小组可以相对独立;

IC 设计的复杂度逐渐增加,模块之间的连接也逐渐复杂,传统的 Verilog信号连接方式代码量太大,容易出错,且不易于复用。

Interface的优势

简洁:

1、使用 Interface 在验证中添加、删除和修改信号时只需要修改 Interface 和使用该 Interface 的模块,怎么理解?

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

如图所示:顶层模块top例化了模块m1和m2,a信号从m2经过顶层模块到m1。假设现需将信号a修改为b,不使用接口的情况下,m1、m2及top模块都应该做出相应的修改;若使用接口,top例化的是接口,接口内的信号修改只需要修改m1、m2相关部分即可。

2、两个块之间有两个以上的信号连接,并且使用特定的协议时,使用接口更利于复用。

硬件域的桥梁:

Interface 是硬件域( module、设计中使用)和软件域( class、验证环境中使用)交互的唯一方式。

定义要点

Interface 的定义与 Module 类似,可以参考 Module 的定义方法;由于接口直接与DUT打交道,因此变量建议声明为四值逻辑logic;同时为了防止验证环境带来的竞争问题,驱动硬件的信号应使用非阻塞赋值;Interface端口列表中只需要定义时钟、复位等公共信号,或者不定义任何端口信号。

使用示例

首先定义interface,然后在顶层例化后作为module的端口列表分别传入DUT和TB中。

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

接口中的modport

前一个例子中使用了点对点无信号方向的连接方式。在使用该端口的原始网单里包含了方向信息,编译器依次来检查连线错误。也可以通过modport来进一步限定信号传输的方向,避免端口连接的错误。

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

需要注意的是modport中的input和output方向是调用该modport模块的输入输出方向,比如TEST的modport内声明的方向,就是调用它的test模块输入输出。

事实上modport在验证环境中使用并不多,因为下文提到的不但clocking块包含了modport的方向信息,同时clocking块也可作为同步信号的驱动。

接口中的clocking块

clocking 块,用来对同步信号进行采样和驱动,可以避免设计和验证的竞争。clocking block需要指定一个触发时钟,比如posedge clk、negedge clk。

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

同若验证环境中需要同步驱动,利用“arb_if.cb.*”的方式利用clocking块中的信号进行驱动即可。

同时可以为clocking块中信号设置建立和保持时间,若未设置建立时间或保持时间时则会默认在clocking事件前1step输入采样,在事件后#0对输出驱动。

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

标注的语句表示在时钟上升沿前10ns进行采样,在时钟上升沿2ns后进行驱动。怎么理解?事实上这个步骤主要是为了模拟实际的硬件行为,感兴趣的可以自己画几级触发器来分析,TB对DUT的驱动一侧相当于DUT的上一级触发器,采样DUT数据一侧的TB相当于DUT的下一级寄存器

几点注意:clocking不是interface独有的,module、program也可以声明clocking模块;clocking中列举的信号都是由interface、module、program等声明了clocking的模块定义的,cloking自身不声明信号;一个interface中可以定义多个clocking,同一个变量可以在多个clocking块中被应用,且可以声明不同的输入输出方向。

完结。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8444

    浏览量

    150706
  • IC设计
    +关注

    关注

    37

    文章

    1290

    浏览量

    103689
  • Verilog
    +关注

    关注

    28

    文章

    1343

    浏览量

    109918
  • Interface
    +关注

    关注

    0

    文章

    103

    浏览量

    38578

原文标题:Interface in systemverilog

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    串行外设接口(Serial Peripheral Interface Master) Xilinx提供

    串行外设接口(Serial Peripheral Interface Master) Xilinx提供
    发表于 08-17 10:23

    合并SLaveFIFO接口和GPIFtoStAGGE FX3固件示例出现错误:未定义引用

    你好,我正在合并SLaveFIFO接口和GPIFtoStAGGE FX3固件示例,我得到了下面的错误,请在下面找到并附加固件。帮助我。谢谢您界面,拉链1.8兆字节BMP2.3兆字节 以上来自于百度
    发表于 10-17 16:21

    带LCD的PIC接口示例代码

    来编码LCD。我在寻找示例代码,在那里我可以编写简单的“Hello World”。 以上来自于百度翻译 以下为原文 I am trying to Interface http
    发表于 10-23 15:54

    可以获得Cyconsole的EZ-USB接口示例项目吗?

    您好!我愿意参考PC端Windows应用程序的供应商请求。我找不到CySead“EZ-USB接口示例项目”。我想在Windows新应用程序中实现供应商命令功能。你能给我示范项目文件吗? 以上
    发表于 05-22 07:24

    SCSI接口的具体使用和优势

    多任务接口,设有母线仲裁功能。挂在一个SCSI母线上的多个外设可以同时工作。SCSI上的设备平等占有总线。  二、SCSI的优势  (1)可支持多个设备,SCSI-2(FastSCSI)最多可接7个
    发表于 01-07 17:49

    Gowin DDR Memory Interface IP参考设计

    Interface IP 是一个通用的 DDR 内存接口 IP,符合 JESD79F 标准协议,该 IP 为用户提供一个通用的命令接口,使其与内存芯片进行互连,完成用户的访存需求。IP 包含 DDR 内存
    发表于 10-08 07:17

    SWD的接口对比JTAG接口有什么优势

    SWD的接口对比JTAG接口有什么优势
    发表于 10-09 07:09

    什么是BRI (Basic Rate Interface)

    什么是BRI (Basic Rate Interface)  英文缩写: BRI (Basic Rate Interface) 中文译名: 基本速率接口 分  类: 电信设备
    发表于 02-22 11:14 1603次阅读

    DVI接口端子定义

    DVI全称为Digital Visual Interface,即数字视频接口。其外观如附图所示的接插件。在液晶显示器上使用DVI接口,比用传统模拟VGA接口
    发表于 01-31 11:34 4841次阅读
    DVI<b class='flag-5'>接口</b>端子定义

    IEEE1149.1标准JTAG接口与ISP接口,ISP interface

    IEEE1149.1标准JTAG接口与ISP接口,ISP interface 关键字:JTAG,ISP引脚 JTAG(Joint Test
    的头像 发表于 09-20 18:26 2388次阅读

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

    HME-M7它是集成了高级 MCU (Cortex-M3)内核与更高性能 FPGA 资源的智能型芯片。MCU与FPGA可以使用AHB 总线实现数据交互,这就是FP AHB 总线接口。使用AHB总线
    发表于 11-11 08:00 15次下载
    AHB Slave Decoder和AHB Slave <b class='flag-5'>Interface</b><b class='flag-5'>接口</b>的使用说明

    开发接口协议DIA应用场景示例

    开发接口协议(DIA)示例 1.目的 本附件提供了一个说明性的示例,说明根据第5条[特别是5.4.3.1的c)至k)]的要求,根据ISO26262-2:2018的5.4.6和ISO26262-2
    的头像 发表于 03-09 09:54 3940次阅读

    C#-Interface接口实现

    C#-Interface接口实现(安徽理士电源技术有限公司招聘信息)-该文档为C#-Interface接口实现讲解文档,是一份还算不错的参考文档,感兴趣的可以下载看看,,,,,,,,,
    发表于 09-28 09:42 3次下载
    C#-<b class='flag-5'>Interface</b><b class='flag-5'>接口</b>实现

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

    MPC82系列MCU的SPI(串行外围接口)示例代码
    发表于 06-30 17:35 0次下载
    MPC82系列MCU的SPI(串行外围<b class='flag-5'>接口</b>)<b class='flag-5'>示例</b>代码

    代码的黑盒测试(下)| 库接口测试Library Interface Testing

    本文介绍通过VectorCAST实现代码黑盒测试的一种方法:库接口测试Library Interface Testing,可以利用工具为API创建测试用例,来验证应用程序库函数的正确性,而无需访问源代码。
    的头像 发表于 08-04 14:37 867次阅读
    代码的黑盒测试(下)| 库<b class='flag-5'>接口</b>测试Library <b class='flag-5'>Interface</b> Testing