Simulation Signale exportieren

– Exportier werden kann nur eine Postscript-Datei <datei.ps>
– Diese wird dann per Konsole mit ps2pdf <datei.ps>  in ein pdf gewandelt

Einstellung zur schwarz-weiss Ausgabe
Im Questsim: File/Page_Setup…
– Papter size: A4, Cursor on/off, Grid on/off, Color: B&W, Scaling: Fit to 1 page
File/Write Postscript
– Hacken bei: File name:  Pfad und Name angeben
– Signal Selection: Current view (oder All signals oder Selected)
– Time Range: Current view oder Full Range oder Custom

.gitignore Hilfe

.gitignore bezieht sich nur auf <untracked files>.  Sie sind rot.
New Files (grün) sind bereits <add> und gitignore sieht sie nicht mehr.

File aus add-Liste nehmen

git reset HEAD <file>
git reset HEAD **/**/db/*

Die Files werden wieder rot und gelten als ausserhalb des commits.

Test Funktionsweise .gitignore
Ordner und Endungen, die in .gitignore stehen, sollten unter den <untracked files> erscheinen.
Wichtig: Änderungen in .gitignore müssen zuerst <add> werden, damit sie wirken.

Ordner ignorieren
In gitignore: <bla>/<bli>/<blo>/
Git kann Ordner nicht ignorieren, nur Dateien. Deshalb ist / am Ende zwingend.

Ordner relativ ignorieren

**/**/<blo>/

Die Anzahl Stufen müssen stimmen.
Achtung:
Bei allgemeinen Namen, können ungewollt andere Ordner betroffen sein. Deshalb lieber zwei Namen angeben, sodass es eindeutig wird.

Etwas aus ignoriertem Ordner hinzufügen

