Lattice flash: Unterschied zwischen den Versionen

Aus Nicki Wiki
Zur Navigation springen Zur Suche springen
Zeile 77: Zeile 77:
in den Ordner <code>pfad_zu_cygwin/home/BENUTZER/bin</code> kopieren.
in den Ordner <code>pfad_zu_cygwin/home/BENUTZER/bin</code> kopieren.
Den Modelsim Pfad bekannt machen:
Den Modelsim Pfad bekannt machen:
  PATH=/cygdrive/c/Programme/ModelSim_2020.1/win64:$PATH
  PATH=/cygdrive/c/Programme/modeltech64_2020.1/win64:$PATH


==Lattice Bibliotheken==
==Lattice Bibliotheken==

Version vom 7. Januar 2022, 12:49 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...
    • Name: MGLS_LICENCE_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. Den Modelsim Pfad bekannt machen:

PATH=/cygdrive/c/Programme/modeltech64_2020.1/win64:$PATH

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