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类型才可以被赋值啊...)
展开
 我来答
Arthurzss
2014-06-18 · TA获得超过1662个赞
知道小有建树答主
回答量:496
采纳率:100%
帮助的人:243万
展开全部
当oe=0时,inout类型的data在这个模块是作为输入的啊,本来就不能赋值,也不需要赋值(使用的输入值)。
作为输入时,应该是和这个模块连接的另一个模块中进行赋值,那个模块中的输出是这个模块的输入(那个模块的输出还是reg的)。
更多追问追答
追问
实际应用时当然不需要给值,但是仿真的时候需要给值啊...
追答
所以说仿真时在另外的模块中给激励。看上面回答的后一句话
网友12138L6Q4
推荐于2017-09-21 · TA获得超过508个赞
知道小有建树答主
回答量:125
采纳率:0%
帮助的人:171万
展开全部

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的办法,可以防止这个问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式