VHDL-Projekt Datenstruktur und Programme

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.

 

Dateiablage Linux

root/bin               Programme für OS, Konsole                   Bsp. bash, cat, rm
root/home/        Dateien von Users
root/opt              Programme selbst installiert               Bsp: Nios, Questsim, altera
root/etc/             Konfiguarationsdateien
root/sbin            Programme für Kommunikation          Bsp: dhcpclient, wpa_cli
root/sys              Systemprogramme
root/usr              Programme über install installiert        Bsp: ADB, cpp, blabla

Script Linux

Ablegeort

home/katrin/bin


Ausführen (bei Ablageort)

./<script>.sh

Im Verzeichnis selbst wird mit ./ das Script ausgeführt.


Script der PATH-Variable zuweisen

PATH=$PATH:/home/katrin/bin

Mit gesetzer Pfadvariable kann das Script von überall her aufgerufen werden.


Ausführen Script überall

<script>.sh


Inhalt

#!/bin/bash

# add programm to global path
PATH=$PATH:/opt/ACA_166

# go to directory
cd /opt/ACA_166/

# open programm
java -jar ./QDAca.jar

Hier wird nicht der Script-Pfad, sondern das auszuführende Programm dem Pfad zugeteilt.

Script als ausführbar definieren

chmod +x name.sh

Parameter per Konsole mitgeben

#!/bin/bash

# Ausgabe in Konsole
echo $1 "anzahl_messungen"
echo $2 "anzahl_wiederholungen"

for o in `seq 1 $1`
do
    # packetlength ist eine lokale Variable
    for packetlength in 100 400 1400 1500 \        
    do
         # Ausgabe Konsole aktuelle Paketlänge
         echo $l
         for i in `seq 1 $2`
         do
            iperf3 -c 10.4.30.50 -l $ packetlength
         done
    done
done

– echo gibt string an Konsole aus
– $.. sind Variablen
– echo $.. fordert eine Eingabe per Konsole mit whitespace (Enter oder Abstand)

script.sh  5  2

Wenn man die Parmeter vergisst, fragt das Programm beim Start danach
// ]]>