Ayuda con modulo verilog

Iniciado por Mr.Moonlight, 12 Enero 2015, 17:12 PM

0 Miembros y 1 Visitante están viendo este tema.

Mr.Moonlight

Verán ,ando trabajando en un contador con biestables que realiza una cuenta, el problema es que como resultado tengo 2 bucles de 0->8 y otro de 7->15 , el tema es por si alguien puede echarme un cable y decirme como puedo iniciar el contador en un número que no esté en bucle , el 2 por ejemplo , por aqui dejo el codigo fuente del programa que tengo hecho hasta ahora.. Mencionar que no pido ningún codigo solo el como hacerlo.

*Edit : Todo resuelto , despues de investigar un buen rato alcance la solucion :D
//Modulo del biestable JK
module JKdown(output reg Q, output wire QN, input wire J, input wire K,   input wire C);
 not(NQ,Q);

 initial
 begin
   Q=0;
 end    

 always @(posedge C)
   case ({J,K})
     2'b10: Q=1;
     2'b01: Q=0;
     2'b11: Q=~Q;
   endcase
endmodule


//Módulo que contiene el contador y la circuitería auxiliar.
module contador (output wire[3:0] Q, input wire C);
//Cables correspondientes a las salidas negadas de los biestables.
 wire [3:0] nQ;
 
 wire rand;

 
 // J2, K2
 and (rand, Q[0], nQ[3]);
 
 JKdown jk0 (Q[0], nQ[0], Q[1], Q[1], C);
 JKdown jk1 (Q[1], nQ[1], Q[0], Q[0], C);
 JKdown jk2 (Q[2], nQ[2], rand, rand, C);
 JKdown jk3 (Q[3], Q[3], 1'b1, 1'b1, C);

endmodule


//Módulo para probar el circuito.
module test;
 reg C;
 wire [3:0] Q;
 contador counter (Q,C);

 always
 begin
   #9 C=~C;
   
 end

 initial
 begin
 
  $monitor($time, "Q[3:0]=%b", Q[3:0]);
   
  //Iniciar cuenta en 2
    counter.jk3.Q=0;
   counter.jk2.Q=0;          
   counter.jk1.Q=1;
   counter.jk0.Q=0;

   C=0;
   #300 $finish;
 end
endmodule





[MOD]: Utiliza las etiquetas para insertar código.