Forum: FPGA, VHDL & Co. Lattice Diamond Workflow in Jenkins Umgebung integrieren


von Stefan U. (s_u)


Lesenswert?

Guten Morgen Zusammen,
wir haben die Auflage bekommen, auch die VHDL Sachen in die Jenkins 
Umgebung zu integrieren, wie die restliche Software unserer Steuergeräte 
auch.
Wir verwenden hier von Lattice die XO3 - ECP3/5 - und Certus FPGAs und 
die Lattice Diamond Umgebung, hier die 3.12 (automotive Zertifiziert) 
mit VHDL und ModelSim als Simulation-Test.
Das bedeutet für mich, dass man den graphischen Entwicklungs-Workflow 
nun auf die Konsole bringen muss.
Was soweit geht, ist mit Jenkins das Repo auslesen, über die Lattice 
Diamond TCL Konsole die Synthese, das Place and Route und die Bit-File 
Generierung zu starten und zu erzeugen. Auch die Erzeugung des *.c - 
Files aus dem Bit-File geht, damit man den FPGA vom Prozessor aus über 
SPI laden kann.
Was ich nicht hin bekomme ist mit dem Lattice Projekt File ein *.do bzw 
*.mdo File für die Simulation automatisch zu erzeugen.
Wenn man über Diamond den Simulation Wizard aufruft, werden die ganzen 
notwendigen Files für die Simulation, auch das *.mdo erzeugt. Leider 
kann ich nirgendwo herausfinden, welche Schritte Diamond mit dem 
Simulation Wizard durchführt. Was muss man da machen, um über eine 
Konsole ebenfalls die notwendigen Sachen für die Simulation des 
VHDL-Projekts zu erzeugen und anschließend das ganze zu starten.
Habt ihr mir vielleicht einen Tip, wie man das *.mdo File aus der 
verkappten Diamond TCL Konsole oder auch über eine Standard Konsole zu 
erzeugen und dann die Simu zu startet.
Vielen Dank im voraus.

von Rick D. (rickdangerus)


Lesenswert?

Ich starte Modelsim immer separat (also unabhängig von Diamond, Quartus 
oder ISE).

Für einfache Sachen reicht:
1
vlib work
2
vcom *.vhd
3
vsim -gui meine_testbench

Für komplexere Simulationen nehme ich (immer noch) vmk:
https://sourceforge.net/projects/vmk/


Ansonsten sehe ich auf die Schnelle im Diamond keine TCL-Kommandos für 
die Simulation:
1
> help 
2
For more information on a specific command, type "help <command>":
3
   dtc  Lattice Diamond Tcl Console extended Tcl commands.
4
   prj  Project Manager extended Tcl commands.
5
   sys  System information Tcl commands.
6
   ncd  NCD extended Tcl commands.
7
   ngd  NGD extended Tcl commands.
8
   rvl  Reveal Inserter extended Tcl commands.
9
   sbp  System builder planner extended Tcl commands.
10
   rva  Reveal Analyzer extended Tcl commands.
11
   pwc  Power Calculator extended Tcl commands.
12
   pgr  Programmer extended Tcl commands.
13
   psb Pojo2 extended Tcl commands.
14
   icf Incremental Design Flow Database extended Tcl commands.
15
   cmp Compile Lattice FPGA simulation libraries.
16
   eco  Physical Design extended Tcl commands.
17
18
> help prj
19
Project Manager extended Tcl commands
20
For more information on a specific command, type hlp command-name:
21
22
  prj_project  Project commands to manipulate project
23
  prj_src      Project source commands to manipulate project sources
24
  prj_impl     Project implementation commands to manipulate implementation
25
  prj_strgy    Project strategy commands to manipulate strategies
26
  prj_run      Project flow running command to run a flow process
27
  prj_syn      Project synthesis tool commands to list or set synthesis tool
28
  prj_dev      Project device commands to list or set the device used in the
29
               project
30
  prj_incr     Project commands to manipulate incremental design flow
31
32
> prj_run Simulation
33
Wrong # arg Simulation
34
Simulation is not a valid milestone name.
35
36
> prj_run -task Simulation
37
Wrong # args
38
prj_run - Run a milestone or task
39
  Usage:
40
    prj_run <milestone name> [-impl <implement name>] [-task <task name>]
41
            [-forceAll|forceOne]

von Stefan U. (s_u)


Lesenswert?

Guten Morgen, und Danke für die Antwort. \
Soweit bin ich auch gekommen. \
Aber mit dem Simulation Wizard führt Diamond doch auch nur Befehle oder 
ein Script aus. Es wird aus dem Projektfile *.ldf ein Simulationsfile 
*.mdo generiert. Danach wird ModelSim gestartet und das eben generierte 
*.mdo ausgeführt.\
In der Zwischenzeit haben sogar zwei Lattice FAE die Flügel gestreckt. 
Die meinen aber auch, dass der komplette Workflow per CLI funktionieren 
sollte, zumindest mal hat.\
Werde mir mal das oben genannte Framework VMK anschauen.

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.