Forum: FPGA, VHDL & Co. VIVADO HLS simulation in Modelsim PE


von Andy N. (jtani)


Lesenswert?

Hallo Zusammen,
bisher habe ich in ISE 13.3 gearbeitet. Alles war gut. Die Simulation 
bzw. das automatische Generieren der Testbench (wrapper) und der 
.do-Files funktionierte gut.
Man brauchte nur noch einige Anpassungen (wave.do, runtime, Stimulus) 
vornehmen und konnte sehr schön simulieren/analysieren.

Nun ist in HLS irgendwie alles anders. Da gibt es nun einige Buttons in 
der GUI, aber auch die tcl-Konsole. In der man z.B. die Simulation 
Librarys händisch kompilieren muss. Und das für mich seltsamste: in 
vivado_hls gibt es KEINE tcl-console...???
Das wäre ja gar nicht so schlimm. Fürchterlich ist halt, dass ein 
Umsteiger keine vernünftige Anleitung zum Design-Flow bekommt. Ich habe 
zumindest keine gefunden.

Mein Konkretes Problem, bei dem ich hänge:
- ich habe ein neues HLS-Projekt erstellt.
- es soll ein einfacher Counter sein, der endlos vor sich hin zählt...
- die Testbench mit main() und den darin enthaltenen Stimulus habe ich 
auch erzeugt
- nun möchte ich diesen Counter simulieren und drück auf "run C/RTL 
Cosimulation"
- Als Simulator wähle ich Modelsim. RTL-Selection: VHDL. Options: 
Setup-Only
- nun wird der sim-Ordner und der darin enthaltene VHDL-Ordner erstellt.
- Soweit, sogut.
- Aber wie geht es jetzt weiter? Wie kann ich nun den Modelsim laden? 
Wenn ich mir was wünschen dürfte, dann gäbe es einen Button (wie in 
ISE), der den Modelsim automatisch öffnet... Gibt es aber nicht :-(

Kann mir jemand ein paar gute Links/Videos/Tutorials zum Thema nennen?
Ich suche nun schon seit einigen Tagen und komme zu keinem sinnvollem 
Ergebnis.

Viele Grüße,

Andreas

von Ingenieur mit Verstand (Gast)


Lesenswert?

Immer, wenn ich diese Art von FPGA-Fragen hier sehe, komme ich ins 
Grübeln. Da müht sich jemand mit einer komplizierten tool chain ab, um 
einen lumpigen counter ins Laufen zu kriegen und schafft es nicht 
alleine.

Davon ausgehend, dass es kein Anfänger ist, er denken und lesen kann und 
sicher auch schon Unterstützung vom Hersteller angefragt hat, scheint 
moderne FPGA-Programmierung doch insgesamt auf sehr tönernen Füssen 
stehen, muss ich feststellen.

Als Projektverantwortlicher und Systemplaner nehme ich solche Dinge 
immer wieder dankend entgegen und plane möglichst ohne FPGA.

von Andy N. (jtani)


Lesenswert?

Ingenieur mit Verstand schrieb:
> Immer, wenn ich diese Art von FPGA-Fragen hier sehe, komme ich ins
> Grübeln. Da müht sich jemand mit einer komplizierten tool chain ab, um
> einen lumpigen counter ins Laufen zu kriegen und schafft es nicht
> alleine.
>
> Davon ausgehend, dass es kein Anfänger ist, er denken und lesen kann und
> sicher auch schon Unterstützung vom Hersteller angefragt hat, scheint
> moderne FPGA-Programmierung doch insgesamt auf sehr tönernen Füssen
> stehen, muss ich feststellen.
>
> Als Projektverantwortlicher und Systemplaner nehme ich solche Dinge
> immer wieder dankend entgegen und plane möglichst ohne FPGA.

Hallo Du Ingenieur mit Verstand!
Vielen Dank für Deine Antwort. Die hat mich ja richtig weiter gebracht.

Selbstverständlich habe ich keine Probleme, den lumpigen Counter in 
Betrieb zu nehmen. Und simulieren müsste ich den auch nicht (weil er 
natürlich funktioniert).
Aber die Simulation des Counters (also des einfachen Beispiels) ist das 
Problem. Wie ich ja ausführlich beschrieben habe.

Wenn Du nun Deinen unendlichen Verstand mit mir teilen könntest und mir 
dann mitteilst, wie die simple Antwort auf meine Frage ist. Dann trägst 
Du Deinen Namen vielleicht zurecht.

Vielen Dank für Deine kompetente Unterstützung!



Andreas

von Grendel (Gast)


Lesenswert?

Ingenieur mit Verstand schrieb:
>
> sinnloses gelaber

Pffft.
Das ist C-->HDL Synthese und nicht die normale FPGA Toolchain.
Das wäre so als wenn Du vollspezi von C auf VHDL umsteigen müsstest (und 
nicht wie hier von VHDL auf C).
Und das so ein Tool erstmal nicht so läuft wie gedacht wenn man damit 
noch nie vorher gearbeitet hat kommt schonmal vor.


Zum Problem: Ich hab leider keine Modelsim Lizenz und HLS auch nur mal 
ganz kurz angetestet, aber in HLS öffnet sich da glaube ich sowieso nie 
automatisch ein Waveform Viewer - der legt die Ergebnisse da nur als 
Datei ab.
Das kannste Dir dann bei Bedarf (i.d.R. wohl nicht notwendig) extern 
öffnen und anschauen. Die Co-Simulation ist ja nur dazu da zu schauen 
das der erzeugte HDL Code zum gleichen Ergebnis kommt wie der C Code...

Kann man aber dann auch im normalen Vivado (HLS ist ein komplett 
separates Tool falls das nicht klar war!) simulieren und dort anschauen 
- da halt ganz normaler design flow wie immer.

von Andy N. (jtani)


Lesenswert?

Hallo Grendel,
danke für Deine (sinnvolle) Antwort zum Thema.

Ich habe bisher in VHDL meine custom IPs programmiert. Dies ist schon 
recht aufwendig und zeitraubend.
Die HLS-Variante schätze ich als eine sehr große Erleichterung ein - 
wenn sie nur annähernd so funktionieren sollte, wie es XILINX 
verspricht...
Dies gilt es natürlich zu testen.
Selbstverständlich wird die Performance von direkter RTL-Programmierung 
meist besser sein...

Bisher habe ich halt für jede Custom-IP Modultests durchgeführt.
Und erst wenn diese nach den Erwartungen verlaufen sind, wurde die 
custom-IP in das Hauptprojekt (in dem Fall EDK) eingebunden.
Dies hätte ich schon gerne beibehalten.

Wie es scheint, könnte es Sinn machen, die custom-IP in VIVADO (nicht in 
VIVADO_HLS) zu integrieren - und dort zu testen... Das wäre dann ein 
"VIVADO_Testbench_Projekt" :-)

Danke für den Hinweis, dass VIVADO_HLS und VIVADO zwei komplett separate 
Tools sind. Dies war mir persönlich zwar schon klar, aber vielleicht 
hilft es ja jemand anderen... Kannst Du mir vielleicht auch sagen, warum 
es in VIVADO_HLS keine TCL-Shell gibt?

Wegen dem Waveform-Viewer: Das habe ich gesehen. Es wird eine VCD oder 
eine WLF-Datei erzeugt. Schade finde ich es trotzdem: Warum geht XILINX 
den Rückschritt und verwirft (aus meiner Sicht) sinnvolle work flows...

Viele Grüße,

Andreas

von Grendel (Gast)


Lesenswert?

Andy N. schrieb:
> Die HLS-Variante schätze ich als eine sehr große Erleichterung ein

Jep :-)


> Kannst Du mir vielleicht auch sagen, warum
> es in VIVADO_HLS keine TCL-Shell gibt?


Ganz einfach: Das Tool stammt nicht von Xilinx. Die haben das 2011 
zugekauft und dann weiterentwickelt.
HLS ist eine C IDE - ganz normales Eclipse mit ein paar Erweiterungen 
(und das ist auch gut so :-) ).

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.