Я реализую преобразователь кода с переключателем режима, так что режим 0 подразумевает двоичный код в код Грея, а режим 1 подразумевает преобразование серого в двоичный код. Мой дизайн и испытательный стенд показаны ниже.
Дизайн
module bin2gray(input [3:0] bin, output [3:0] G );
assign G[3] = bin[3];
assign G[2] = bin[3] ^ bin[2];
assign G[1] = bin[2] ^ bin[1];
assign G[0] = bin[1] ^ bin[0];
endmodule
module gray2bin (input [3:0] G, output [3:0] bin );
assign bin[3] = G[3];
assign bin[2] = G[3] ^ G[2];
assign bin[1] = G[3] ^ G[2] ^ G[1];
assign bin[0] = G[3] ^ G[2] ^ G[1] ^ G[0];
endmodule
module code_converter(in,mode_switch,out);
input [3:0]in;
input mode_switch;
output [3:0] out;
always @(in or mode_switch);
if(mode_switch == 1'b1)
gray2bin m2(in,out);
else
bin2gray m1(in,out);
endmodule
Испытательный стенд
module tb();
reg [3:0] in;
reg mode_switch;
wire [3:0] out;
code_converter uut(.in(in),.mode_switch(mode_switch),.out(out));
// stimulus
initial begin
mode_switch <=0;
in <= 0; #10;
in <= 1; #10;
in <= 2; #10;
in <= 3; #10;
in <= 4; #10;
in <= 5; #10;
in <= 6; #10;
in <= 7; #10;
in <= 8; #10;
in <= 9; #10;
in <= 10; #10;
in <= 11; #10;
in <= 12; #10;
in <= 13; #10;
in <= 14; #10;
in <= 15; #10;
#100;
mode_switch <=1;
in <= 0; #10;
in <= 1; #10;
in <= 2; #10;
in <= 3; #10;
in <= 4; #10;
in <= 5; #10;
in <= 6; #10;
in <= 7; #10;
in <= 8; #10;
in <= 9; #10;
in <= 10; #10;
in <= 11; #10;
in <= 12; #10;
in <= 13; #10;
in <= 14; #10;
in <= 15; #10;
#100;
$stop;
end
initial begin
$dumpvars;
$dumpfile("sth.vcd");
end
endmodule
Я получаю следующую синтаксическую ошибку при компиляции кода.
Журналы
vu2swz@PPDP01:~$ iverilog codeconverter.v
codeconverter.v:24: error: Unable to bind parameter `mode_switch' in `tb.uut'
codeconverter.v:24: error: Cannot evaluate genvar conditional expression: (mode_switch)==(1'd1)
codeconverter.v:24: error: Unable to bind parameter `mode_switch' in `tb.uut'
codeconverter.v:24: error: Cannot evaluate genvar conditional expression: (mode_switch)==(1'd1)
4 error(s) during elaboration.
Есть ли проблемы с дизайном и синтаксисом?