¿Cómo puedo pasar un valor de 10 bits a un módulo que necesita una entrada de 12 bits en verilog?

3

Tengo un módulo declarado como:

module bin2BCD(
    input [11:0] bin12_in],
    output reg [3:0] thousands,
    output reg [3:0] hundreds,
    output reg [3:0] tens,
    output reg [3:0] ones,
);

Tengo otro módulo que genera una salida binaria de 10 bits (llámela M) cuyo valor máximo es 861 base 10.

Debido a esto, me gustaría crear una instancia de este módulo con los dos primeros bits de bin12_in establecidos en 0, seguido del valor binario de M (para hacer 12 bits).

¿Cómo puedo pasar un valor de 10 bits a un módulo que necesita una entrada de 12 bits?

    
pregunta Daniel B.

1 respuesta

4

En este caso, desea concatenar dos bits cero al principio de su palabra de 10 bits para crear una palabra de 12 bits.

Puede hacer esto con el operador de concatenación de verilog {,} de esta manera:

bin2BCD instance_name (
   .bin12_in({2'b00, M}),
   .thousands(digit3),
   .hundreds(digit2),
   .tens(digit1),
   .ones(digit0)
);
    
respondido por el B Pete

Lea otras preguntas en las etiquetas