Forum: FPGA, VHDL & Co. CLK-Delay kompensieren


von Thomas P. (pototschnig)


Lesenswert?

Hallo,

ich beschäftige mich gerade mit den Überlegungen, wie man einen ARM7 
(z.B. SAM7SE512) an ein FPGA über den static memory controller anbindet.

Die Timings im Datenblatt geben die Signale für den Speicherzugriff alle 
in Abhängigkeit des Master-Clocks MCK an, den man aber von außen nicht 
bekommt. Laut dem at91.com-Forum kann man den SDRAM-Clock SDCK 
missbrauchen, der folgende Parameter hat:
1
(1) Symbol   | (2) Parameter                   | (3) Minimum | (4) Maximum |
2
(1) SDRAMCxx | (2) MCK Rising to SDCK Rising   | (3) 5.381   | (4) 8.038   |
3
(1) SDRAMCxx | (2) MCK Falling to SDCK Falling | (3) 4.832   | (4) 7.219   |

Wenn ich das richtig verstehe, dann kommt der SDCK um 5 bis 8ns zuspät. 
Kann man über Constraints (z.B. Altera oder Xilinx) beim 
Synthesewerkzeug einstellen, dass bestimmte Signale verzögert werden, 
bzw dem Werkzeug mitteilen, dass das CLK-Signal später kommt?

Für Hilfe wäre ich sehr dankbar :-)

Mfg
Thomas Pototschnig

von Kest (Gast)


Lesenswert?

Aber klar kann man das einstellen.

Am einfachsten ist aber (z.B. bei Altera), die Clock um eine bestimmte 
Phase zu schieben (mittels PLL und dank MegaWizzard ist es ein 
Kinderspiel). Ab da behandeltst Du alle Deine Signale als Synchrone 
Signale und musst Dich um nichts mehr kümmern :-)


Grüße,

Kest

von Thomas P. (pototschnig)


Lesenswert?

Kest wrote:
> Aber klar kann man das einstellen.
>
> Am einfachsten ist aber (z.B. bei Altera), die Clock um eine bestimmte
> Phase zu schieben (mittels PLL und dank MegaWizzard ist es ein
> Kinderspiel). Ab da behandeltst Du alle Deine Signale als Synchrone
> Signale und musst Dich um nichts mehr kümmern :-)

Danke für den Tipp, das werd ich mir später mal ankucken. Jo, genau das 
ist der Sinn, weil ich dann keine asynchronen Signale mehr vom memory 
controller kriege und alles viel einfacher wird :-)

Mfg
Thomas Pototschnig

von Captain Jumbo (Gast)


Lesenswert?

Geht das wirklich über Constraints ?
Die SetupTime (Pin Input) regelt doch die MAXIMALE Dauer. Mir wäre nicht 
bewusst, daß man damit eine MINIMALE Verzögerung einstellen könnte, die 
die Synthese dann faktisch erzeugt! Man kann doch nur die Input Delay 
Stufen nutzen und einige ns schinden.

Was spricht denn gegen ein saubere Lösung mit einem Eintakten der 
Signale mit 6ns = 160 MHz ? Dann erwischt man die Flanke doch in jedem 
Fall, oder ?

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.