Hallo zusammen
Ich würde gerne das SDRAM auf dem DE0 Board mittels Whishbone Interface
an einen NEO430 anschliessen und einen gewissen Bereich des RAMs als VGA
Buffer verwenden.
Der NEO430 soll selbst kein RAM des SDRAMs verwenden sondern nur
Blockram.
Daher soll das SDRAM lediglich als VGA speicher dienen.
Nun die frage:
Ich habe das ganze mal aufgesetzt mit eigenem Controller fürs RAM und
mit einer PLL mit 180° Phase Shift für den SDRAM Takt. Scheint zu
funktionieren, soweit ich dies bisher getestet habe (hab bisher nur das
Memory an sich getestet. Ohne Whishbone etc. )
Kann mir jemand etwas behilflich sein, was die constraints anbelangt?
Ich habe mir schon einige Dokumente und Videos zum Thema angeschaut aber
bisher noch nicht so richtig herausgefunden, wass ich genau angeben
muss. Der Hintergrund habe ich jedoch verstanden mit den Setup and Hold
Zeiten.
In einem anderen Thread wird dazu geraten als minimum folgenden Eintrag
zu verwenden:
1 | create_clock -name {CLOCK_50} -period 20.000 [get_ports {CLOCK_50}]
|
2 | derive_pll_clocks
|
Soll offenbar die Abhängigkeiten der PLL zum Grundtakt sicherstellen?
Wenn ich es richtig verstanden habe, dann sieht meine Übertragung ja wie
folgt aus:
FPGA -> CLK, CAS, RAS etc. (Delay 1) -> RAM -> Data Out etc. (Delay 2)
-> FPGA
Also eigentlich die Laufzeit der Leitungen auf dem Board *2
Wobei das Timing ja eigentlich unterschiedlich ist.
Wenn ich nur Daten ans RAM sende also z.B. Speichern, dann ist es nur
Delay 1. Wenn ich Daten auslese dann ist es Delay 1 + Delay 2.
Nun stellt sich mir die Frage, wie ich dies im SDC abbilden kann/soll?
An dieser Stelle wäre ich froh um Hilfe.
Danke schonmal.