Pipe

Eine Pipe ist ein Datenstrom zwischen zwei Prozessen.
Bzw. es ist der Ausgang der Daten des ersten Programmes, der Abgefangen wird.

programm1 >> daten >> programm2
programm1 | ausgabe.txt // Die daten werden in ausgabe.txt geschrieben

Das Ergebnis eines Programms wird als Eingabe eines anderen Programms verwendet

| <optionen
Programm 1 übergibt Datenstrom direkt Programm 2

c++: einlesen mit >>

in = von aussen IN eine Datei (ablegen)
out = von Datei nach aussen geben

#include <iostream>
#include <string>

Über die Konsole kann wortweise über cin eingelesen werden.

std::cin >> wort1;   // ablegen in variable

Will man über die Konsole mehrere Wörter eingeben, so braucht man mehrere Variablen, zum Speichern. Der Datentyp von Eingabe und Variable müssen stimmen.

std::string name;
int alter;

std::cout << "Eingabe Name und Alter \n";

std::cin >> name >> alter

 

Stream ablegen

string datei_name = {"data.txt"};
ifstream stream_a {datei_name};
cout << "Name des Files angeben"; 
string datei_1;
cin >> datei_1 
ifstream stream1 {datei_1}


Einlesen bis

std::string current = "";
std::string end = ".";

// 1.Variante
while ( std::cin >> current ) {
  if (current == end){
      // do action;    
  }
}

Im While wird wortweise eingelesen und das Wort in den String current abgelegt.
Sobald ein spezifisches Wort erscheint, wird eine bestimmte Anweisung erteilt.

Fehlerbehandlung

if (!cin ) {
  error(" Einlesen funtkonierte nicht \n");
}
else {
     do something;
}

Quartus: altera VHDL Programm

Altera-FPGAs können mit Quartus programmiert und kompiliert werden.
Es werden Projekte gebildet, mit der Dateiendung.qpf

Hauptschritte
– Quartus über shell öffnen

quartus13.sh

– Projekt in Quartus öffnen: Menü File/Open Projet
– Projekt am Ende kompilieren: Menü Processing/ Start Compilation

Synthese

  • Bilden des Codes und der Blöcke zu einem System (Kompilieren).
    Es entsteht ein Bitstream. Die Dateiendung ist datei.sof
    Der synthetisierte Code wird per Programmer auf das FPGA geladen.

    In der Synthese werden die Pins zugewiesen.

    Es ist die Anbindung des Codes an Hardware.

  • ADB (Android Debug Bridge)

    Anstelle von ssh kann bei Androidgeräte über adb auf das Gerät zugegriffen werden.
    Die ADB-Verbindung bleibt aufrecht erhalten, auch wenn der PC abgestellt wird.

    Um ADB zu benutzen, wird SDK bzw. Android Tool installiert.

    Aufbauen der VerbindungAufbauen der Verbindung

    adb connect <ip>

    Öffnet die Shell für Befehle

    adb shell

    Gibt die aktive Verbindungen an

    adb devices

    Einzelne Verbindung abbauen

    adb disconnect

    Alle Verbidungen abbauen

    add kill-server

    string

    Liste zu String
    list = [ „ha“, „ba“, „la“ ]
    string = „“.join(list)          out: „habala “
    string = “ „.join(list)          out: “ ha ba la „

    2-dimensionales Array

    Ziel
    3 x 3 Array mit 0 initialisieren

    Struktur: List of list
    Liste mit 3 Elementen, die selbst Listen sind
    array = [ [0, 0, 0],  [0, 0, 0], [0, 0, 0] ]

    Umsetzung simple
    element = [ „0“] * 3
    array = element * 3

    Umsetzung variabel
    for i in range(3):
    .              array.append( [„0“ * 3 ]

    RAM

    SRAM   (Statisches RAM)
    Speicherzellen sind mit Transistoren realsiert. Sie behalten den Zustand auch im Ruhezustand. Bei steigender Flanke werden die Bits übertragen.

    DRAM (Dynamisches RAM)
    Speicherzellen sind Kondensatoren. Diese verlierten die Daten und muss zyklisch „refreshed“ werden. Dies erfolgt Zeilenweise. Jede Zeile wird in einen Zeilenbuffer geladen, dort verstärkt und zurückgeladen.
    Das Auffrischen muss auch im Ruhezstand statt finden, weshalb energiesensitive Geräte auf DRAM verzichten

    DDR-SRAM     (Double-Data-Rate SRAM)
    Die Verdopplung der Datenübertragung erfolgt, weil auch bei der fallenden Flanke Bits übertragen werden. Ausgelesen werden 2 Bit aufs Mal, wobei eines direkt mit dem Takt verarbeitet werden kann und das zweite in den Speicher abgelegt wird und zusätzlich ausgelesen werden muss.

    Es braucht daszu die doppelte Busbreite, als für SRAM

    DDR_RAM