mikrocontroller.net

Forum: FPGA, VHDL & Co. 2 Fragen - Frühstart und Maximalfrequenz


Autor: Christian Peters (kron)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

zwei Fragen sind bei mir gerade aufgekommen.

1. Nach der Synthese mit der Xilinx ISE bekommt man ja schonmal eine 
grobe Aussage, wie hoch die maximale Clockfrequenz sein darf. Nun habe 
ich in einem Design einen DCM, der die Clock verdoppelt. Gilt diese, 
natürlich unverbindliche, Maximalfrequenz für die schon gedoppelte, oder 
für die einfache Ursprungsfrequenz? Also Beispiel: CLK_IN -> 40 MHZ, 
CLK_2x -> 80 MHz, Max. Frequenz: 68 MHz. Heißt das, dass CLK_IN max. 68 
MHz haben darf, oder heißt es, dass es schon eng wird mit der CLK_2x?

2. Ich hatte kürzlich ein sehr merkwürdiges Problem/Phänomen. Ich habe 
bei einem Design einen Adressbus, an dem mehrere Komponenten hängen. 
Diese teilen sich den Bus über die höchsten Adressbits. Normalerweise 
ist es natürlich so, dass bei jeder Adresse nur ein Gerät angesprochen 
wird. Jetzt war es aber durch eine spontane Umschichtung von mehreren 
Sachen kurz so, dass sowohl das FPGA einen bestimmten Adressbereich 
bediente, als auch ein CPLD, welches dafür verantwortlich ist, das FPGA 
beim Start zu laden.

Was passierte war, dass immer kurz vor dem Ende der Übertragung der 
FPGA-Firmware falsche Ready-Signale auftauchten, und dann sagte das FPGA 
CRC-Fehler. Das war aber noch bevor das DONE-Bit high ging, und lange 
bevor die Outputs im FPGA aktiviert werden. Auf Grund der Art des 
falschen Readys (beim CPLD geht es durch einen Pullup von 0 auf 1, beim 
FPGA wird es aktiv auf 1 gezogen) steht fest, dass das FPGA bei seinem 
eigenen Ladeprozess am Ende schon dazwischengefunkt hat.

Mal abgesehen von der Tatsache, dass das ein sehr spezieller und 
normalerweise nie auftretender Fehler ist, der sich wie gesagt nur durch 
die Doppelbelegung zweier Adressen ergab, wie kann es sein, dass das 
FPGA schon so früh zuckt und agiert?! Das ist doch der Sinn des 
Startup-Prozesses, dass man das kontrolliert und in der Hand hat, wann 
es losgeht?!

Autor: Oliver Bründler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu deiner ersten Frage:
Die Maximalfrequenz ist der Kehrwert der Verzögerungszeit des längsten 
Pfades

f_max = 1 / T_lp

Also darfst du keinen Teil der Schaltung schneller takten. Auch nicht 
wenn du einen Taktverdoppler dazwischenhängst. Um eine exakte 
Timing-Analyse zu erreichen empfehle ich dir aber für jeden clock ein 
constraint zu machen, wo du due benötigte Frequenz angibst.

Autor: Xenu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu Frage 1.:

Die angegebene Maximalfrequenz ist die Ursprungsfrequenz CLK_IN.
Das kannst Du ganz leicht selbst herausfinden, indem Du einfach die DCM 
weglässt. Dann sollte sich die Angabe der Maximalfrequenz verdoppeln.

Autor: Nephilim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zu der ersten frage würde ich nicht sagen

"Also darfst du keinen Teil der Schaltung schneller takten."

der kritische pfad, welcher die längste kombinatorische kette hat darf 
maximal mit den 68MHz getaktet werden. andere stellen im design können 
ohne weiteres sicher auch mit den 80Mhz getaktet werden. was es jetzt 
rauszufinden gilt ist, welcher schaltungsteil deinen speed derart 
einschränkt und ob dort die 80MHz als Takt anliegen.

Autor: A. F. (artur-f) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> "Also darfst du keinen Teil der Schaltung schneller takten."
Das stimmt nicht ganz, ISE gibt eine Schätzung aus. Könnte in der Praxis 
auch schneller gehen.

Autor: Oliver Bründler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus meiner sicht wäre die einzige saubere lösung für jeden Clock ein 
eigenes Timing-Constraing zu machen, in dem du die benötigte 
Maximalfrequenz angibtst. Dann Siehst du ob alles klappt oder nicht bzw. 
das Tool kann auch darauf hin optimieren.

Mit ISE kenn ich mich nicht aus (bin eigentlich Altera User) aber meines 
wissens geben alle Synthesetools Worst-Case Werte und keine 
"Schätzungen" aus. Klar läuft das bei Zimmertemperatur normalerweise 
schneller, da dies aber nicht garantiert ist sollte man es auch nicht so 
betreiben. Wenn der Hersteller am Baustein was ändert (z.B. einen Shrink 
vornimmt) kann das ganze dann plötzlich nicht mehr laufen.

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.