www.mikrocontroller.net

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


Autor: Anguel S. (anguel)
Datum:

Bewertung
0 lesenswert
nicht 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_man...) 
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.