Verilog与SystemVerilog中几种不同的端口:wire、reg、logic、input、output、inout、(const)ref

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Verilog与SystemVerilog中几种不同的端口,如:wire、reg、logic、input、output、inout、(const)ref。简单介绍几者之间的关系与区别。


一、wire、reg、logic

这也是SystemVerilog与Verilog的一个区别,SystemVerilog中的logic数据类型能够被用来替代Verilog中的reg或wire(具有限制),这就使得能够在一个更高的抽象层次上建模,并且随着设计的不断深入能够加入一些设计细节而不必改变数据类型的声明。logic数据类型不会表示信号的强度也不具有线逻辑的解析功能,因此logic数据类型比Verilog的wire类型更能有效地仿真和综合。
在这里插入图片描述

二、input、output、inout

input端口是输入端口;output是输出端口;还有inout端口。
inout端口用于双向连接。如果使用多个inout端口驱动一个信号,sv将会根据所有驱动器的值,驱动强度来计算最终的值。

三、(const)ref

在sysytemverilog中,通过ref参数的传递方式指定为引用而不是复制,不需要创建数据包副本消耗内存。这种ref函数类型比input,output和inout更好用,首先你可以把数组传递给子程序;
ref端口是对变量(不能是net)的引用,它的值是该变量最后一次赋的值。如果将一个变量链接到多个ref端口,就可能产生竞争,因为多个模块的端口都可能更新同一个变量。
使用ref和const传递数组,如下
在这里插入图片描述
const修饰符,虽然数组变量a指向了调用程序中的数组,但是子程序不能修改数组的值,如果你试图改变数组的值,编译器将报错。
systemverilog允许不带ref进行数组的传递,这时数组会被复制到堆栈区中,这种操作的代价很高,除非是对特别小的数组。

systemverilog的语言参考手册规定了ref参数只能用于带自动存储的子程序中(automatic funtion/automatic task/void function)。如果你对程序或模块指定了automatic属性,则整个程序内部都是自动存储的。

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
inout、inputoutput是在Verilog代码用来定义模块端口的关键词。 inout端口可以同时用作输入和输出。当一个模块的inout端口作为输出时,另一个模块的inout端口必须作为输入;反之,当一个模块的inout端口用作输入时,另一个模块的inout端口一定是输出口。因此,两个inout端口的控制信号实际上是由一对信号控制的。\[2\] input端口是用于输入数据的端口,它只能接收数据,不能输出数据。output端口是用于输出数据的端口,它只能输出数据,不能接收数据。\[3\] 所以,inout、inputoutput是用来定义模块端口的关键词,它们分别表示双向连接、输入和输出。 #### 引用[.reference_title] - *1* *2* [通俗易懂的带你解读inout双向端口Verilog高级教程】](https://blog.csdn.net/weixin_43698385/article/details/125016073)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Verilog与SystemVerilog几种不同端口wire、reg、logicinputoutput、inout、(constref](https://blog.csdn.net/weixin_45159924/article/details/125284799)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值