mikrocontroller.net

Forum: FPGA, VHDL & Co. Post Map Simulation - Lattice / Active HDL


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Till V. (schlupp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hätte eine Frage zur Bedienung des Programms Active-HDL(Lattice 
Edition). Ich würde gerne eine Post Map Simulation durchführen und weiss 
nicht genau wie ich vorgehen soll (habe vor kurzem mit VHDL angefangen).

Nach dem Map-Prozess besitze ich zwei Files mit den Endungen .vho und 
.sdf.
Soweit ich verstanden habe enthält die Datei mit der Endung .sdf die 
Verzögerung der Logikgatter und die Datei mit der Endung .vho die 
Netzliste (die Verschaltung der Bauelemente).

Momentan gehe ich folgendermaßen vor:

1) Ich öffne das Active HDL-Programm
2) Ich lege ein neues Projekt an und füge die Dateien mit den Endungen 
.vho, .sdf und die Testbench aus der funktionellen Simulation hinzu.
3) Ich lege die Testbench als Toplevel-Entity Fest
4) Simulation - > Initialize Simulation
5) Rechtsklick auf die Top-Level-Entity -> Add to Waveform

Da ich die Testbench aus der Funktionellen Simulation verwende (das 
eigentliche VHDL-Programm ist als Component eingebunden) besitzt diese 
keinen Verweis auf die Netzliste im .vho File? Muss ich meine Testbench 
für die neue Simulation anpassen?

: Bearbeitet durch User
Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Till V. schrieb:
> Ich würde gerne eine Post Map Simulation durchführen
Zu deinem Problem kann ich allerdings leider nicht helfen, denn es liegt 
sicher schon über 15 Jahre zurück seit ich die letzte deratige 
Simulation gemacht habe.

Trotzdem (oder deshalb) stellt sich mir dei Frage:
Mit welchem Ziel machst du diese Simulation? Welche Fehler erhoffst du 
damit zu finden?

: Bearbeitet durch Moderator
Autor: Till V. (schlupp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich bin Student und will die Simulation einfach einmal ausführen (aus 
Interesse). Bei meinem Beispiel handelt es sich auch nur um ein 
einfaches Schieberegister.

: Bearbeitet durch User
Autor: Vancouver (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Till V. schrieb:
> Muss ich meine Testbench
> für die neue Simulation anpassen?

Eigentlich nicht, die Entity ist ja die gleiche. Wenn der Simulator das 
vho-Format versteht, sollte das gehen. Funktioniert es denn, so wie du 
es geschildert hast?

Nur die Signalnamen innerhalb des Moduls haben sich durch die Synthese 
und das Mapping wahrscheinlich geändert.

Autor: Till V. (schlupp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

und schonmal vielen Dank für die Antworten. Ich habe es bisher versäumt 
(habe sie auch irgendwie übersehen...) folgende Warnung durchzugeben:

# ELBREAD: Warning: ELBREAD_0080 sipo_register_tb.vhd (125): Design unit 
behavioural:SIPO_Register_NEU instantiated in 
test.sipo_register_tb(testbench) not found in searched libraries: test.

Die Simulation startet, aber die Diagramme bleiben auf Undefiniert.

Die Testbench versucht meine VHDL-Beschreibung des Schieberegisters 
(SIPO_Regsiter_NEU) zu laden. Aber eigentlich möchte ich ja die 
Netzliste aus dem .vho File benutzen. Muss ich irgendwo explizit 
auswählen, dass es sich um eine Gate-Level-Simulation handelt?

: Bearbeitet durch User
Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Möglicherweise muß die vho-Datei in vhd umbenannt werden.
Vorher sollte die Originaldatei irgendwohin weggesicher werden.

DUke

Autor: Till V. (schlupp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nur die Signalnamen innerhalb des Moduls haben sich durch die Synthese
> und das Mapping wahrscheinlich geändert.

Nicht nur die Namen... sondern auch die Anzahl der Ein- und 
Ausgangssignale unterscheidet sich. Ich werde jetzt versuchen das 
eigentliche Programm mit in die Testbench zu schreiben, statt dieses 
durch eine Komponente aufzurufen.

Duke Scarring schrieb:

> Möglicherweise muß die vho-Datei in vhd umbenannt werden.

Das hat leider auch nicht funktioniert.

Ich denke mit dem Hinweis, dass man außer diesen drei Dateien nichts 
anderes mehr benötigt, werde ich das Problem wohl irgendwann lösen :)

: Bearbeitet durch User
Autor: Vancouver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schätze mal, du musst dem Simulator klarmachen, dass er eine 
Netzliste für die Komponente bekommt, und keinen VHDL-Code. Vielleicht 
hilft dir das weiter:

https://www.intel.com/content/www/us/en/programmable/quartushelp/15.1/index.htm#eda/simulation/activeHDL/eda_pro_aldec_vhdl_sim_d4193e763.htm

Das ist zwar über Quartus, aber die verwenden auch ActiveHDL soweit ich 
weiß.

>Ich werde jetzt versuchen das
>eigentliche Programm mit in die Testbench zu schreiben, statt dieses
>durch eine Komponente aufzurufen.

Nein, das versuchst du nicht. Das Schieberegsiter ist eine 
Hardwarebeschreibung, de irgendwann einmal im FPGA instanziiert werden 
soll, und die Testbench ist eine reine Simulationsumgebung. Das musst du 
sauber getrennt halten, denn die Testbench kommt nicht mit in den FPGA. 
Denk bitte nicht in Softwarekategorien, das geht schief bei VHDL.

Autor: Till V. (schlupp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vancouver schrieb:
> Ich schätze mal, du musst dem Simulator klarmachen, dass er eine
> Netzliste für die Komponente bekommt, und keinen VHDL-Code. Vielleicht
> hilft dir das weiter:
>
> 
https://www.intel.com/content/www/us/en/programmable/quartushelp/15.1/index.htm#eda/simulation/activeHDL/eda_pro_aldec_vhdl_sim_d4193e763.htm

Guten Morgen,

ich habe es jetzt geschafft. Der Link hat mir sehr geholfen. Zusätzlich 
musste ich in der Testbench den Eintrag
"use entity work.Name(behavioral)"zu "use entity work.Name(structural)" 
ändern (Modul liegt nach Synthese im .vho File als structural vor).


Danke für die Hilfe

Autor: Christophz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Till V. schrieb:
> ich habe es jetzt geschafft. Der Link hat mir sehr geholfen. Zusätzlich
> musste ich in der Testbench den Eintrag
> "use entity work.Name(behavioral)"zu "use entity work.Name(structural)"
> ändern (Modul liegt nach Synthese im .vho File als structural vor).

Es liegt nicht als "structural" vor, sondern das ist simple der Name den 
du bzw. das Tool der Architecture gegeben hat.

Beim Instanzieren von Komponenten ist es ungewöhnlich, dass man den 
Architekturnamen mitgibt (Das ist ja etwas internes, das ändern könnte 
ohne dass sich am Interface - die Entity - etwas ändert). Ein "use 
entity work.Name" sollte für beide Simulationsarten funktionieren.

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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.