www.mikrocontroller.net

Forum: FPGA, VHDL & Co. CLOCK_SIGNAL constraint


Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.
neues "Prblem" bei der Synthese. Habe einen Taktteiler in meinem
Design, der den clk runterteilt, und dann für die FSM benutzt wird.
Bei der Synthese erhalte ich folgende Warnung:

'...(*) This 1 clock signal(s are generated by combinatorial logic,
and XST is not able to identify which are the primary clock signals.
Please use the CLOCK_SIGNAL constraint to specify the clock signal(s)
generated by combinatorial logic...'

Daraufhin habe ich in der Constraints Anleitung nachgescheut und
folgende Zeilen in mein Design eingefügt. Trotzdem erhalte ich
immernoch die Warnung. Die Synthese läuft zwar durch und ich kann das
Programm dann auch auf den FPGA spielen, aber stören tut mich das
trotzdem.
Hat da jemand nen Hinweis, was ich falsch gemacht habe?

Grüße
T.M.
-- Beginn für Synthese
attribute clock_signal : string;
attribute clock_signal of clk : signal is "yes";
attribute buffer_type : string;
attribute buffer_type of clk_geteilt : signal is "{none}";
-- Ende

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achso, folgende Zeile hatte ich statt der 3. oben auch schon probiert:
attribute clock_signal of clk_geteilt : signal is "yes";
Klang nach der Warnung nach zu urteilen auch logischer, weil dieses
Signal ja das durch eine Kombinatorik erzeugte ist. Funzte trotzdem
nicht.

Grüße
T.M.

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab jetzt was im Design geändert und die Warnung is weg :-)
Nur noch:
"...INFO:Xst:2169 - HDL ADVISOR - Some clock signals were not
automatically buffered by XST with BUFG/BUFR resources. Please use the
buffer_type constraint in order to insert these buffers to the clock
signals to help prevent skew problems..."
aber das dürfte nicht so schlimm sein, oder?

Grüße
T.M.

Autor: Ines (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo T.M.,

prinzipiell sollte man Clock Signale nicht einfach runtertakten, es sei
denn man nutzt dafür vorgesehene PLLs oder DCMs oder so. Das Problem ist
nämlich, dass Dein erzeugtes Clock-Signal nicht als solches erkannt
wird, und deshalb auch kein Clock-Netz verwendet wird. D.h. Du bekommst
Laufzeitunterschiede, die gerade bei einem Clock-Signal net so toll
sind.

Probier's doch mal anders. Lege sowohl Dein generiertes Signal als
auch den ursprünglichen Clock an Deine State Machine an. Vorausgesetzt
die High-Phase vom runtergeteilten Clock ist max. 1 Orginal-Clock-Takt
lang (z.B. wenn Du die Frequenz nur durch 2 geteilt hast, ansonsten
musst Du das Signal halt anpassen), kannst Du das generierte Signal als
Clock-Enable verwenden. Alles klar?

Gruß
Ines

Autor: Jörn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine andere Möglichkeit ist noch alle FF mit dem selben Takt zu
betreiben und die FF, die mit dem niedrigeren Takt laufen sollen mit
einem Enable zu versehen. Wobei das Enablesignal von einem Taktteiler
generiert wird.

Gruß Jörn

Autor: T.M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Enable mache ich so
if clk'event and clk = '1' then
  if clk_enable = '1' then
    FF_aus <= FF_ein;
  end if;
end if;
Sehe ich das richtig?

Autor: Ines (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja!

Ines

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.