Max schrieb:
> Hallo,
> also meine max. Taktfrequenz sind 27MHz, also recht wenig.
Wieso maximale Taktfrequenz? Hast du mehrere Takte?
> Constraints
> hab ich gesetzt (50MHz).
Over constraining ist schlecht, da unnötig optimiert wird.
> Alle Resets sind asynchron.
Wieso alle? Hast du mehrere Reset-Quellen?
Ein Reset ist ein Signal mit dem man ein FPGA-Design zu einem beliebigen
Zeitpunkt in einen "definierten" Zustand versetzen kann.
Daraus kann man ableiten, ein Reset braucht man nur, wenn sich das
Design in einem undefinierten Zustand befindet. Dann hat der Entwickler
Mist gebaut.
Die Tools der FPGA Hersteller erwarten synchrone Designs. Darum kann man
mit einem asynchronen Signal kein synchrones FPGA-Design in einen
definierten Zustand versetzen. Daraus folgt:
Ein gutes FPGA-Design braucht kein Reset und schon gar kein asynchronen.
In meinen Designs gibt es ein run-Signal, mit dem ich die FSMs verzögert
los laufen lasse, nach dem die DCMs/PLLs eingeschwungen sind.
> Habe ich einmal ein Bit-File
> generiert, dann funktioniert diese grundsätzlich nie (auch unabhängig
> vom Reset). Ich kann dann z.B. eine alte Bitfile wieder laden bei der es
> funktioniert hat und dann funktioniert es auch wieder.
Ich hatte auch mal den Effekt, dass bestimmte Designs funktionierten und
andere nicht. Am Ende lag es an der Stromversorgung, zu wenig Block-Cs.
Bei Anlauf des Designs wurde zu viel Strom gezogen und einige FSMs sind
in ungültige Zustände gerannt.
Tom