¿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í)?
¿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í)?
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.
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.