Lattice flash
Lattice Diamond
- Download Lattice Diamond
- Installation Diamond
CygWin
Anleitung zum bauen und flashen von VHDL-Code mit Cygwin.
Tools in CygWin
Über den CygWin-Downloader zu installieren.
- make
- vim
Umgebungsvariablen setzen
vim setup_lattice.sh
Inhalt: (Pfade anpassen)
#!/bin/bash lat_path=/cygdrive/f/Programme/lscc/diamond/3.12 export FOUNDRY="F:/Programme/lscc/diamond/3.12/ispfpga" setx FOUNDRY "F:/Programme/lscc/diamond/3.12/ispfpga" mkdir ~/bin cd ~/bin ln --force -s "$lat_path/bin/nt64/diamond" diamond ln --force -s "$lat_path/bin/nt64/synpwrap" synpwrap ln --force -s "$lat_path/ispfpga/bin/nt64/synthesis" lattice_synthesis ln --force -s "$lat_path/ispfpga/bin/nt64/edif2ngd" lattice_edif2ngd ln --force -s "$lat_path/ispfpga/bin/nt64/ngdbuild" lattice_ngdbuild ln --force -s "$lat_path/ispfpga/bin/nt64/map" lattice_map ln --force -s "$lat_path/bin/nt64/mpartrce" lattice_mpartrce ln --force -s "$lat_path/ispfpga/bin/nt64/par" lattice_par ln --force -s "$lat_path/ispfpga/bin/nt64/trce" lattice_trce ln --force -s "$lat_path/ispfpga/bin/nt64/bitgen" lattice_bitgen ln --force -s "$lat_path/bin/nt64/pgrcmd" lattice_pgrcmd PATH=$(pwd):$PATH cd ls -la ~/bin echo "FOUNDRY=" echo $FOUNDRY echo "PATH=" echo $PATH
chmod +x setup_lattice.sh ./setup_lattice.sh
Ordner Struktur Lattice-Projekt:
- Projektname
- rtl # vhd - Dateien
- rtl_tb # vhd - Dateien der Testbench
- simulation_modelsim # Simulationsdateien für Modelsim
- synthesis_lattice # Synthesedateien
Das Synthese Makefile in den Ordner synthesis_lattice kopieren.
Build/Flash bit-file
In CygWin in den Ordner Projektname/synthesis_lattice navigieren:
make bitgen # build bit-file make program # program RAM volatile make finalflow # program Flash non-volatile
ModelSim
Installation & Lizenz
ModelSim installieren:
- Add ModelSim To Path -> Ja/Yes
Für die Linzenz folgende Umgebungsvariablen setzen:
- Systemvariablen -> Neu... ODER wenn schon vorhanden zu
LM_LICENSE_FILEhinzufügen- Name:
LM_LICENSE_FILE - Wert:
1717@fwfs01
- Name:
Konfiguration
Anpassen der modelsim.ini:
VHDL93 = 2008 # Version Resolution = ps # zeitliche Auflösung WaveformView in Picosekunden
CygWin Vorbereitung
Die Tools
vmk.execcze.exe(optional)
in den Ordner pfad_zu_cygwin/home/BENUTZER/bin kopieren.
Folgende Zeilen in der .bashrc hinzufügen:
PATH=PFAD_ZU_MODELSIM/win64:$PATH export LM_LICENSE_FILE=1717@fwfs01
Lattice Bibliotheken
Lattice Diamond starten -> Tcl Console (ganz unten) nachfolgenden Befehl mit angepassten Pfaden eingeben:
cmpl_libs -sim_path PFAD_ZU_MODELSIM/win64 -lang vhdl -device machxo2 -target_path PFAD_ZU_MODELSIM/modelsim_lib_lattice_vhdl
Zum Beispiel:
cmpl_libs -sim_path C:/Programme/modeltech64_2020.1/win64 -lang vhdl -device machxo2 -target_path C:/Programme/modeltech64_2020.1/modelsim_lib_lattice_vhdl
Lattice Support
ModelSim die Lattice Bibliotheken bekannt machen.
Folgende Zeilen in der modelsim.ini unter dem Punkt Library Hinzufügen:
machxo2 = C:/Programme/modeltech64_2020.1/modelsim_lib_lattice_vhdl/machxo2 pmi_work = C:/Programme/modeltech64_2020.1/modelsim_lib_lattice_vhdl/pmi_work
Das Modelsim Makefile in den Ordner simulation_modelsim kopieren.
MS Visual Studio Code & Cygwin
- Download Shell Launcher in VS Code
- In VS Code -> Zahnrad -> Einstellungen -> Register Benutzer -> Erweiterungen -> Shell Launcher configuration -> In "settings.json" barbeiten -> folgendes hinzufügen:
"shellLauncher.shells.windows": [
{
"shell": "C:\\Windows\\System32\\cmd.exe",
"label": "cmd"
},
{
"shell": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
"label": "PowerShell"
},
{
"shell": "C:\\Programme\\cygwin64\\Cygwin.bat",
"args": ["-l"],
"env": {"CHERE_INVOKING": "1"},
"label": "Cygwin Bash"
}
]
Jetzt kann mi der Tastenkombination Strg + Shift + t die Auswahl geöffnet werden.
Wenn nicht muss diese noch in den Tastenkombinationen angepasst werden.
ODER
Nachfolgendes unter Register Benutzer in die settings.json eintragen:
// start bash, not the mintty, or you'll get a new window
"terminal.integrated.shell.windows": "C:\\cygwin\\bin\\bash.exe",
// Use this to keep bash from doing a 'cd ${HOME}'
"terminal.integrated.env.windows": {
"CHERE_INVOKING": "1"
},
// Make it a login shell
"terminal.integrated.shellArgs.windows": [
"-l"
],