jueves, 4 de septiembre de 2014

CONTADOR DE 4 BITS CON RESET ASÍNCRONO, PRESET Y CARGA SÍNCRONOS E INDICACIÓN DE OVERFLOW EN VERILOG

CÓDIGO EN LENGUAJE VERILOG DE UN CONTADOR DE 4 BITS CON LAS SIGUIENTES CARACTERÍSTICAS:

Reset asíncrono
Preset síncrono
Load síncrono
Indicación de overflow

module counter (CLK, RESET, PRESET, LOAD, DATOS, Q);
input CLK, PRESET, RESET, LOAD, [3:0] DATOS;
output OVERFLOW, [3:0] Q;
reg [3:0] tmp;

  always @(posedge CLK or posedge RESET)/*se activa al evento del reloj o del reset (reset asíncrono)*/
    begin
      if (RESET)  /*condicion reset, asigna valores a cero*/
        tmp = 4'b0000;
      elseif(PRESET) /*condicion preset, asigna valores a un número definido*/
        tmp = 4'b1010;  /*en este caso al valor binario 1010*/
      elseif(LOAD) /*condicion de carga, establece el valor al de los datos de entrada*/
tmp = DATOS;
      elseif(tmp == 4'b1111) /*condicion overflow, indica cuando se llega al valor binario 1111*/
OVERFLOW = '1';
      else
        tmp = tmp + 1'b1;
     end
  assign Q = tmp;
endmodule

No hay comentarios: