双向端口的仿真总结

eeleader   2011-5-31 08:30 楼主

很多初学者在写testbench进行仿真和验证的时候,被inout双向口难住了。仿真器老是提示错误不能进行。下面是我个人对inout端口写testbench仿真的一些总结,并举例进行说明。在这里先要说明一下inout口在testbench中要定义为wire型变量。
先假设有一源代码为:
module xx(data_inout , ........);
inout data_inout;
........................
assign data_inout=(! link)?datareg:1'bz;
endmodule
方法一:使用相反控制信号inout口,等于两个模块之间用inout双向口互连。这种方法要注意assign 语句只能放在initial和always块内。
module test();
wire data_inout;
reg data_reg;
reg link;
initial begin
..........
end
assign data_inout=link?data_reg:1'bz;
endmodule
方法二:使用force和release语句,但这种方法不能准确反映双向端口的信号变化,但这种方法可以反在块内。
module test();
wire data_inout;
reg data_reg;
reg link;
#xx;        //延时
force data_inout=1'bx;           //强制作为输入端口
...............
#xx;
release data_inout;          //释放输入端口
endmodule

回复评论 (5)

这个没人顶,我自己顶一下,看来大家都会了。白忙了
一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2011-6-8 16:36

经历了这过程
点赞  2011-6-9 14:17
这个要顶,我是看过再看的。只是没回复
点赞  2011-6-9 15:55
另外个双向端口的控制信号是不是就是实际读写中的读写信号呢?如果不是又是什么关系?
点赞  2011-6-9 15:57

引用:

另外个双向端口的控制信号是不是就是实际读写中的读写信号呢?如果不是又是什么关系?

 

是的。

 

读写信号就是控制双向端口的方向信号。在不读写的时候,注意给双向端口赋值高阻哦

一个为理想不懈前进的人,一个永不言败人! http://shop57496282.taobao.com/ 欢迎光临网上店铺!
点赞  2011-6-10 08:59
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复