- создать этот код из этого Curcuit Image Here
- И это изображение Ошибка Image Here
- Этот Curcuit является четырехместный автобус Transcievers с 3-выходами
Verilog кодПочему я не могу ввести значение для inout-типа?
module Q52QuadrupleBus3Stlate(GAB,GBA,A,B);
inout [3:0] A,B;
input GAB,GBA;
reg winA,winB;
assign B = (GAB==1&&GBA==0) ? winA : 4'hz;
assign A = (GAB==0&&GBA==1) ? winB : 4'hz;
always @ (GAB or GBA)
begin
winA <= A;
winB <= B;
end
endmodule
Испытательный стенд
`timescale 1ps/1ps
module Q52TestBench;
reg GAB;
reg GBA;
// Bidirs
wire [3:0] A;
wire [3:0] B;
parameter step = 10000;
Q52QuadrupleBus3Stlate uut (GAB,GBA,A,B);
initial begin
GAB = 0;
GBA = 0;
A = 0; B = 0;
#step GAB = 1;
#step GBA = 0;
#step GAB = 0;
#step GBA = 1;
#step GAB = 1;
#step GBA = 0;
#step GAB = 0;
#step GBA = 1;
#(step*10) $finish;
end
endmodule
Вы не сможете приводной провод из процедурных блоков.Вам нужно что-то вроде: 'reg A1; назначить A = (some_condition)? A1: «hz;» и диск «A1» из процедурного блока. – sharvil111
Thx очень много. verilog так сложно. –