Cyclone_IV/synthese/db/*
! Cyclone_IV/synthese/db/<datei.xxx>

Ordner/* der Stern ist zwingend, damit nicht alles per se ignoriert wird. Nur so können unterhalb Dateien wieder zugefügt werden.

Logikblocks einbauen und ändern

QSys (früher SOPC):
– Ist ein System Integration Tool
– QSys ermöglicht den Import von Logik-Blöcken.
– Die Logikblöcke werden nachher als Files in das Projekt gealden

Qsys: Designen von eigenen Blöcken
quartus: Tools/qsys         eigenes Fenster geht auf
– Als erstes muss neue qsys-Datei erstellt werden (*.qsys)
– Dies Datei liegt in synthese/outputfiles/<name>
– Über Library holt man mit add einen Block
– Block benennen (wird zu Titel im Blockschema)
– Unter Export sagen, Blockvariable setzen
– Speicherplatz dem Block zuweisen
– add: man fügt neue Elemente hinzu
– neues Element verdrahten
generate: beendet das Design
– die Datei (*.qip) liegt in outputfiles/<name>/synthese
– das Blockbild in outputfiles/<name> (*.bsf)

Quartus: Blöcke einbauen
– Neues, leeres *.bdf öffnen
– Über Block-Import den Block holen (*.bsf)
– Pin zuweisen
– Verdrahtungen benennen gemäss Export
– Kompilieren

 

Raspdebian am Netz: Sicherheit

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>.

FPGA Projekt einrichten

  1. Programme mit Lizenzen herunterladen (quartus, questasim)
  2. Projektordner erstellen (siehe Intro): synthese, vhdl, simulation, code
  3. Mit quartus Projektdatei erstellen (*.qpf), ablegen in synthese-ordner
  4. VHDL Code schreiben (*.vhd) oder Schema (*.bdf) über Menu Symbol Tool zeichnen. Pin müssen zugewiesen werden. Dateien ablegen in vhdl-odner
  5. Datein ins Projekt einbinden: Menu Assignments/Settings /Files
  6. Eine Datei muss Top-Level sein. Auswählen per rechte Maus > set as top-level
  7. Pinzuweisung (Laden datei.tcl aus ordner synthese) aktivieren über
    Tools/Tcl Script/ Run
  8. Kompilieren bzw. Synthese mit Processing/Start Compilation (*.sof)
  9. Projekt auf Board laden: (Schalter auf Board auf „RUN“)
    Tools/Programmer  (ev. Projektdatei.sof zufügen) start
    Fehlt die Lizenz, kann man nicht auf start drücken

Repository erstellen: Anleitung

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

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.

 

debian auf raspberry pi 2

Debian auf SD-Karte laden

Schritte von Juan:

  1. Download and extract the jessie-rpi2-*.img.gz to get an .img file
  2. On any debian-based linux type sudo apt-get install bmap-tools  and install it.
  3. Then type sudo bmaptool copy –nobmap jessie-rpi2.img /dev/sdx  (Change yourlocation to the location of the .img file and sdx for the letter where the SD is mounted, if you don’t know it type sudo fdisk -l  and look for it).
  4. Wait until it finishes and then put the SD on your rp2.

Erster SSH-Login zum Konfigurieren

  • Das RPi durch Ethernet mit dem Router verbinden und dann am Strom anschliesen zum booten.
  • Auf dem Router prüfen, welche  IP-Adresse das RPi bekommen hat (durch Namen der Maschine)
  • $ ssh root@192.168.1.158 mit Passwort debian

Grundsystem konfigurieren

  • Kontos für ale und katrin erstellen. Login ohne Passwort, nur mit key.
    • adduser katrin  (+ale)
    • auf Linux, SSH-key generieren: ssh-keygen  (fragt um ein Pfad)
    • scp id_rsa.pub katrin@192.168.1.158:.ssh/  (+ale)
    • auf den rpi: cat id_rsa.pub >> .ssh/authorized_keys
    • Zugangsrechte für ~.ssh/*  auf r–  setzen
  • kein login für root und nur key login für den users:
    • edit /etc/ssh/ssh_config ,
    • PasswordAuthentication no  und PermitRootLogin no  setzen.
  • Auf dem Router, Port forwarding für https einrichten

Owncloud installieren

  • die externe festplatte in /etc/fstab  hinzufügen
    • die uuid der festplatte mit blkid  auslesen
    • in /etc/fstab die folgende Zeile hinzufügen:
      UUID=375cae2c-e89e-45ef-80f3-ee65e54b27e2 /mnt/data ext4 defaults 0 2
    • ln -s /mnt/data/owncloud /var/www/owncloud/data  (falls data/ bereits exisitert, zuerst umbennen und dann den inhalt in den neuen data/  verzeichnis kopieren; es scheint nicht möglich zu sein, auf andere laufwerke zugreifen)
  • user owncloud  in der datenbank hinzufügen:
    $ mysql –user=root –password mysql
    create user ‚owncloud’@’localhost‘ identified by ‚owncloud‘ WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON *.* TO ‚owncloud’@’localhost‘;

    SELECT User FROM mysql.user;
    create database owncloud;
  • Community Debian Repository von Owncloud hinzufügen und das neuste Owncloud installieren
  • php5-mysql  dazu installieren
  • Frage: sollten wir nginx statt apache brauchen? (http://etapien.com/guides/how-to-install-owncloud-on-debian-7-with-nginx/)
  • 192.168.1.158/owncloud/ aufrufen, admin konto erstellen und unbedingt auf |> clicken um mysql als datenbank auszuwählen.
  • port für SSH auf nicht Standard setzen (22; https://www.adayinthelifeof.nl/2012/03/12/why-putting-ssh-on-another-port-than-22-is-bad-idea/)
  • 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

DNS

  • You need to log into your Domain Registra’s account and set the A-record for your domain (mysite.com) to point to your router’s public IP address.

SSL

  • https://blog.hasgeek.com/2013/https-everywhere-at-hasgeek/
  • https://hallard.me/enable-ssl-for-apache-server-in-5-minutes/
  • http://www.startssl.com/?app=1

VPN

  • You’ll need to forward port 1194 (UDP traffic) to your Raspberry Pi’s internal IP address.
  • Install openvpn
    • http://readwrite.com/2014/04/10/raspberry-pi-vpn-tutorial-server-secure-web-browsing
    • http://www.raspberrypihelp.net/tutorials/1-openvpn-server-tutorial
    • http://www.linuxuser.co.uk/news/create-a-vpn-with-the-raspberry-pi

WIFI als LAN-Verbindung zu Raspery Pi einrichten

  • wicd-curses  installieren (network manager)
  • die netdev  gruppe für beide users hinzufügen
  • das wifi sollte automatisch erkannt werden, falls nicht:
    • sudo iwlist eth2 scan  zeigt alle access points
    • in der Preferences von wicd wlan0 als device setzen und wicd neu starten

How to get the wifi to work: http://sjoerd.luon.net/posts/2015/02/debian-jessie-on-rpi2/#comment-2210d3fbce30bfee22ad73d751a14d31$

Andere programme

  • usbutils  for lsusb
  • vim
  • sudo update-alternatives –config editor
  • sudo nmap -sP 192.168.1.0/24  to discover the ip addresses around you