Ich versuche, mich gerade in die Simulation von Lattice Diamond 2 und Active-HDL 9.1 einzuarbeiten. Leider fehlt es noch an Wissen an allen Stellen (VHDL, neue Umgebung), so dass alles noch recht mühsam ist. Könnt Ihr mir bei folgenden Fragen weiterhelfen: 1) Ich arbeite mit VHDL. Ist es richtig, dass ich mit 3 Files arbeiten kann: a) einem für die Synthese und Simulation, in dem ich im Endeffekt die eigentliche Implementierung reinpacke b) einem nur für die Synthese, in dem ich die "Verdrahtung" der realen Hardware vornehme c) einem nur für die Simulation, in der die Testbench reinkommt. 2) Wenn ich diese 3 Files habe und jetzt meine Implementierung in der Simulation testen will, dann erzeuge ich als erstes in Lattice Diamond -> Process -> Map Design -> VHDL Simulation File und Lattice Diamond -> Process -> Export Files -> VHDL Simulation File Ich gehe davon aus, dass die Übersetzung in Lattice Diamond stattfindet? Was macht der Export? Oder brauch ich den gar nicht, wenn ich Active-HDL 9.1 von Lattice Diamond 2 aus aufrufe? 3) Für meine aktuelle Vorgehensweise habe ich jetzt mal beide Punkte angewählt (Map Design und Export Files). (Tools -> Simulation Wizard hatte ich bereits mal aufgerufen). Ich starte jetzt direkt Active-HDL durch Click auf den Button in Lattice Diamond. Active-HDL wird geöffnet. Dort wähle ich meine Projekt, dann Simulation -> Initialize Simulation. Jetzt fordert er mich auf, die Top-Level-Design-Unit auszuwählen. Ich wähle die Testbench aus und sehe meine (exportierten) Signale. Jetzt trage ich oben z.B. 20 ms ein und drücke Run (F5). Die Simulation scheint gelaufen zu sein. Ich wähle ein paar meiner Signale aus, rechte Maustaste, "Add to Waveform". Die Waveform-Darstellung erfolgt, aber noch leer, es sind aber schon irgendwie die Werte vorhanden aber keine Kurven. Gehe ich auf "<<" (Restart Simulation) und Run (F5), dann werden die Kurven aber dargestellt. Soweit so gut, die Simulation scheint grundsätzlich zu funktionieren. A) Wenn ich jetzt die Implementierung ändere, muss ich den ganzen langen Weg erneut machen, oder geht es schneller? In Active-HDL gibt es Workspace -> Compile Workspace. Kann man dies benutzen, oder muss man grundsätzlich den Weg via Lattice Diamond 2 gehen? B) Die Bedienung von Active-HDL, dass man im ersten Anlauf keine WAVE-Darstellung sieht, beim 2. Mal aber schon, schaut irgendwie auch komisch aus. Ist das normal? C) Ich habe die Waveform mal via Waveform -> Save to Macro exportiert. Damit geht es dann etwas schneller, naja. D) Kann man vielleicht in Lattice Diamond ändern, übersetzen und Active-HDL erkennt, dass die Source-Files (oder VHDL-Simulation-Files) geändert wurden und führt die Simulation von alleine wieder aus und zeichnet Kurven. Vermutlich aber nur eine Wunsch-Vorstellung? Vielleicht geht das ganze ja viel komfortabler und ich wähle einfach die falschen Punkte aus?
Eine Frage habe ich noch vergessen: 4) Ich habe z.B. eine Implementierung mit 2 Eingängen, 2 Ausgängen und zig internen Signalen. In der Testbench sehe ich (bei Port) nur die 2 Eingänge und 2 Ausgänge. Muss ich die internen Signale auch nach außen führen, damit ich sie in der Wave-Darstellung sehen kann? Eigentlich möchte ich sie aber nur in der Testbench sehen, in der realen Implementierung sollen sie nicht nach außen geführt sein. Wie macht man das am Besten?
Vorab: Ich verwende weder Lattice, noch Active-HDL. Aber die Prinzipien sollten grundsätzlich die gleichen sein. LatticeAnfänger schrieb: > 1) Ich arbeite mit VHDL. Ist es richtig, dass ich mit 3 Files > arbeiten kann: > a) einem für die Synthese und Simulation, in dem ich im Endeffekt > die eigentliche Implementierung reinpacke > b) einem nur für die Synthese, in dem ich die "Verdrahtung" > der realen Hardware vornehme > c) einem nur für die Simulation, in der die Testbench reinkommt. Die Dateien a) und b) würde ich für den Anfang zusammenlegen. In Deinem Fall brauchst Du für die Synthese a) und b). Falls Du Dein Gesamtsystem simulieren möchtest (und in aller Regel möchte man das), brauchst Du a), b) und c) für die Simulation. Um Module (wie a) zu simulieren, kann man eine weiter Testbench speziell für das Modul erstellen. Das kann aber recht aufwendig werden, wenn sich die Modulschnittstelle häufig ändert. > 2) Wenn ich diese 3 Files habe und jetzt meine Implementierung > in der Simulation testen will, Die häufigste (und schnellste) Simulation, ist die sogenannte funktionale Simulation. Dafür brauchst Du Lattice gar nicht, das sollte direkt mit ActiveHDL gehen. > dann erzeuge ich als erstes > in > Lattice Diamond -> Process -> Map Design -> VHDL Simulation File > und > Lattice Diamond -> Process -> Export Files -> VHDL Simulation File Mit diesen Aufrufen erzeugst Du Netzlisten, die Du natürlich auch simulieren kannst, aber in aller Regel gar nicht simulieren musst. > Ich gehe davon aus, dass die Übersetzung in Lattice Diamond stattfindet? Nein. ActiveHDL übersetzt sich die Quelltexte für die Simulation und Lattice Diamond übersetzt sich die Quelltexte (ohne Testbenches) für die Synthese. > Soweit so gut, die Simulation scheint grundsätzlich zu > funktionieren. Ja, klingt gut. > A) Wenn ich jetzt die Implementierung ändere, muss ich den ganzen > langen Weg erneut machen, oder geht es schneller? Die ausgewählten Waveforms sollten sich speichern lassen. Und vielleicht gibt es eine Möglichkeit zum Recompile. Das wäre dann der kürzere Weg. > In Active-HDL gibt es Workspace -> Compile Workspace. > Kann man dies benutzen, oder muss man grundsätzlich den Weg > via Lattice Diamond 2 gehen? Diamond brauchst Du nur zur Synthese und auch erst, wenn Deine funktionale Simulation zufriedenstellend läuft. > B) Die Bedienung von Active-HDL, dass man im ersten Anlauf > keine WAVE-Darstellung sieht, beim 2. Mal aber schon, > schaut irgendwie auch komisch aus. Ist das normal? Ja. Du kannst auch erst die Signale hinzufügen und dann auf "Run" drücken. Dann sollten die Signalformen gleich erscheinen. > D) Kann man vielleicht in Lattice Diamond ändern, > übersetzen und Active-HDL erkennt, dass die Source-Files > (oder VHDL-Simulation-Files) geändert wurden und > führt die Simulation von alleine wieder aus und zeichnet Kurven. > Vermutlich aber nur eine Wunsch-Vorstellung? Keine Ahnung. Klingt aber nach einem netten Feature. Duke
LatticeAnfänger schrieb: > Eine Frage habe ich noch vergessen: > > 4) Ich habe z.B. eine Implementierung mit 2 Eingängen, 2 Ausgängen > und zig internen Signalen. In der Testbench sehe ich (bei Port) > nur die 2 Eingänge und 2 Ausgänge. Muss ich die internen Signale > auch nach außen führen, damit ich sie in der Wave-Darstellung sehen > kann? Nein, üblicherweise kannst Du Dich durch Deine Designhierarchie klicken und Dir alle gewünschten internen Signale zur Wavedarstellung hinzufügen. 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.