Grundsätzliche Xilinx-Constraints bei 2 Takten

Gast #1947348
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.
Moderator (Firma: Titel) Persönliche Seite #1947469
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
Gast #1948723
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren