Forum: FPGA, VHDL & Co. Xilinx Synthese


von Danni (Gast)


Lesenswert?

hi,

ich hab ein vhdl beschreibung die ich leider nicht direkt auf der 
Hardware testen kann ( is in der schule) so

so nun meine frage
wenn die synthese erfolgreich ist...heisst das, daß prog ist in ordnung 
und läuft auch so auf der hardware? und was ist der unterschied zwischen 
der Behaviour simulation und post-route simulation?

lg danni

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> daß prog ist in ordnung und läuft auch so auf der hardware?
Nein, das heißt nur, daß die FFs und LUTs im FPGA wie gewünscht 
verdrahtet werden konnten.
Wenn du z.B. asynchrone Eingänge nicht korrekt eingetaktet hast, wirst 
du zwar ein Design haben, das fast immer läuft, aber manchmal komische 
Sachen macht.
Solche Fehler findest du im Übrigen mit einer Verhaltenssimulstion auch 
nicht heraus, weil dort selbst bei einer krassen Setup/Hold-Verletzung 
immer ein definiertes (also immer das gleiche) Vehalten herauskommt.

> und was ist der unterschied zwischen
> der Behaviour simulation und post-route simulation?
Die Verhaltenssimulation enthält keine Laufzeitinformationen 
(Verdrahtung, Logik, LUTs), in der Post-Route Simulation wird das 
schlechtest mögliche Zeitverhalten des FPGAs verwendet. Die Rechenzeit 
für die Post-Route Simulation ist bedeutend höher, bringt aber für das 
reale Leben gar nichts.
Hier ist eine (manuelle) Analyse des Designs anhand der kritischen Pfade 
im Static-Timing-Report wesentlich aufschlussreicher.

BTW:
Du schreibst kein Programm für ein FPGA,
sondern du beschreibst ein gewünschtes Hardwareverhalten.

von danni (Gast)


Lesenswert?

danke für die schnelle antwort

jetzt sehe ich da etwas durch, wie genau meinst du das mit dem 
eintakten?

lg danni

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

danni wrote:
> wie genau meinst du das mit dem eintakten?
Heutzutage macht man (oder versucht es zumindest) snychrone 
FPGA-Designs.
D.h. du hast auf dem FPGA (im Idealfall) genau 1 Takt (den globalen 
Mastertakt). Mit jeder steigenden Taktflanke dieses Taktes passiert 
etwas und dazwischen ist Zeit für die Kombinatorik und die Verdrahtung. 
Bis zur nächsten steigenden Taktflanke.

Wenn du externe, also asynchrone Signale im FPGA verwenden willst, mußt 
du die über 2 FFs schicken, damit du sporadischen Problemem durch 
Metastabilität entgehst (wg. Verletzung der tsu/th). Das ist ganz gern 
der Fall, wenn das Design eigentlich läuft, sich aber einmal pro 
Minute/Stunde/Tag/Woche seltsam verhält.

von Duke Scarring (Gast)


Lesenswert?

@danni:
Für die Simulation bietet es sich an, für alle Komponenten (ADC, DAC, 
I2C, LCD etc.) die mit dem FPGA verbunden sind ein VHDL-Modell zu 
erstellen.
Dieses Modell muß nicht synthetisierbar sein, aber es könnte z.B. das 
Timing der Komponente prüfen bzw. nachbilden.

Für eine System/Board-Simulation verbindet man dann alle Modelle mit dem 
FPGA/top, wie in der "echten" Schaltung.

Mit dieser Methode erhält man wiederverwendbare/austauschbare 
Simulationsmodelle und ein Stück mehr Sicherheit, daß es auch auf der 
realen Hardware gehen könnte.

Duke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.