Título: Ayuda con modulo verilog
Publicado por: Mr.Moonlight en 12 Enero 2015, 17:12 pm
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.
|