diviseur CLK>

R

rsrinivas

Guest
Salut
J'ai besoin de convertir une horloge MHZ 50 dans 44,1 horloge KHz.
Un code Verilog synthétisable à être mis dans un FPGA.
pls suggèrent.
Si j'utilise un registre (10 bits) je peux diviser la CLK en 48,8 KHz.

 
Si vous utilisez ISE, dix, vous pouvez ajouter un DCM (Digital Clock Manager) du générateur de base IP

DCM ont un synthétiseur d'horloge, vous entrez dans la fréquence d'horloge d'entrée et la sortie désirée

 
Ce ratio est quelque peu maladroit, mais vous pouvez le faire dans un FPGA Xilinx avec deux RDR plus un diviseur simple.(Attention, la cascade de deux CLKFX RDR n'est pas une bonne idée à cause de la gigue composé.) Les paramètres DCM peut varier en fonction du FPGA que vous utilisez.

Cela fonctionne avec un Spartan-3 compilé avec ISE 8.1.03i:
Code:

Haut module (clk50M, clk44100);

entrée clk50M;

clkadcm fil, clka, verrouillé;

reg [04:00 reset] = 0;

clkb fil;

reg [09:00 count] = 0;

sortie reg clk44100 = 0;/ / Synthétiser 50 MHz * 21/25 * 21/25 / 800 = 44100 HzDCM dcm1 (. CLKIN (clk50M). TVD (1'b0). CLKFX (clkadcm). LOCKED (verrouillé));

dcm1.CLK_FEEDBACK defparam = "none";

dcm1.CLKFX_MULTIPLY defparam = 21;

dcm1.CLKFX_DIVIDE defparam = 25;

defparam dcm1.CLKIN_PERIOD 20,0 =;

dcm1.DFS_FREQUENCY_MODE defparam = "bas";BUFGMUX BUF1 (. I0 (clkadcm). S (1'b0). O (clka));toujours @ (posedge clka)

<Reset = (reset, verrouillé);DCM dcm2 (. CLKIN (clka). RST (reset ~ [4]). CLKFX (clkb). LOCKED ());

dcm2.CLK_FEEDBACK defparam = "none";

dcm2.CLKFX_MULTIPLY defparam = 21;

dcm2.CLKFX_DIVIDE defparam = 25;

defparam dcm2.CLKIN_PERIOD 23,8 =;

dcm2.DFS_FREQUENCY_MODE defparam = "bas";toujours @ (clkb posedge) commencent

<Count =! Monsieur le comte?
799: nombre - 1;

clk44100 <=! comte;

fin

endmodule
 

Welcome to EDABoard.com

Sponsor

Back
Top