Inicializando un número de bit grande como cero

1

¿Existe una forma más eficiente de registrar un valor inicial para una variable que

reg [3:0] COUNT = 4'b0000;  

donde, en este caso, si tuviera que definir, por ejemplo, un recuento de 32 bits, tendría que escribir 32'b (32 ceros aquí)?

    
pregunta stephchia

2 respuestas

2

Nada dice que siempre es necesario especificar todos los ceros en la base binaria. De hecho puedes escribirlo así:

reg [31:0] COUNT = 32'd0;

.... usando una base decimal. El Verilog extenderá ese cero decimal hasta el ancho de 32 bits especificado.

    
respondido por el Michael Karas
0

Verilog siempre rellena valores integrales estrechos con ceros a la izquierda al asignar a variables más amplias, y trunca a la izquierda cuando asigna variables más anchas a más estrechas. Así que podrías haber escrito

reg [31:0] COUNT = 0;

El signo de Verilog se extiende cuando todas las variables son tipos de datos firmados. Las reglas se vuelven más complicadas cuando se mezclan operandos de tipos firmados y no firmados.

    
respondido por el dave_59

Lea otras preguntas en las etiquetas