Gleichzeitige Signalzuweisung

Artikel   Warum es Signale braucht

wert <=  next_wert

Die Signale existieren im Doppelback. Sie haben immer zwei Facetten.
Den alten Wert (wert) und den neuen (next).

Regel
– linke Seite wird am Ende des Prozesses zugewiesen
– rechte Seite wird sofort zugewiesen

Signale links erhalten den Wert am Ende des Prozesses.
Signale rechts sofort.

Signalzuweisung <= nennt man non-blocking

FF zum Datenspeichern und Takten

Eingangslogik  – – –    F F    – – –    Ausgangslogik  [   – – –    F F  ]
(asynchron)       (synchron)       (asynchron)

Warum braucht es FF?
Um den Zustand einer Logik zu speichern.

Zudem sind FF getaktet, sodass die Datenverarbeitung synchron wird.

Die Prozesse und Logik ausserhalb der FF müssen nicht getaktet sein, können aber.

Processe in VHDL

  • Getaktete Prozesse sind unter sich sequentiell (ein Clock nach dem andern)
    -> sequential
  • Prozesse können asynchron sein
    -> concurrent (gleichzeitig)
  • Innerhalb eines Prozesses, werden die Signale sequentiell abgearbeitet
  • Wegen der Zweiseitigkeit von Signalen, können parallel mehrere Zustände zugewiesen werden

Pfade in Latex

Will man einen Pfad in einem Latex-Dokument angeben, braucht man den \textbackslash

Ziel

cd ..\TVtestSystem\bin\interface
dist\hardwareInterface.exe

Latex-Code

cd ..\textbackslash TVtestSystem \textbackslash bin \textbackslash interface
dist \textbackslash hardwareInterface.exe

Löten

Stahlwolle und Tippy (Spitzenpflege)
Damit die Lötspitze nicht schnell oxidiert: Stahlwolle zum Abstreichen und Tippy zur Pflege.
– Lötkolben nicht anlassen.
– Muss vorne immer verzinnt sein

Verzinnnen
Ziel: Wenig Lot, das noch glänzt (hat Flussmittel)
Vorgehen:
– Lötkolben direkt neben Verzinnstelle
– Frisches Lot an Lötkolben (hat noch Flussmittel)
– Kolben mit ständig neuem gespiesenem Lot über die Stelle ziehen

Matte Lötstelle
– Flussmittel ist weg -> An Lötkolben neues Lot (mit Flussmittel)
und dann Stelle neu „beloten“. Sie glänzt nun

Handling: Kein Lot in der Hand: Verzinnen und Lot in der Luft für Frischzufuhr
– Lot steht aufgestellt in der Luft und wird kurz vor Arbeit genommen
– Lot ist auf der Platine (bzw. jedes Bauteil ist vorverzinnt, mit FRISCHEM LOT)
– Bauteil wird mit Pinzette gehalten
– Lotkolben mit frischem Lot aktivieren und dem Lot auf dem Bauteil
oder der Platine zugefügt.
-> das zweite Bauteil wird plaziert
– Mit Pinzette Bauteil gut nach unten drücken

Temperaturen
So niedrig wie möglich. Wenn möglich um die 350°.
Schlechte Lötstellen müssen heisser gelötet werden   350 °
SMD wird ebenfalls heisser gelötet
Ebenso bleifreier Zinn

Schwarze Lötspitze !
– Ist nicht mehr brauchbar, sie nimmt kein Lot an (nicht mehr benetzbar)
– Grund: verkohltes Flussmittel bei z.B. bleifreies Lot (ist aggressiv)
– Hilfe:
– Reinigung:

Neuverzinnung der Lötspitze
Lot ist zu schwach.
Bleifrei Tippy: Dies ist ein spezieller Lötspitzenreiniger für die bleifreie Handlötung und verzinnt die Spitze

http://www.stannol.de/fileadmin/Service/Loetforum/phpBB2/viewtopic.php?t=83&sid=840033227687ddc60ddeb6d171b77744

Änderungen rückgängig machen (Git)

Nachlesen von Änderungen rückgängig machen
https://www.atlassian.com/git/tutorials/undoing-changes

File aus Ordner löschen
Die Datei bleibt physisch da, wird aber aus der Versionierung (aus git) genommen. Git sieht das File nicht mehr.

git rm <file>             


Lokale Änderung nicht comitten
– <untracked files> können mit gitignore vom committen ausgeschlossen werden
– wurde eine Datei bereits <add> so kann man git reset HEAD <file> das File aus der commit-Liste nehmen. (es wird dann wieder rot)

File auf alte Version zurücksetzen

git checkout --  <file>          // falscherweise commited
git checkout <commit-nr> <file>  // altes File holen
git reset <file>                 // falscherweise <add>

Der erste Befehl bezieht sich auf den letzten commit. Der zweite auf einen füheren. Achtung: in beiden Fällen wird das lokale File überschrieben!

 

VHDL Types

Int
– Zuweisung erfolgt ohne Hochkomma

variable   cnt: integer range 0 to 255 := 0;

Standard_Logic
– Zuweisung erfolgt über Hochkommas

signal s_reset:     std_logic := '0';

Variable <-> Signale in VHDL

Variable
Leben nur innerhalb eines Prozesses.
– Ihr Zustand kann nicht gespeichert werden.
– Sie müssen im Prozess, vor dem begin definiert werden
Zuweisung erfolgt sofort (asynchron)
– Wird die Variable auch ausserhalb des Prozesses gebraucht, wird sie einem Signal zugewiesen.

read_file: process(all)	
	
variable token_note: std_logic_vector(7 downto 0) :=(OTHERS => '0');
variable token_velocity: std_logic_vector(7 downto 0) :=(OTHERS => '0');
	
begin
       // token einlesen (muss variable sein)
      read(line_in, token_type_n, good);

      // variable signal übergeben
      s_token_type <= token_type;


Signale
Verbinden Blöcke miteinander und/oder werden innerhalb Block gebraucht
– Sie werden ausserhalb von Prozessen definiert
– Ihr Wert kann in einem FF gespeichert werden (muss aber nicht)

architecture rtl of counter is

signal s_token_typ std_logic_vector(7 downto 0) := (others => '0'); 

begin 

execute_file: process (all) 
begin

end

..

Top Level

– Das Top-Level ist die äusserste Hülle eines VHDL-Blocks.
– Im Top-Level müssen die Blockeingänge mit den FPGA-Pins verbunden werden.
.  Dies geschieht über die Pinplanung.

Der Name der Top-Level-Entitiy muss der Name der Datei sein!

CLK und Reset muss nicht mit einem Signal intern angebunden werden, sondern alle alle Komponenten können mit dem Top-Level Port verbunden werden.