Forum: FPGA, VHDL & Co. Multi-Cycle Pfad zu FSM


von Anguel S. (anguel)


Lesenswert?

Hallo Leute!

Ich grübele seit einigen Tagen an meinem Design und bin mir nicht 
sicher, ob ich alles richtig mache.
Nehmen wir zwei VHDL Module:
Modul_1 @ 100 MHz
Modul_2 @ 8 MHz (= 125 ns Taktperiode) mit FSM.
Die Clocks für Modul_1 und Modul_2 werden aus dem Eingangs-Clock mit 
Hilfe von DCMs erzeugt. Da der Timing-Analyzer diese Pfade analysiert, 
gehe ich davon aus, dass er den Zusammenhang beider generierten Clocks 
richtig erkennt und dass kein Clock-Crossing nötig ist.
Wenn ich nun Signale von Modul_1 zu Modul_2 schicke und keine 
Constraints verwende, meckert der Xilinx Timing Analyzer, dass meine 
Timings nicht erfüllt sind. Soweit ok.
Nun ist es aber so, dass ich Modul_2 immer resette, wenn ich die 
Ausgangssignale von Modul_1 ändere und die FSM in Modul2 wertet diese 
Signale dann erst im 2. FSM-Zustand nach dem Reset aus. IMHO ist das 
also ein Multi-Cycle Pfad, da mehrere Taktzyklen vergehen, bis das 
Signal gelesen wird.
Meine eigentliche Frage ist nun, wie man am besten Constraints für 
diesen Pfad setzt. Am einfachsten wäre es mit einem TIG Constraint: NET 
"signal_von_modul_1_zu_modul_2" TIG; Was mir bei dieser Lösung jedoch 
nicht gefällt, ist dass man hier das Timing völlig ignoriert.
Also dachte ich da eher an eine Multi-Cycle Constraint, so wie im Timing 
Constraints UG 
(http://www.xilinx.com/support/documentation/sw_manuals/xilinx12_1/ug612.pdf) 
S.30 beschrieben (wobei die dort ein Clock-Enable Signal als Beispiel 
nehmen).
In meinem Fall hätte ich:
NET "signal_von_modul_1_zu_modul_2" TNM_NET = FFS "MC_GRP";
TIMESPEC TS_signal_von_modul_1_zu_modul_2 = FROM "MC_GRP" TO "MC_GRP" 
125ns;

Ich setze hier 125ns, was einem zusätzl. Taktzyklus @ 8 MHz entspricht.
Mache ich das richtig und sollte man eigentlich hier die DATAPATHONLY 
Option zusätzlich verwenden? Mir ist nicht ganz klar geworden, was diese 
genau in meinem Fall bewirken würde.
Jede Kritik an meinem Ansatz ist willkommen! :)

Grüße,
Anguel

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.