辛丑条约时间内容影响:verilog中inout变量的赋值问题

来源:百度文库 编辑:神马品牌网 时间:2024/05/03 08:57:23
module iotrs(pin0,write,read,p37);
input[7:0] read;
input p37;
output[7:0] write;
inout[7:0] pin0;
reg[7:0] pin0;
reg[7:0] write;
reg p37;
always@ ( p37 or pin0 or read)
if(p37)
begin
write = pin0;
pin0 = 8'bz;
end
else
pin0 = read;
end
endmodule
希望程序实现的功能:p37有效时,让write变量等于单片机pin0口送来的数;当p37无效时,让pin0口把read值读回单片机。这里遇到的问题是,Pin0口作为inout变量不能定义为reg,所以在执行pin0 = read时会报错,请大侠帮忙指点迷津,如何解决该矛盾?谢谢
目前找到一种可以解决的办法,但是不太完美(if语句缺else)。请各位鼎力帮助!
module iotrs(pin0,write,read,p37);
input[7:0] read;
input p37;
output[7:0] write;
inout[7:0] pin0;
wire[7:0] pin0;
reg[7:0] write;
always@ ( p37 or pin0 )
if(p37)
begin
write = pin0;
pin0 = 8'bz;
end
endmodule