Lattice flash: Unterschied zwischen den Versionen

Aus Nicki Wiki
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 50: Zeile 50:
       - synthesis_lattice    # Synthesedateien
       - synthesis_lattice    # Synthesedateien


Das Synthese <code>Makefile</code> in den Ordner <code>synthesis_lattice</code> kopieren.<br>
Das [https://gitlab.hzdr.de/FWF/Libraries/fpga/makefile_lattice_synthese Synthese <code>Makefile</code>] in den Ordner <code>synthesis_lattice</code> kopieren.<br>


===Build/Flash bit-file===
===Build/Flash bit-file===
Zeile 64: Zeile 64:


Für die Linzenz folgende Umgebungsvariablen setzen:
Für die Linzenz folgende Umgebungsvariablen setzen:
*Systemvariablen -> Neu... ODER wenn schon vorhanden folgenden Wert zu <code>LM_LICENSE_FILE</code> hinzufügen:
*Systemvariablen -> Neu... ODER wenn schon vorhanden, folgenden Wert zu <code>LM_LICENSE_FILE</code> hinzufügen:
**Name: <code>LM_LICENSE_FILE</code>
**Name: <code>LM_LICENSE_FILE</code>
**Wert: <code>1717@fwfs01</code>
**Wert: <code>1717@fwfs01</code>
Zeile 82: Zeile 82:


==Lattice Bibliotheken==
==Lattice Bibliotheken==
'''Lattice Diamond''' starten -> '''Tcl Console''' (ganz unten) nachfolgenden Befehl mit angepassten Pfaden eingeben:
'''Lattice Diamond''' starten -> '''Tcl Console''' (ganz unten) nachfolgenden Befehl eingeben (Pfade anpassen):
  cmpl_libs -sim_path PFAD_ZU_MODELSIM/win64 -lang vhdl -device machxo2 -target_path PFAD_ZU_MODELSIM/modelsim_lib_lattice_vhdl
  cmpl_libs -sim_path PFAD_ZU_MODELSIM/win64 -lang vhdl -device machxo2 -target_path PFAD_ZU_MODELSIM/modelsim_lib_lattice_vhdl
Zum Beispiel:
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
  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
[https://www.latticesemi.com/en/Support/AnswerDatabase/3/7/3/3739 Lattice Support]<br><br>
Quelle: [https://www.latticesemi.com/en/Support/AnswerDatabase/3/7/3/3739 Lattice Support]<br><br>


ModelSim die Lattice-Bibliotheken bekannt machen. <br>
ModelSim die Lattice-Bibliotheken bekannt machen, wenn nicht schon automatisch geschehen! (Unter Punkt '''Library''' ganz unten)<br>
Folgende Zeilen in der <code>modelsim.ini</code> unter dem Punkt '''Library''' hinzufügen:
Folgende Zeilen in der <code>modelsim.ini</code> unter dem Punkt '''Library''' hinzufügen:
  machxo2 = PFAD_ZU_MODELSIM/modelsim_lib_lattice_vhdl/machxo2
  machxo2 = PFAD_ZU_MODELSIM/modelsim_lib_lattice_vhdl/machxo2

Aktuelle Version vom 12. Januar 2022, 06:31 Uhr

Lattice 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, folgenden Wert zu LM_LICENSE_FILE hinzufügen:
    • Name: LM_LICENSE_FILE
    • Wert: 1717@fwfs01

Konfiguration

Anpassen der modelsim.ini:

VHDL93 = 2008      # Version
Resolution = ps    # zeitliche Auflösung WaveformView in Picosekunden

CygWin Vorbereitung

Die Tools

  • vmk.exe
  • ccze.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 eingeben (Pfade anpassen):

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

Quelle: Lattice Support

ModelSim die Lattice-Bibliotheken bekannt machen, wenn nicht schon automatisch geschehen! (Unter Punkt Library ganz unten)
Folgende Zeilen in der modelsim.ini unter dem Punkt Library hinzufügen:

machxo2 = PFAD_ZU_MODELSIM/modelsim_lib_lattice_vhdl/machxo2
pmi_work = PFAD_ZU_MODELSIM/modelsim_lib_lattice_vhdl/pmi_work

Zum Beispiel:

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"
 ],