SV学习—interface的使用与优缺点分析

文章目录


前言

本系列为SV学习的参考系列,有不足之处欢迎大家批评指正,一起交流


一、verilog的端口

        verilog中的端口使用主要在连接RTL设计的不同模块或者将testbench和RTL之间互相连接,使用的方式为端对端,同时使用之前需要例化,使用时需注意:

端口列表中的所有端口必须在模块中进行声明,verilog中的端口具有以下三种了类型:input、output、和inout。
在verilog中,所有的端口隐含地声明为wire类型。
如果输出类型的端口需要保存数值,则必须将其显式的声明为reg数据类型。output reg out
不能将input和inout类型的端口声明为reg数据类型,因为reg类型的变量是用于保存数值的,而输入端口只反映与其相连的外部信号的变化,并不能保存这些信号的值。

使用例子如下:

此连接为将fifo_sync的模块例化为test,同时将fifo_sync和test之间通过端口端对端连接

二、SV的接口

1.使用实例

 

这个例子分为三个模块,分别为DUT,Interface,Driver,在top通过接口将driver和dut模块的端口连接在一起,top模块中的例化了interface,driver,dut。用vcs进行仿真可以看到波形:

2.端口与接口的优缺点分析

优点:a,接口最大的一个优势就是便于可重用,本文的设计模块因为用到的信号很少,所以优势不明显,但是当我们的信号上百上千的时候,同时重复出现很多次,就应用接口

b,modport可以将接口的一系列信号捆绑

c,要增加信号只需要在接口中声明一次,高层需要调用的话可以之间调用,如果是verilog的端口连接,则必须在所有的层次都声明这个新增加的接口,容易出错

缺点:

a,本文例子就将缺点暴露无遗,因为我们的DUT和driver的连接是端口和接口的连接,同时信号只有四个,又不是会重用的协议,同时点对点的连接使得接口名字比信号名更长,代码变得冗长且容易出错。

所以需要不同情况不同使用,并不是接口一定优于端口。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值