Я нашел этот код Verilog для термометрического декодера (в кодировщике кода, но это неправильно).Verilog Decoder с одиночными входами/выходами, а не вектором
Я хочу адаптировать его для каденции, чтобы создать список соединений из него. Моя проблема заключается в том, что фактический код генерирует вход [7: 0] + 1 и выход [3: 0] в каденцию.
То, что я хочу, это модуль с 8 + 1 отдельных входов и 4 отдельных выходов:
module thermometer_encoder_8bit(
out0,out1,out2,out3, // 4-bit binary Output
in0,in1,in2,in3,in4,in5,in6,in7, // 8-bit Input
enable // Enable for the encoder
);
input enable;
input in0,in1,in2,in3,in4,in5,in6,in7;
output out0,out1,out2,out3;
reg out0,out1,out2,out3;
...
это актуально, неприспособленной код:
module thermometer_encoder_8bit(
binary_out , // 4 bit binary Output
encoder_in , // 8-bit Input
enable // Enable for the encoder
);
output [3:0] binary_out ;
input enable ;
input [7:0] encoder_in ;
reg [3:0] binary_out ;
always @ (enable or encoder_in)
begin
binary_out = 0; // 0000 0000
if (enable) begin
case (encoder_in)
8'b00000001 : binary_out = 1; // 0000 0001
8'b00000011 : binary_out = 2; // 0000 0011
8'b00000111 : binary_out = 3; // 0000 0111
8'b00001111 : binary_out = 4; // 0000 1111
8'b00011111 : binary_out = 5; // 0001 1111
8'b00111111 : binary_out = 6; // 0011 1111
8'b01111111 : binary_out = 7; // 0111 1111
8'b11111111 : binary_out = 8; // 0000 1111
endcase
end
end
endmodule
Есть ли возможность, чтобы сделать это легко?
Привет, DaHomer