Red de conocimiento informático - Conocimiento sistemático - Ayúdenme a escribir un divisor de frecuencia en cascada usando VerilogHDL.

Ayúdenme a escribir un divisor de frecuencia en cascada usando VerilogHDL.

//Método 1

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