Creé un módulo de codificador 8-3 simple (llamado encoder8to3
) para reemplazar algunas instancias repetidas de código Verilog. Luego intenté usar el módulo en levers2.v
. Recibo el siguiente error cuando ejecuto un archivo de prueba de Verilog:
ERROR: HDLCompiler: 69 - "C: / Documents and Settings / me / xilinx projects / wQCBG / levers2.v "Línea 132: no está declarada.
Veo todo tipo de ejemplos de cómo crear módulos, pero no muchos sobre cómo usar los que se crean. Todo lo que encuentro son fragmentos del uso y no la declaración.
¿Alguien me dirá cómo declarar correctamente encoder8to3
en levers2
por favor?
EDITAR - codez, palancas2, reducido.
module levers2(
input [7:0] LL,
input [7:0] RL,
output reg [10:0] DIVISOR,
output reg TD_ANY_MARK,
output reg TD_NUMBERS,
output reg TD_ONE_MARK,
output reg TD_DONT_DISENGAGE,
output reg FAULT
);
(snip)
reg [7:0] x;
always @(LL, RL) begin
(snip)
FAULT <= 0;
/*
encoder8to3(LL, x, FAULT);
(snip)
El propio módulo codificador es:
module encoder8to3(
input [7:0] A,
output reg [2:0] B,
output reg F
);
always @(A) begin
F <= 0;
if (A[0]) B <= 0;
else if (A[1]) B <= 1;
else if (A[2]) B <= 2;
else if (A[3]) B <= 3;
else if (A[4]) B <= 4;
else if (A[5]) B <= 5;
else if (A[6]) B <= 6;
else if (A[7]) B <= 7;
else F <= 1;
end
endmodule
Estoy aprendiendo, y estoy teniendo algunos problemas con la sintaxis de Verilog. Entonces, de alguna manera, necesito decirle a levers2 (la primera parte del código) dónde encontrar encoder8to3
o quizás, como c, solo avisar al compilador que el módulo se usará finalmente.