mikrocontroller.net

Forum: FPGA, VHDL & Co. Grundsätzliche Xilinx-Constraints bei 2 Takten


Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe ein Problem mit Xilinx:

Eine Taktdomain holt und verbeitet mit 100 MHz Daten und schiebt sie an 
passende Stellen eines blockrams, wo sie von einer anderen domain 
abgeholt werden. Die Daten laufen so ein, daß sich die Takte beim Lesen 
und Schreiben ruhig überschneiden können, ohne dass es zu Problemen 
kommt.

Es geht jetzt einzig darum, dass das design überhaupt synthetisiert.

Bevor ich den Lesezwei drin hatte lief das design auf 130 MHz - 100 sind 
wie gesagt benötigt. Der Leseteil alleine synthetisiert sogar auf 155 
MHz, weil es nur Zähler sind, die die Blockrams treiben und Daten auf 
Ports schieben.

Wenn ich beides synthetisiere, komme ich auf 80 MHz :-(

Sicher hat das damit zu tun, dass  sich die beiden Takte "sehen" und die 
Synthese es nicht geschnallt bekommt, daß einfach in Ruhe zu lassen.

Bei Altera spezifiziere ich da immer CUT TIMING PATH zwischen den beiden 
Takten und Ruhe ist.

Wie geht das bei Xilinx?

Die Anleitung brachte mich auf False-Path und einen komischen 
Gruppenkonstrukt in der Anleitung.

NET "clk_80" TNM_NET = FFS "GRP_80";
NET "clk_100" TNM_NET = FFS "GRP_100";
TIMESPEC TS_CUT = FROM "GRP_80" TO "GRP_100" TIG;

Kann das jemand erklären, was das heisst und wie es funktioniert?

Meine Takte kommen dabei aus einer DCM, muss ich sagen:

Inst_power_dcm: power_dcm PORT MAP
(
 CLKIN_IN   => CLK_IN,
 CLKFX_OUT   => clk_100,
 CLKIN_IBUFG_OUT => open,
 CLK0_OUT   => clk_80,
);

wobei die 100 genau 5/4 der 80 sind. 80 kommen aus dem OSC.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chris schrieb:
> NET "clk_80" TNM_NET = FFS "GRP_80";
Nimm alle FFs, die auf clk_80 hören in eine Gruppe GRP_80

> NET "clk_100" TNM_NET = FFS "GRP_100";
Nimm alle FFs, die auf clk_100 hören in eine Gruppe GRP_100

> TIMESPEC TS_CUT = FROM "GRP_80" TO "GRP_100" TIG;
Ignoriere Timingbeziehungen zwischen den beiden Gruppen

Das ist hier der Fall:
1. Assuming signal clk_in drives synchronous elements beyond the DCM
http://www.xilinx.com/support/answers/34348.htm

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schon mal soweit. Ich habe mir die Seite angesehen:

Muss ich das nur für die internen Takte, also die Ausgänge der DCM 
machen, oder auch noch die eingehende Clock miteinbeziehen?

Eigentlich nicht, oder?

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.