Estoy confundido con la generación de una onda cuadrada de frecuencia específica y un ciclo de trabajo con Verilog y volcado al kit FPGA. ¿Alguien puede aclarar cómo se deriva la frecuencia del reloj? ¿Qué bit se selecciona al utilizar la frecuencia de reloj derivada? Aquí hay un código de ejemplo para generar una onda cuadrada de 1 KHz con un ciclo de trabajo del 50%. ¿Qué modificaciones deben realizarse para generar una onda cuadrada de frecuencia de 2 KHz y un ciclo de trabajo del 40% en el presente código?
module square_wave(clk,rst,dac_out);
input clk;
input rst;
output reg [0:7] dac_out;
reg [7:0] temp;
reg [7:0] counter;
always @(posedge clk)
begin
temp <= temp + 1'b1;
end
always @(posedge temp[3])
begin
if (rst)
begin
counter <=0;
end
else
counter<=counter + 1'b1;
end
always @*
begin
if (counter<=127)
dac_out=8'd1;
else
dac_out=8'd0;
end
endmodule