Ayúdenme a escribir un divisor de frecuencia en cascada usando VerilogHDL.
Módulo NCLK(clk, rest, clk_);
Entrada clk, rest
Salida clk_;
reg [3:0]cnt, CNT_;
wire clk_10 = CNT[3];//División de frecuencia de 10 relojes principales
wire clk_ = CNT_ [3]; //División de 100 reloj principal
Siempre @(posedge clk or rest)
Iniciar
if(rest)CNT = 1 ' B0;
else if(CNT lt; 4 ' d 10)CNT = CNT 1 ' b 1;
else CNT = 1 ' B0;
Fin
siempre @(posedge clk_10 or rest)
start
if(rest)CNT_ = 1 ' B0;
si no (CNT_lt;4'd10)CNT_= CNT_1'b1;
else CNT_=1'B0;
Fin
Finalizar módulo
//Método 2: Primero crea un proyecto, ingrese el código fuente y genere el archivo del módulo bsf. Luego, la entrada de la primera etapa se usa como entrada, la salida de la primera etapa se conecta con la entrada de la segunda etapa, la salida de la segunda etapa se usa como salida y el terminal de reinicio se conecta entre sí como el terminal de reinicio.
Módulo NCLK(clk, rest, clk_);
Entrada clk, rest
Salida clk_;
reg[3 :0 ]CNT;
wire clk _ = CNT[3]; //10 división de frecuencia de reloj principal
Siempre @(posedge clk o rest)
iniciar
si(rest)CNT = 1' B0;
si no(CNT lt;4'd 10)CNT = CNT 1'b 1;
si no CNT = 1 ' B0;
Fin
Fin del módulo