Forum: FPGA, VHDL & Co. Mit DCM den Takt der SystemClock generieren


von GAST (Gast)


Lesenswert?

Moin,

ich arbeite mit einem Virtex 4 Entwicklungsboard und möchte den 
SRAMansteuern. Jetzt habé ich das Problem, dass ich die SRAM CLK im FPGA 
generieren muss, diese aber dann nicht mehr 100MHz sondern nur noch 
50MHz hat. Kann ich irgendwie mit einer DCM wieder die 100MHZ 
generieren???
Ein SRAm der nur mit 50MHz CLK arbeitet ist mir etwas zu langsam.

von amin (Gast)


Lesenswert?

Hallo,

also Du willst einfach nur den Takt von 50MHz auf 100MHz verdoppeln ?

Das geht geht mit einer DCM, welche Du im mhs File folgendermasen 
konfigurierst:

BEGIN dcm_module
 PARAMETER INSTANCE = dcm_0
 PARAMETER HW_VER = 1.00.c
 PARAMETER C_CLKFX_MULTIPLY = 2
 PARAMETER C_CLKIN_PERIOD = 20.000000
 PARAMETER C_CLKFX_DIVIDE = 1
 PORT CLKIN = clk_50_mhz
 PORT CLKFX = clk_100_mhz
END

wobei clk_50_mhz dein alter 50 MHz Takt ist und der clk_100_mhz dein 
neuer 100 MHz Takt.

von GAST (Gast)


Lesenswert?

Verdoppeln, ja! Aber die System CLK (100MHz) auf 200MHz, damit mein SRAM 
ein 100MHz Takt bekommt.

von Christian R. (supachris)


Lesenswert?

Benutz doch am besten den Core-Generator, da kann man das alles per 
Wizzard einstellen.

von Jan M. (mueschel)


Lesenswert?

Dein interner Takt ist 100 MHz und dein SRAM soll ebenfalls mit 100 MHz 
laufen? Wozu brauchst du dann einen Taktverdoppler?

von amin (Gast)


Lesenswert?

das ändert die DCM einstellung nur minimal:

BEGIN dcm_module
 PARAMETER INSTANCE = dcm_0
 PARAMETER HW_VER = 1.00.c
 PARAMETER C_CLKFX_MULTIPLY = 2
 PARAMETER C_CLKIN_PERIOD = 10.000000
 PARAMETER C_CLKFX_DIVIDE = 1
 PORT CLKIN = clk_100_mhz
 PORT CLKFX = clk_200_mhz
END

so bekommst Du aus 100MHz 200MHz....

von GAST (Gast)


Lesenswert?

Ich brauche einen Taktverdoppler, da ich den Takt für das FPGA nicht 
direkt für den SARM abgreifen kann. Zumindest habe ich es noch nihct 
hinbekommen!

von Jan M. (mueschel)


Lesenswert?

Das direkte benutzen des internen Taktes stellt normalerweise kein 
allzugrosses Problem da, wenn man ein ordentliches timing hinbekommt. 
Poste doch mal deinen Ansatz.

von GAST (Gast)


Lesenswert?

Ich arbeite mit dem Xilinx Blockset unter Simulink. D.h. ich scgreibe 
selbst keinen VHDL Code, sondern lege mir mit den Xilinx Blöcken ein 
Modell zusammen. VHDL steckt dahinter.
ICh weiß also nicht wie ich den Takt in mein Modell integrieren soll. 
Momentan habe ich ienfach einen CNTR der immer 0 und 1 zählt. Dadurch 
halbiert sich ja auch der Takt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.