sdc-File: Clocks werden erkannt, dann aber doch nicht.

Gast #3762637
Lesenswert?
• ▲
▼
Hallo.

Ich entwickle mit Altera QuartusII und in meinem FPGA-Design kommen 
folgende Takte vor:

Externer Takt mit 40MHz. Dieser wird mittels PLL in einem 100MHz-Takt, 
der den Systemtakt darstellt, gewandelt.

Mehrere Module (mit den FPGAs drauf) sind mittels 
DaisyChain-Verschaltung über eine serielle Schnittstelle verbunden. 
Genauer gesagt: Die Datenleitungen werden gedaisychained, der Takt der 
Schnittstelle erreicht alle Module einzeln.

Um Jitter durch die zueinander asynchron laufenden Module gering zu 
halten, musste ich den Takt der Schnittstelle (ich nenne es jetzt SCLK) 
als Clockdomain für den Kommunikationsteil verwenden damit die Module 
gleichzeitig die Daten weiterschieben.

Ich habe das vor längerer Zeit schon mal constrained, sodass es keine 
Timing-Verletzung gab.
Jetzt habe ich einige Module in einen eigenen Wrapper gesteckt, um nur 
diesen testen zu können. In diesen Modulen wird nur der Systemtakt 
verwendet. Das Kommunikationsmodul mit dem Clock-Domain-Crossing blieb 
unangetastet.

Ich staunte, als ich plötzlich
1.) mehr LE brauchte und
2.) das Timing nicht mehr passte.

Während der Synthese braucht er gleich viele Ressourcen, aber letztlich 
ändert sich das, da versucht wird das Timing zu schaffen, da es jetzt 
nicht mehr passt.

Ich dachte, dann dass es daran liegt, dass sich intern die Namen 
geändert haben und wollte das sdc-File neu machen bzw überarbeiten. 
Irgendwie bin ich gerade nicht imstande, dass zu tun:
1
# base clocks
2
create_clock -name { InClk_40MHz } -period 25.000 -waveform { 0.000 12.500 } [get_ports { InClk_40MHz }]
3
create_clock -name { ispiClk } -period 62.500 -waveform { 0.000 31.25 } [get_ports { ispiClk }] -add
4

5
derive_pll_clocks
6
derive_clock_uncertainty
7

8
# use the derived pll clock and name it "sysClk"
9
set sysClk { PLL_inst|altpll_component|pll|clk[0] }
10

11
# pfade trennen
12
set_clock_groups -exclusive -group { ispiClk } -group { InClk_40MHz }
13
set_clock_groups -exclusive -group { ispiClk } -group { PLL_inst|altpll_component|pll|clk[0] }

Wenn ich mir mit dem TimeQuestAnalyzer die Clocks reporten lasse, dann 
werden alle 3 Clocks aufgelistet. Als Warnung kommt aber beim Ausführen:

Warning: At least one of the filters had some problems and could not be 
matched.
  Warning: ispiClk could not be matched with a clock.
Warning: At least one of the filters had some problems and could not be 
matched.
  Warning: InClk_40MHz could not be matched with a clock.
Warning: Ignored assignment: set_clock_groups -exclusive -group 
[get_clocks { ispiClk }] -group [get_clocks { InClk_40MHz }]
  Warning: Argument -group with value [get_clocks { ispiClk }] contains 
zero elements
  Warning: Argument -group with value [get_clocks { InClk_40MHz }] 
contains zero elements


Auch wenn ich über die GUI mir die Constrains zusammenklicke, kommt das 
heraus. Ich habe mir einige Unterlagen dazu schon zu Gemüte geführt, 
allerdings nutzen mir auch die Examples nicht.

Ich werde mir mal einen Online-Kurs ansehen/wiederholen...
Mich hat das schon öfters verwundert mit den ganzen cells, pins, ports, 
usw. und wann man was verwenden darf/soll/muss.

Kann mir jemand mit mehr sdc-Erfahrung einen Tipp geben, wie ich das 
hinbekommen kann oder welche Unterlagen ich bemühen konnte?

Verwende ich derive_pll_clocks korrekt? Sprich kann ich nach dem 
Kommando das machen: set sysClk { PLL_inst|altpll_component|pll|clk[0] } 
?

LG, Matthias

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.