Latice stellte einfachere FPGA her.
- Der Clk ist weniger schnell, als bei High End FPGAs
- Memory ist kleiner
- Viele IP kostenlos
Latice stellte einfachere FPGA her.
# Dateiformate *~ *qar *bak *qws *kpt *done *rpt *summary *smsg *jdi *qarlog *qws *qdf # SYNTHESE. **/**/incremental_db/* **/**/db/* **/**/output_files/*
Die relativen Pfade müssen stimmen.
Folgende Files sollten nicht ignoriert werden (vgl. folgender Link).
Implementierte Logik
Tools/ Netlist Viewer/RTL Viewer: zeigt die Logikbausteine
Blöcke und Verdrahtung
Tools/ Netlist Viewer/ Technology Map Viewer (Post-Mapping)
Pinzuweisung
– Um die Pin-Datei zu aktivieren, muss sie einmal gelaufen sein:
. Tools/ Tcl Scripts/Run
– Pin Überprüfung:
. Assignments/Pin Planer/
– Die Pin-Namen auf Schaltplan muss dem Name in der tcl-Datei entsprechen
– Abgespeichert wird die Pinzuweisung in der Datei boardname.tcl
Files in Projekt einbinden
Assignments/Settings/Files auf add
Top-Level definieren
Links, im Projektnavigator, auf den Reiter Files.
Dort per rechte Maustaste eine Datei als Top-Level setezn
RSA-Keys für User erstellen
Login mit RSA-Key und ohne Passwort
Beim Login kommt man zu Root. Man muss das debian Passwort eingeben. Steht der Raspberry Pi im Netz, sollte der Login ohne Passwort sein! Brut force attacken werden so verworfen, da das Eingeben eines Passwortes verboten ist.
Port Forwarding <Dienstanfrage Server> führt direkt auf <Dienstplattform auf lokalem Gerät>
Der Raspberry Pi steht nicht im Internet, er steht im privaten Netz und kann aufs Internet. Vom Internet aus kann man nicht auf den Rasperry PI zugreiffen. (Nur Lokal über SSH) . Nur der Router steht im Internet.
Will man OwnCloud brauchen, muss man vom Internet darauf zugreiffen können. Gibt man <Dienstanfrage Routers> ein, so gelangt man auf den <Raspery Pi>. Dies gilt nur für die eingestellten Dienste.
IP Throuput <ip Server> führt direkt zur <ip lokales Gerät>
Gibt man die <IP des Routers> ein so gelangt man auf den <Raspery Pi>.
Git kümmert sich um die Versionierung.
Mit git status sieht man, was geändert ist und kann es mit git add git commit auf auch auf eine Plattform ausserhalb senden.
Commits (und adds) sind nur lokal auf der Maschine. Sie brauchen keine Rechte. Denn Git muss nicht über eine Plattform gehen. Git kann auch nur lokal die Versionierung verwalten.
Github teilt Versionierung mit anderen
Will man Daten mit andern teilen, bietet sich eine Plattform wie Github an. Man braucht dazu jedoch Rechte von Gründer des Repositorys. Man hinterlegt seine Emailadresse sowie eine Form der Authentifizierung:
– per RSA-Key identifizieren (Github: Profile/Settings/SSH-Key) oder
– per Passwort.
Bei ersterem muss man beim Pushen nichts tun (der private Key authentifiziert), bei der Version mit dem Passwort, muss man immer das PW beim Pushen mitgeben.
Programme installieren
– Git
– Github: Ist die GUI für unter Windows
Konto auf öffentlicher Plattform
– Auf einer Plattform (z. B. Github) Konto errichten (user, email, passwort)
– Öffentliche Plattform: Pullen darf jeder vom Projekt, ohne passwort
– Pushen verlangt einen Namen und ein Passwort
– Repository ohne Lizenz: Man darf den Code nicht brauchen
Schritte lokale Synchronisation
– Auf Plattform den SSH-pfad kopieren
– lokal an Ort gehen, wo Hauptverzeichnis hinkommen soll.
Liegen bereits Ordner, dann diese wegkopieren und zuerst Repository anlegen
Windows:
Mit GUI Github auf + und dann Clone auswählen, Projekt anwäheln
git clone https://github.com/<user>/projektname.git
– Falls bestehende Ordner wegkopiert wurden, diese nun dem Projekt zufügen:
Windows:
Mit GUI Github auf + und add und die kopierten Dateien auswählen
der Committext kann direkt zugefügt werden
git status git add <file> git commit -m "text"
– gitignore ausfüllen
*~ für alle backupts *o für objektdateien directory/**/* ignoriert dieses Verzeichnis, ausser: !directory/blabla/datei.xxx ausser dieser Ordner oder diese Datei
– Daten hochladen aufs Repository
Windows:
Über sync (oben rechts)
git pull git push
Repository löschen
rm -rf .git
Ordnerstruktur
Synthese (oder quartus)
. – Projektdatei: projekt.qpf
. – Pinzuweisung: datei.tcl
. [Ordner output_files] wird durch Synthese generiert
. – synthetisiertes File für FPGA: datei.sof
. – kompiliertes File für Memory: datei.pof
VHDL (oder source)
. – Es braucht ein Top-Level top.xxx (rechte Maus) Rechte zuweisen
. – Schaltpläne: datei.bdf
. – importierete Blöcke (IP): datei.qpf
. – eigene Blöcke datei.vhd
. – testbench: tb_datei.vhd
Software
. – files.c
. – files.h
Simulation (oder questasim)
. Ordner questasim
. – Simulatondatei: test_midi.mpf
. – Signaldatei: wave.do
. [Ordner work] wird durch questasim generiert
. Ordner script (Verzeichnis zum Aufrufen der Simulation)
. – compile.do
. – test_input.txt
. – test_output_results.txt
……………………………………………………………………………………..
FPGA Synthese: Quartus
Das Programm Quartus von altera (lizenz) ist sehr mächtig. Ohne Lizenz, kann die Datei nicht auf das FPGA geladen werden.
In der Synthese werden die Pins zugewisen, die Verbindungen gelegt, das FPGA-Innenleben designt.
Die Synthese dauert sehr lange. Nach dem Synthetisieren wird der Stream auf das Board oder auf den Flash-Memory geladen.
home/bin/quartus_x.sh
Simulation: Questasim
Das externe Programm questasim ist ein ausführliches Simulationsprogramm.
Quartus selbst wird mit Modelsim mitgeliefert, das jedoch begränzt in der Anzahl zu simulierenden Blöcke ist.
Simuliert über Testbenches, die man über die Konsole per Script ausführt.
Debian auf SD-Karte laden
Schritte von Juan:
Erster SSH-Login zum Konfigurieren
Grundsystem konfigurieren
Owncloud installieren
192.168.1.158/owncloud/ aufrufen, admin konto erstellen und unbedingt auf |> clicken um mysql als datenbank auszuwählen.Securing MySQL: MySQL ships with a few conveniences that are supposed to be removed when put on a real server, to do that type:
sudo mysql_secure_installation
WIFI als LAN-Verbindung zu Raspery Pi einrichten
How to get the wifi to work: http://sjoerd.luon.net/posts/2015/02/debian-jessie-on-rpi2/#comment-2210d3fbce30bfee22ad73d751a14d31$