有哪位高手用过Verilog 中inout的,请指点兄弟一把,急啊!救命啊!!!
- UID
- 76046
- 性别
- 男
|
wire tri_inout; // 这句话哪里去了? |
|
|
|
|
|
- UID
- 19245
- 性别
- 男
|
系统默认的就是wire型,加不加wire tri_inout效果一样 |
|
|
|
|
|
- UID
- 76046
- 性别
- 男
|
我认为关键的问题在于assign tri_inout=oe?in_n:'bz,建议将oe和we同时加入控制试试--原因无非是输入输出控制 |
|
|
|
|
|
- UID
- 75308
- 性别
- 男
|
把:2'b01: begin out_n<= ri_inout; in_n<= 1'bz end
改为: 2'b01: begin out_n<= 1'bz; in_n<= 1'bz end |
|
|
|
|
|
- UID
- 1061
- 性别
- 男
|
非常感谢大侠们的帮助,但问题仍然没有解决,inout端口只能起到输入输出中的一项功能,另一个就是不定态(我用的编译、仿真软件都是maxplus2),我现在是狂郁闷! |
|
|
|
|
|
- UID
- 83563
- 性别
- 男
|
当有数据输出时,将此时的数据输入的信号设为高阻 inout在仿真时是分成input和output两个管脚,当有数据输出时,必须把此时的输 入的信号设为高阻
input xxxxxxxxxxxxxxxxx_________--------xxxxxxxxx
output---------________xxxxxxxxxxxxxxxxx---------
enable-----------------_________________---------
enabale有效时,表示输出允许,输入就不能有仿真信号,enable无效时,才能输入仿 真信号。 否则会导致仿真信号冲突仿真 |
|
|
|
|
|
- UID
- 1061
- 性别
- 男
|
有哪位高手用过Verilog 中inout的,请指点兄弟一把,急啊!救命啊!!!
为什么我设计的程序,仿真时总是出现:
found logic contention at 48.51us on node tri_inout1 found logic contention at 48.51us on node tri_inout2(tri_inout [2:1] 是我定义的inout端口)
到底是什么地方有毛病呢?
我的源程序如下:
module inout_test(we,oe,in,tri_inout,out);
inout[2:1] tri_inout;
output[2:1] out;
input[2:1] in;
input we,oe;
reg[2:1] out_n,in_n;
assign tri_inout=oe?in_n:'bz;
assign out=out_n;
always@(oe or we)
begin
case({oe,we})
2'b01: begin out_n<=tri_inout; in_n<='bz;?? end
2'b10: begin in_n<=in; out_n<='bz; end
default: begin out_n<='bz; in_n<='bz; end
endcase
end
endmodule |
|
|
|
|
|
- UID
- 76046
- 性别
- 男
|
老兄,我遇到的问题和你一样,不知道解决没有,我想肯定是没问题了。怎么样, 解救老弟一把,虽然我用VHDL,但二者现象一样。 |
|
|
|
|
|