verilog inout信号testbench写法
inout类型的变量,仿真时必须定义为wire类型那怎么作为输入端给它赋值呢?eg:data=oe?data_reg:1'bz;data是wire类型,oe和data_r...
inout类型的变量,仿真时必须定义为wire类型
那怎么作为输入端给它赋值呢?
eg:
data = oe ? data_reg : 1'bz;
data是wire类型,oe和data_reg是reg类型
oe=1时data是输出,那么oe=0时怎么给data赋值啊....(testbench中,reg类型才可以被赋值啊...) 展开
那怎么作为输入端给它赋值呢?
eg:
data = oe ? data_reg : 1'bz;
data是wire类型,oe和data_reg是reg类型
oe=1时data是输出,那么oe=0时怎么给data赋值啊....(testbench中,reg类型才可以被赋值啊...) 展开
3个回答
展开全部
reg [39:0] data$inout$reg; //data$inout$reg当成一个变量
wire [39:0] data = data$inout$reg;
date直接例化双向口,输入的时候data的值就是data$inout$reg,看一下那个文档,解释的挺详细的。
追问
资料是挺好,但我使用的是verilog....看不懂VHDL....谢了
追答
里面verilog和VHDL都有例子的,仔细看!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐于2017-10-10
展开全部
对于testbench而言,端口应当和被测试的module一一对应。端口分为input,output和inout类型产生激励信号的时候,input对应的端口应当申明为reg, output对应的端口申明为wire,inout端口比较特殊;
一般用initial块给信号赋初值,initial块执行一次,always或者forever表示由事件激发反复执行。
.一般在testbench的开头定义时间单位和仿真 精度,比如`timescale 1ns/1ps,前面一个是代表时间单位,后面一个代表仿真时间精度。
对于一个设计而言,时间刻度应该统一,如果设计文件和testbench里面的时间刻度不一致,仿真 器默认以testbench为准。一个较好的办法是写一个global.v文件,然后用include的办法,可以防止这个问题。
一般用initial块给信号赋初值,initial块执行一次,always或者forever表示由事件激发反复执行。
.一般在testbench的开头定义时间单位和仿真 精度,比如`timescale 1ns/1ps,前面一个是代表时间单位,后面一个代表仿真时间精度。
对于一个设计而言,时间刻度应该统一,如果设计文件和testbench里面的时间刻度不一致,仿真 器默认以testbench为准。一个较好的办法是写一个global.v文件,然后用include的办法,可以防止这个问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询