cleared cache because workspace.json is abnoxious
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 97 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 40 KiB |
@@ -1,88 +0,0 @@
|
||||
# Struktur
|
||||
1. Organisatorisches
|
||||
2. Wiederholung
|
||||
|
||||
# Wiederholung
|
||||
1. Schaltwerk / Schaltnetz
|
||||
1. Huffman-Normalform
|
||||
2. Endliche Automaten
|
||||
3. Impulsdiagramme
|
||||
4. Mealy oder Moore Automaten
|
||||
1. Mealy ohne Zustandsübergang
|
||||
5. KV-Minimierung
|
||||
6. Digitale Zustandskodierung
|
||||
7. Struktur
|
||||
1. Modellieren
|
||||
1. LaTeX Vorlage für DIGIT wieder verwendbar?
|
||||
2. Test Vorbereiten
|
||||
3. Implementieren
|
||||
4. Test durchführen
|
||||
8. Einordnung der Qualitäts
|
||||
|
||||
# Aufgaben
|
||||
## Model
|
||||
Ausgänge:
|
||||
$q1\_o$
|
||||
$q0\_o$
|
||||
|
||||
Eingänge:
|
||||
$v\_i$ wenn = 1 value +1
|
||||
$v\_i$ wenn = 0 value -1
|
||||
clk_i
|
||||
$r\_i$ reset
|
||||
2 Bit Wert (nach $11$ kommt $00$) erst impl.
|
||||
|
||||
ausgabefunktion fehlt
|
||||
|
||||
![[Nackenbruch.drawio.png]]
|
||||
|
||||
prüfung geg. forderung
|
||||
|
||||
## Tests
|
||||
### synchron
|
||||
- Hochzählen
|
||||
- Runterzählen
|
||||
- Überlauf / Unterlauf
|
||||
|
||||
### asynchron
|
||||
- Reset
|
||||
|
||||
formuliert und nicht stichpunkte
|
||||
# Implementierung
|
||||
## Kodierung
|
||||
startzustand fehlt
|
||||
|
||||
| Zustand | $k\_1,k\_0$ | |
|
||||
| ------- | ----------- | --- |
|
||||
| null | $00$ | |
|
||||
| eins | $01$ | |
|
||||
| zwei | $02$ | |
|
||||
| drei | $03$ | |
|
||||
|
||||
Die Zustandskodierung erfolg gemäß binärer Rechnung.
|
||||
## grobstruktur
|
||||
|
||||
## zustandspeicher__
|
||||
## Zustandsübergangstabelle
|
||||
dies ist hybrid und dements. falsch
|
||||
|
||||
| $r\_i$ | $clk\_i$ | $v\_i$ | $q\_1$ | $q\_0$ | $q\_1'$ | $q\_0'$ |
|
||||
| ------ | -------- | ------ | ------ | ------ | ------- | ------- |
|
||||
| 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 0 | 0 | 0 | 0 | 1 | 0 | 1 |
|
||||
| 0 | 0 | 0 | 1 | 0 | 1 | 0 |
|
||||
| 0 | 0 | 0 | 1 | 1 | 1 | 1 |
|
||||
| 0 | 0 | 1 | 0 | 0 | 0 | 0 |
|
||||
| 0 | 0 | 1 | 0 | 1 | 0 | 1 |
|
||||
| 0 | 0 | 1 | 1 | 0 | 1 | 1 |
|
||||
| 0 | 0 | 1 | 1 | 1 | 1 | 1 |
|
||||
| 0 | 1 | 0 | 0 | 0 | 1 | 1 |
|
||||
| 0 | 1 | 0 | 0 | 1 | 0 | 0 |
|
||||
| 0 | 1 | 0 | 1 | 0 | 0 | 1 |
|
||||
| 0 | 1 | 0 | 1 | 1 | 1 | 0 |
|
||||
| 0 | 1 | 1 | 0 | 0 | 0 | 1 |
|
||||
| 0 | 1 | 1 | 0 | 1 | 1 | 0 |
|
||||
| 0 | 1 | 1 | 1 | 0 | 1 | 1 |
|
||||
| 0 | 1 | 1 | 1 | 1 | 0 | 0 |
|
||||
| 1 | X | X | X | X | 0 | 0 |
|
||||
| | | | | | | |
|
||||
@@ -1,22 +0,0 @@
|
||||
# Pipelining vs Pfade über mehrere Taktzyklen
|
||||
- Größerer Flächenverbrauch bei Pipelining als bei Pfade
|
||||
- Höherer Durchsatz (Throughput) bei Pipelining
|
||||
|
||||
|
||||
# Umgehen mit asynch Eingängen
|
||||
Bei Fehlerhaften Signalen kann man 2 D-Latches vorsetzen, diese wirken wie Verstärker und runden auf bzw. ab
|
||||
|
||||
#todo Einarbeiten *timing constraints* in Vivado
|
||||
|
||||
# Einbinden vorgefertigter Bauteile
|
||||
## IP-Cores
|
||||
|
||||
# Klausur
|
||||
- 4 Aufgaben manche Aufgaben können in Unteraufgaben aufgeteilt sein
|
||||
- 3/4 Stunde pro Aufgabe
|
||||
|
||||
- Aufgabe mit Prüfling, der getestet werden soll und von vordefiniertem Verhalten abweicht
|
||||
- Timing Verhalten
|
||||
- Automat
|
||||
**Bestimmte Fehler und Warnungen sind nicht zulässig!**
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
f# VHDL
|
||||
|
||||
Basis 3 Board oder Basis 2 Board
|
||||
Vivado wird im Labor verwendet, installationsvorgaben sind in Aulis vorzufinden
|
||||
|
||||
In der Übung heute VHDL ausprobieren
|
||||
|
||||
folgende List ist nicht vollständig und repräsentiert nur das durch Herrn Bredereke präsentierte Projekt ()
|
||||
## Typen
|
||||
- character
|
||||
- string
|
||||
- integer
|
||||
## Datenformate
|
||||
|
||||
`type <name> is (a, b, c);`
|
||||
`type <name> is array();`
|
||||
`type <name> is record ... end record;`
|
||||
|
||||
`constant <name>: <type> := <value>`
|
||||
|
||||
## Schnittstellen
|
||||
```vhdl
|
||||
entity <name> is
|
||||
port();
|
||||
end <name>;
|
||||
```
|
||||
|
||||
## Objekte
|
||||
``` vhdl
|
||||
constant <name>: <type> := ();
|
||||
```
|
||||
|
||||
## Zuweisung
|
||||
```vhdl
|
||||
constant <name>: integer := 0 --deklaration
|
||||
<name> <= 1 --variabeländerung
|
||||
```
|
||||
@@ -1,28 +0,0 @@
|
||||
# Wiederholung VHDL basics
|
||||
Signal verbindung zwischen FF oder auch zwischen Komponenten bzw. Elemente ist Kontextabhängig. Die Doc kann hier möglicherweise helfen.
|
||||
- Record als Bündel von Leitungen
|
||||
- Process ist eine Modellierung von Schaltteilen und ihrem Verhalten
|
||||
|
||||
In Vivado gibts einen Blockdesign Diagramm, dass die Grundstruktur nach der Kompilierung darstellt.
|
||||
|
||||
# Gemeinsamkeiten Endlicher Automat mit VHDL
|
||||
|
||||
| Endlicher Automat | VHDL |
|
||||
| --------------------------- | ------------------ |
|
||||
| Ausgabeschaltnetz | spezieller Process |
|
||||
| ZÜ-Schaltnetz | spezieller Process |
|
||||
| Eingabe und Ausgabealphabet | Port Konstrukt |
|
||||
| sprechende Namen | sprechende Namen |
|
||||
| Abstraktion | Abstraktion |
|
||||
|
||||
# Unterschiede Endlicher Automat mit VHDL
|
||||
|
||||
|
||||
| Endlicher Automat | VHDL |
|
||||
| ----------------- | ----------------------------------------------- |
|
||||
| manueller Entwurf | Code Muster, Werkzeuge, automatisierter Entwurf |
|
||||
| Startzustand | (Constant) Code Muster |
|
||||
| Zustand | Signal |
|
||||
| Zustandmenge | Aufzählungstyp |
|
||||
| | Schleifen |
|
||||
| | Datentypen |
|
||||
@@ -1,12 +0,0 @@
|
||||
- Bei VHDL werden die Bitbreiten durch den kompiler optimiert, eine Definierung der Bitbreiten ist nicht immer die beste idee
|
||||
- ## Basen
|
||||
- Dezimal: 10#\<value>
|
||||
- Dual: 2#\<value>
|
||||
- Oktal: 8#\<value>
|
||||
**Montag: 15.12 eventuell keine Vorlesung**
|
||||
|
||||
# Behandlung von Zeit in der Simulation
|
||||
- mit `after` pausieren und kann genaue Zeiten für aktionen/reaktionen einstellen
|
||||
- Delta verzögerung problematsisch
|
||||
- Nadelimpulse können Zustandswechsel verursachen, daher präferenzieren wir synchrone Schaltungen
|
||||
-
|
||||
@@ -1,20 +0,0 @@
|
||||
Signale werden nach einer Prozessdurchführung erst aktualiesiert(?)
|
||||
- Dies liegt anscheinend daran, dass VHDL ein execution model ist. Vorerst kommt ein simulationszyklus und anschließend ein executionszyklus
|
||||
- Garantiert den gleichen code mit immer exakt der gleichen simulationszyklen mit dem gleichen Ergebnis
|
||||
# Aufzählungstypen und wie der Compiler dabei funzt
|
||||
Einstellung unter Settings für gewünschtes Verhalten: [fsm-extraction](https://docs.amd.com/r/en-US/ug901-vivado-synthesis/Auto-State-Encoding)
|
||||
- onehot
|
||||
- jede codierung erhält einen flipflop
|
||||
- besonders schnell
|
||||
iSATE: implicit State (impliziter Zustand)
|
||||
|
||||
# Translation steps
|
||||
1. syntax checking
|
||||
2. rtl analysis
|
||||
3. synthesis
|
||||
4. implementation
|
||||
5. bitstream generation
|
||||
|
||||
# Diverses zu vivado
|
||||
- Truth table enthält unsere Wahrheitstabelle für die ausgewählte entity
|
||||
- Anschlusspad: für silizium wafers um ein teilbereich mit anderen componenten zu verbinden.
|
||||
@@ -1,25 +0,0 @@
|
||||
# Design under Test (DUT)
|
||||
Synonym mit *equipment under test* und *unit under test*.
|
||||
|
||||
# Testbenches mit separatem Test-Orakel
|
||||
# Testbenches mit Kommando-Interpreter
|
||||
# Bestimmen von sinnvollen Testzielen
|
||||
|
||||
# Erste Aufgabe Aufgabe 10
|
||||
(war ihm wichtig)
|
||||
|
||||
Testbenches erkennen delayed werte nicht und gibt dementsprechend keinen Fehler aus obwohl dies gewünscht ist.
|
||||
|
||||
Wenn man ein Signal abgreift ist das Ergebnis nicht immer gleich den Erwartungen. Dafür gibt es mehrere Strategien:
|
||||
#todo
|
||||
|
||||
# Zeitverhalten im Detail
|
||||
Beim Schalten des D-FF soll die Taktflanke stabil sein, dafür gibt es die Vorbereitung- und die Nachbereitungszeit.
|
||||
|
||||
# Zusatz Laboraufgabe 6
|
||||
Taschenrechner mit 7 Segmentanzeige
|
||||
Es wird dafür Multiplexing verwendet und dementsprechend müssen schnell genug alle Anzeigen aktualisiert werden
|
||||
- Modultest
|
||||
- Modulzerlegung
|
||||
- ein Modul wird uns vorgegeben, den Rest müssen wir erstellen
|
||||
- Module sollen am besten eine Eigenschaft gut implementieren und einzelne Modultests schreiben
|
||||
@@ -1,3 +0,0 @@
|
||||
1. tristate treiber kann zu glitches führen, sodass der reset kurz getätigt wurde
|
||||
1. synchroner reset filtert aus nanosekundenimpulse
|
||||
2. freigabeeingäge verwenden sichert einiges an kopfschmerzen
|
||||
Reference in New Issue
Block a user