[转载]testbench中inout类型端口的处理方式

来源:互联网 发布:知之为知之的知 编辑:程序博客网 时间:2024/05/19 15:24

输入端口可以由wire/reg驱动,但输入端口只能是wire;输出端口可以使wire/reg类型,输出端口只能驱动wire;若输出端口在过程块中赋值则为reg型,若在过程块外赋值则为net型。用关键词inout声明一个双向端口, inout端口不能声明为reg类型,只能是wire类型;输入和双向端口不能声明为寄存器类型。

测试平台中需要声明与待测模块输入输出端口对应的变量。与输入端口相连接的变量定义为reg,与输出端口相连接的变量定义为wire。双向端口inout在测试中需要进行简单的处理。方法如下:

    为双向端口设置中间变量inout_reg作为该inout的输出寄存,inout端口在testbench中要定义为wire型变量,然后用输出使能控制传输方向。

eg:
inout [0:0] bi_dir_port;

在testbench中处理方式如下:
wire [0:0] bi_dir_port;
reg [0:0] bi_dir_port_reg;
reg bi_dir_port_oe;
assign bi_dir_port=bi_dir_port_oe?bi_dir_port_reg:1’bz;

用bi_dir_port_oe控制端口数据方向,并利用中间变量寄存器改变其值。等于两个模块之间用inout双向口互连。