Pregunta

Tengo el siguiente módulo:

module add_8bit ( output wire co,
              output wire [7:0] r,

              input wire ci,
              input wire [7:0] x,
              input wire [7:0] y );

Estoy tratando de usarlo a través del siguiente código:

 wire rbit [7:0];
 wire onebit [7:0];
 wire twocomp [7:0];

 wire tco, tci;

 add_8bit t9 ( tco, twocomp, tci, rbit, onebit );

no se compilará debido a la última línea, ¿por qué?

Gracias.

¿Fue útil?

Solución

Tienes las declaraciones de alambre de atrás hacia delante en el segundo fragmento de código. Debe ser:

wire [7:0] rbit;
wire [7:0] onebit;
wire [7:0] twocomp;

Otros consejos

En su definición de módulos, que han declarado tres puertos wire de 8 bits:

 output wire [7:0] r,
 input  wire [7:0] x,
 input  wire [7:0] y

Sin embargo, en el módulo de llamadas, que han declarado tres de 1 bit de ancho por 8 bits de profundidad wire matrices (Véase la Norma IEEE para Verilog, 1364-2005, Sección 4.9 "Arrays) :

 wire rbit    [7:0];
 wire onebit  [7:0];
 wire twocomp [7:0];

Cuando se conecta estas matrices de alambre a la instancia de módulo, se producen desajustes de tipo conexión del puerto, que se traducen en errores de compilación.

Para solucionar la situación, debe asegurarse de que el tipo de las señales que se utilizan para conectarse a la instancia coincide con el tipo de puerto del módulo. Como se señaló Marty, lo más probable es que desea cambiar sus llamadas declaraciones módulo wire a:

wire [7:0] rbit;
wire [7:0] onebit;
wire [7:0] twocomp;

La otra posibilidad es cambiar sus puertos del módulo para que coincida con los cables módulo de llamadas, pero sinceramente duda de que es lo que desea.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top