testbench的输入输出数据类型正好与被测模块相反

1、被测module中,输入为wire,输出为reg

输入信号是由模块外部决定的,输入数据的状态是变化的,与外部模块是通过线连接,所以用wire,不用reg

2、testbench中,输入为reg,输出为wire

所谓寄存器类型就是暂存一个数据,保持数据不变。

在testbenchb里定义的A,B输出给被测模块
因此对于testbench来说,A,B是输出,数据需要存储才能输出给被测module,用reg型

在testbenchb里定义的result用来接收从被测模块中输入的数据
因此对于testbenchb来说,result是输入,用导线与被测模块连接,用wire型

也就是说,tb的输出对应着被测模块的输入;tb的输入对应着被测模块的输出

  • 注意:只要是always块内部的变量输出,都用reg型

代码示例

文件名称:alu_tb

`timescale 1ns/1ns      //仿真时间单位/时间精度
`include "alu.v"
module ALU_tb;reg [31:0] A;reg [31:0] B;reg [4:0] sl;               //左移的位数reg [2:0] ALUctr;            //3位ALU控制信号wire [31:0] Result;          //wire zero;                    //零标志位ALU myalu(A,B,sl,ALUctr,Result,zero);always #2 A<=A+1;initialbegin A=32'hffff_fff0;B=0;sl=0;ALUctr=3'b010;#0 B<=1;     //因为begin-end是串行,实际上是第5+5ns开始对b赋值endinitialbegin$monitor($time,,"%d + %d = %d",A,B,Result);#100$finish;end
endmodule

always与reg辨析(转自百度知道)

问:
verilog里面always与reg分别代表什么意思,有什么功用?
为什么只对输出用reg,对输入不用?

答:
首先搞清楚,verilog不是用来编程的软件语言,不要老想着与C/C++对比。
其二,verilog是用来描述硬件的,也就是说你要做什么硬件,先要在脑筋里想好,做到胸有成竹以后,再用verilog描述出来。
有了以上概念,再来可以告诉你答案,你比较容易接受:
always是用来描述电平触发的组合逻辑电路或锁存器,还可以用来描述边沿触发的时序逻辑电路。
reg本来是用来描述寄存器输出的,但实际上与verilog本身的语法有关,这一点个人感觉verilog的语法并不严谨,至少让初学者无所适从。这个语法是:只要是always块内部的变量输出,都用reg型。但正如上面所说的,always块并不总是时序逻辑,有时是组合逻辑,所以reg型变量有时候可能实际上是线网。
所谓寄存器类型就是暂存一个数据,保持数据不变,而输入数据的状态是变化的,只能用作wier型。
由于输入信号是由模块外部决定的,与外部模块是通过线连接的,所以用wire,不用reg。

【verilog语法】关于testbench与被测module的输入输出数据类型定义:reg/wire原因相关推荐

  1. 【Verilog】10.10练习题——Verilog语法知识点补充 和 一些注意点

    verilog基础练习题 Verilog也是能写for循环的! ①基本方法: integer i; for(i=0; i<=SIZE-1; i=i+1) begin/* 代码 */ end ②使 ...

  2. [转]verilog语法学习心得

    verilog语法学习心得 1.数字电路基础知识: 布尔代数.门级电路的内部晶体管结构.组合逻辑电路分析与设计.触发器.时序逻辑电路分析与设计 2.数字系统的构成: 传感器  AD  数字处理器  D ...

  3. Verilog语法和典型电路

    这里写目录标题 Verilog语法知识 Q:锁存器 Q:D触发器 Q:消除毛刺 Q:同步复位和异步复位 Q:边沿检测 Q:握手信号 Q:脉冲展宽(单bit慢采快) Q:二进制与格雷码的转换 Q:二进制 ...

  4. Verilog 语法(二)···············简单入门

    经过数字逻辑电路课程的学习,大家已对多路选择器(数据选择器)有了一定的认识.本节将通过建模2选1的数据选择器,简单介绍Verilog的各级建模语言. 一.行为级建模 使用always块来对数据选择器进 ...

  5. Cyclone FPGA踏足笔记(二):Verilog语法学习总结

    欢迎来我的个人博客:https://codinglover.top/ 转转! 前言 花了一个月时间零零碎碎看了下Verilog的语法,终于把Verilog的基本语法学了个大概,可以自己写点小东西了,由 ...

  6. Verilog 语法入门知识

    Verilog 语法入门知识 一.变量类型 ①数值 数值表示采用 <二进制位数>'<数值表示的进制><数值>的结构. 其中进制可以为b.o.d.h分别代表二.八.十 ...

  7. 【系统设计】Verilog语法及示例(2)

    参考Verilog语法 | 教程 (ustc.edu.cn) 1.7 D触发器 D触发器是一个具有记忆功能.具有两个稳定状态的信息存储器件,是构成时序逻辑的最基本逻辑单元.其具有两个稳定状态,即&qu ...

  8. Verilog语法之变量

    本文转自知乎罗成的Verilog语法之三:变量 总的文章链接地址小白如何快速入门Verilog 本文首发于微信公众号"花蚂蚁",想要学习FPGA及Verilog的同学可以关注一下. ...

  9. Verilog语法中parameter与localparam

    Verilog语法中parameter与localparam 对读者的假设 已经掌握: .可编程逻辑基础 .Verilog HDL基础 .使用Verilog设计的Quartus II入门指南 .使用V ...

最新文章

  1. 关于oracle的基础增删改查操作总结
  2. IIS部署详细步骤、包括错误的解决办法、使用localDB
  3. 太棒啦!PyCharm与Jupyter完美融合,Jupytext来啦!
  4. Epic苹果诉讼案,却把索尼微软Steam都拉下水,网友忙吃瓜
  5. mAP@0.5 与 mAP@0.5:0.95 是什么意思,YOLOv5
  6. Java Reflection(九):泛型
  7. PMCAFF产品众测 | 对话随手攒CEO聊聊产品的设计、推广和改进
  8. python graphviz工具的使用
  9. 求两个相交链表的交点
  10. Text2SQL 语义解析数据集、解决方案、paper资源整合项目
  11. mysql ---- 多表查询
  12. 本页不但包含安全的内容,也包含不安全的内容
  13. std::string begin end
  14. 机器人周志_智能机器人杂志
  15. Oracle 容灾方案选择
  16. cdr多页面排版_CDR排版跨页图片的制作方法
  17. Asp.Net常用文件【牛腩】
  18. 2020年下半年系统架构设计师论文真题
  19. Unity3D空战游戏模板 Air Warfare Pro
  20. python绘制哆啦a梦实训报告_python画哆啦A梦和大雄

热门文章

  1. Linux闲时自动抢占GPU脚本
  2. 安卓和Linux动态库一样吗,在Linux环境下编译Android下的最新版ffmpeg+x264单个动态库(.so)...
  3. php 中set是什么_php中set
  4. 浪潮服务器更换硬盘_总金额2.5亿!浪潮信息助力中国移动部署NFV项目
  5. HDU4364(模拟矩阵乘法)
  6. 不平等博弈问题学习记录(一)(超实数篇)
  7. C++虚继承(五) --- 虚拟继承的概念
  8. deque与vector的主要区别
  9. HTTP/3 来了,你了解它么?
  10. Flink 时间语义与水位线(Watermarks)