library ieee; use ieee.std_logic_1164.all; entity ausgangsschaltnetz0042 is port ( a, b, x: in std_logic; y: out std_logic ); end; architecture verhalten of ausgangsschaltnetz0042 is begin y <= (b and not a and not x); end; library ieee; use ieee.std_logic_1164.all; entity uebergangsschaltnetz0042 is port ( a, b, x: in std_logic; aout, bout: out std_logic ); end; architecture verhalten of uebergangsschaltnetz0042 is begin bout <= (not x) or (not b and a); aout <= (not a) or (b and x) or (not b and not x); end;
https://www.youtube.com/watch?v=5S3O4NBc8ko">https://www.youtube.com/watch?v=5S3O4NBc8ko</URL>\\
\\
Ich empfehle ihnen dringend - diese Folge von youtube Videos zum L"osen des Rubik Cubes- damit wird es ganz simpel - ganz simpel - ich poste die Ergebnisse auf meiner Homepage.\\
\\
Nat"urlich werde ich die Abfolge Schritt f"ur Schritt auswendig lernen. Ich werde sie niederschreiben und auswendig lernen. Es nat"urlich in den aller seltensten F"allen 1:1. Trotzdem stimmen die Schritte - ich lerne sie auswendig und "ube sie Part f"ur Part
\\
Es gibt verschiedenste Parts - der erste ist das weisse Kreuz.\\
\\
Ich lerne es auswendig und "ube es \\
\\
Ich lerne so oder so weiter auch andere Sachen - ich denke, im Normalfall ist das angebracht - auch, etwas anderes zu tun, zum Beispiel weiter auswendig zu lernen, anderes. In dem Falle habe ich es mit nahe zu einem Anlauf
1894 &
\begin{verbatim}
lb, lbu
lh, lhu
lw
ld*
la*
li*
sb
sh
sw
sd*
add, addi, addiu
sub
mult, multu
div, divu
and, andi
or, ori
xor, xori
not*, abs*, neg*, rem*
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationbsbefehle
Gleitkommabefehle
Multimediabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Synchronisationsbefehle
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Lade- und Speicherarchitektur
Register- Speicherarchitektur
Speicher- Speicherarchitektur
Akkumulatorarchitektur
Stack- und Kellerarchitektur
Stackarchitektur: 8087, Intel, ATM 862 Atmel
Little-Endian, Big-Endian
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
signed
unsigned
packed
unpacked
bcd
ascii
byte
halbwort
wort
doppelwort
ieee-754-std
f = (-1)\^s * 1.m * 2\^(e-b)
32: einfach
64: doppelt
80: erweitert
Absolute Addressierung
Unmittelbare Addressierung
Registeraddressierung
Direkte Addressierung
Indirekte Addressierung
Indirekte Addressierung mit Autoinkrement/Dekrement
Indirekte Addressierung mit Verschiebung
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
Regwrite
Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlsz"ahler
4 x MUX
1 x AND
2 x Addierer
1 x 2 Bit Shifter
Befehlsdekodierer
- MemTorReg
- MemWrite
- Branch
- ALU-Src
- RegDst
- RegWrite
Funktionsdekodierer
- Func
- ALU-Op
- ALU-Operation
ALU
- Ergebnis
- Null
AND:
- PCSrc
Registersatz
- Lese-Daten-1
- Lese-Daten-2
- Schreibedaten
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- WE
Datenspeicher
- Addresse
- Lesedaten
- Schreibedaten
- WE
Befehlsz"ahler
- PC (t)
- PC (t+1)
Befehlsspeicher
- Leseaddresse
- Lesedaten
Func ALU-Op ALU-Operation
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - add
OpCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Op
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
Absolut: Branch
Befehlsz"ahlerrelativ: Jump
Befehlsz"ahlerindirekte: Jump Register
eq - equal
ne - not equal
gt - greater than
ge - greater than equal
lt - less than
le - less than equakl
JAL: Jump And Link: Speichern zuns"atzlich die Addresse die dem Sprungbefehl folgt
PC_neu = PC_alt + (i << 2)
PC_neu = PC_alt \& 0xf000 0000 | (i << 2)
j, b*, jr
jal
jalr
beq, bne
beqz*, bnez*
blt*, ble*
bltz, blez
bgt*, bge*
bgtz, bgez
Mehrzyklus Zustandselemente
- Befehlsz"ahler
- Befehlsspeicher
- Registersatz
- Datenspeicher
Pipeline-Prinzip
Pipleline-Stufe
Pipeline-Register
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
1.) Befehl holen
2.) Befehl dekodieren
3.) Operanden der ALU bereitstellen
4.) Operation in der ALU ausf"uhren
5.) Operanden in Architekturregister zur"uckschreiben
1.) IF - Instruction Fetch
2.) ID - Instruction Decode / Register Fetch
3.) EX - Execute Address Calculation
4.) MEM - Memory Access
5.) WB - Write Back
1.) Statisches Schedeling: VLIW - Prozessor: In Order Issue In Order Completion
2.) Dynamisches Scheduling: OOE-Prozessor: Out Of Order Issue Out Of Order Completion
1.) Statisches Sprungvorhersage
1.1.) Predict Always Not Taken
1.2.) Predcit Always Taken
1.3.) Predict Backward Taken/Forward Not Taken
2.) Dynamisch: 1 oder 2 Bit Pr"adiktor
2.1.) Taken / Not Taken
2.2.) Strongy/Weakly Taken/Not Taken
Schaltnetze
Schaltwerke
Komplexe Schaltwerke
Aufbau und Funktionsweise eines Computers
Schaltnetze
Boolesche Algebra
Definition der Booleschen Algebra
Schaltalgebra ein Modell der Booleschen Algebra
Schaltfunktion
Definition
Darstellung
Minimierung
Analyse von Schaltnetzen
Synthese von Schaltnetzen
Kodierer
Schaltnetzentwurf f"ur 8421-BCD zu Siebensegment Umsetzung
Schaltnetzentwurf f"ur den Addresscodierer
Addierglieder
Halbaddierer
Volladdierer
Paralleladdierer
Komperatoren
Multiplexer
ALU
Zahlendarstellung und Zweierkomplement
Addierer/Subtrahierer
Schaltnetze mit Programmierbaren Bausteien
ROM
PROM, EPROM
PAL
PLA
Laufzeiteffekte in Schaltnetzen
Schaltwerke
Modelle f"ur Schaltwerke
Implementierung von Schaltwerken
Synthese von Schaltwerken
Analyse von Schaltwerken
Operationswerk und Mikroprozessor
Speicherglieder
Transformation Mealy und Moore Automat
Schaltwerke mit Bin"arkodierten Zustand
Komplexe Schaltwerke
Aufbau Komplexer Schaltwerke
Entwurf Komplexer Schaltwerke
RTL-Notation
ASM-Diagramme
Zustandsboxen
Entscheidungsboxen
Bedingte Ausgangsboxen
ASM-Block
...
Beispiel 1en Z"ahler
L"osung mit Komplexen Moore-Schaltwerk
L"osung mit Komplexen Mealy Schaltwerk
Aufbau und Funktionsweise des Operationswerks
Mealy-Steuerwerk als Konventionelles Schaltwerk
Mealy-Steuerwerk mit Hotone-Kodierung
Moore-Steuerwerk als konventionelles Schaltwerk
Moore-Steuerwerk mit Hot-One-Kodierung
Mikroprogrammierte Steuerwerke
Aufbau und Funktionswese des Computers
Elemente beim Computer
Rechenwerk
Leitwerk
Speicher
Ein und Ausgaben
Boolesche Algebra, Schaltfunktion
Boolesche Algebra, Schaltfunktionen
Boolesche Algebra, Schaltfunktionen
Boolesche Algebra, Schaltfunktionen
Boolesche Algebra, Schaltfunktionen
Boolesche Algebra, Schaltfunktionen
Boolesche Algebra, Schalftunktionen
Definition der Boolesche Algebra
Schaltalgebra ein Modell der Booelschen Algebra
Definition der Booleschen Algebra
Schaltalgebra ein Modell der Booleschen Algebra
Definition der Booleschen Algebra
Schaltalgebra ein Modell der Booleschan Algebra
Definition der Booleschen Algebra
Schaltalgebra ein Modell der Booleschen Albgebra
Definition, Darstellung, Minimierung
Definition, Darstellung, Minimierung
Definition, Darstellung, Minimierung
Definition, Darstellung, Minimierung
Schaltnetzentwurf f"ur die 8421-BCD-zu Sieben Segment Umsetzung
Schaltnetzentwurf f"ur den Addresskodierer
Schaltnetzentwurf f"ur die 8421-BCD-zu Sieben Segment Umsetzung
Schaltnetentwurf d"u den Addresskodierer
Modelle f"ur Schaltwerke
Implementierung f"ur Schaltwerke
Modelle f"ur Schaltwerke
Implementierung f"ur Schaltwerke
Modelle, Implementierun
Modelle, Implementierung
Modelle, Implementierung
Modelle, Implementierung
Modelle, Implementierung
Modelle, Implementierung
Modelle f"ur Schaltwerke
Implementierung f"ur Schaltwerke
Modelle f"ur Schaltwerke
Implementierung f"ur Schaltwerke
Modelle f"ur Schaltwerke
Implementierung f"ur Schaltwerke
Modelle f"ur Schaltwerke
Implementierung f"ur Schaltwerke
Komplexes Schaltwerke und Mikroprozessor
Speicherglieder
Komplexe Schaltwerk und Mikroprozessor
Speicherglieder
Komplexes Schaltkwer und Mikroprozessor
Speicherglieder
Komplexes Schaltwerk und Mikroprozessor
Speicherglieder
Transformation Mealy und Moore Automat
Schatwerke mit Bin"arkodierten Zustand
Transformation Mealy und Moore Automat
Schaltwerke mit Bin"arkodierten Zust"and
Transformation Mealy und Moore Automat
Schaltwerke mit Bin"arcodierten Zustand
Entwurf von Schaltwerken
Aufbau Komplexer Schaltwerke
Entwurf von Schaltwerken
Aufbau Komplexer Schaltwerke
Entwurf von Schaltwerken
Aufbau Komplexer Schaltwerke
Entwurf von Schaltwerken
Aufbau Komplexer Schaltwerke
RTL-Notation, ASM-Diagramme
RTL-Notation, ASM-Diagramme
RTL-Notation, ASM-Diagramme
RTL-Notation, ASM-Diagramme
Konstruktionsregeln f"ur Operationswerke
Entwurf des Steuerwerks
Konstruktionsregeln f"ur Operationswerke
Entwurf des Steuerwerks
Konstructionsregeln f"ur Operationswerke
Entwurf des Steuerwerks
Konstructionsregeln f"ur Operationswerke
Entwurf des Steuerswerk
L"osung, L"osung, L"osung, L"osung
L"osung mit, L"osung mit, L"osung mit L"osung mit
L"osung mit Komplexen Moore-Schaltwerk
L"osung mit Komplkexen Mealy Schaltwerke
L"osung mit Komplexen Moore-Schaltwerk
L"osung mit Komplexen Meakly Schaltwerke
L"osung mit Komplexen Moore-Schaltwerk
L"osung mit Komplexen Mealy Schaltwerk
Moore-Steuerwerk
Mealy Steuerwerk
Moore Steuerwerk
Mealy Steuewrk
Moore Steuerwerk
Mealy Steuerwerk
Moore Steuerwerk mit Hot-One Kodierung
Moore als als Konventionelles Schaltwerk
Hot One Konventionell komplex
Hot One Konventionell komplex
Hot One Konventionell Komplex
Hot One Konventionell Komplexe
Moore Steuerwerk als konventionelles schaltwerk
Moore Steuerwerk mit Hot One Codierung
Moore Steuwerk als konventionelels Schaltwerk
Moore Steuwerk mit Hot One Codierung
HotOne, Mikprogroprommierung, Komplex, Konvetionell
Konventionell, Komplex HotOne Mikorpogrammiert
Erweiterung komplexer Schaltwerke
Erweiterung komplexer Schaltwerke
Erweiterung komplexer Schaltwerke
Erweiterung komplexer Schaltwerke
Erweiterung komplexer Schaltwerke
Erweiterung komplexer Schaltwerke
Aufbau und Funktionsweise eines Computers
Erweiterung komplexer Schaltwerke
Aufbau und Funktionsweise eines Computers
Erweiterung komplexer Schaltwerke
Aufbau und Funktionsweise eines computers
Erweiterung komplexer Schaltwerke
Komponenten eines Computers
Kompoentnen eines Computers
Komponenten eines Computers
Komponenten eines Computers
Komponenten eines Computers
Erweiterung komplexer Schaltwerke
Komponenten eines Computers
erweiterung komplexer Schaltwerke
Komponenten eines Computers
Erweiterung komplexer Schalwerke
Komponennten eines Computers
erweiterung, Komponente, Erweiterung, Komponente, Erweiterung ,Kompjnente
Interene und Externe Busse
Interne und Externe Busse
Interne und Externe Buss
UInterne und Externe Busse
Interne und Externe Busse
Interne und Externe Busse
Prozessorregsiter
Prozessorregister
Prozessorregister
Prozessorregister
Interne und Externe Busse
Prozessorregister
Interne und Externe Busse
Prozessoregister
Interne und Externe Busse
Prozessoreguister
Erweiterung komplexer Schaltwerke
Komponenten eines Computers
Interne und Extrene Busse
Prozessorregister
erweiterung komplexer Schaltwerke
Komponenten eines Computers
Interne und Externe Busse
Prozessoregsiter
Erweiterung komplexer Schaltwerke
Erweiterung komplexer Schaltwerke
Erweiterung komplexer Schaltwerke
Rechenwerk
Leitwerk
Rechenwerk
Leitwerk
Rechenwerk
Leitwerke
Aufbau und Funktionsweise eines Compteters
Erweiterung komplexer Schaltwerke
Komponenten eines Computers
Prozessoregister
Interne und Externe Busse
Rechenwerk
Leitwerk
Aufbau und Funktionsweise eines computers
Erweiterung komplexer Schaltwerke
Komponetnen eines Computers
Prozessoregsiter
Interne und Externe Busse
Rechenwerk
Leitwerke
Schaltnetze
Schaltwerke
Komplexe Schaltwerke
Aufbau und Funktionsweise eines Computers
Schaltnetze
Boolesche Algebra
Definition der Booleschen Algebra
Schaltalgebra ein Modell der Booleschen Algebra
Schaltfunktion
Definition
Darstellung
Minimierung
Analyse von Schaltnetzen
Synthese von Schaltnetzen
Kodierer
Schaltnetzentwurf f"ur den 8421-BCD-zu Siebensegment Umsetzung
Schaltnetzentwurf f"ur den Addresskodierer
Addierglieder
Halbaddierer
Volladdierer
Paralleladdierer
Komperatoren
Multiplexer
ALU
Zahlendarstellung und Zweierkomplement
Addierer/Subtrahierer
Schaltnetze Programmierbare Bausteinen
Schaltwerke
Modelle f"ur Schaltwerke
Implementierung f"ur Schaltwerke
Synthese von Schaltwerken
Analyse von Schaltwerke
Konstruktionsregeln f"ur Operationswerke
Speicherglieder
Transformation Mealy und Moore Automat
Bin"arcodierte Schaltwerke
Komplexe Schaltwerke
Aufbau komplexer Schaltwerke
Entwurf komplexer Schaltwerke
RTL-Notation
ASM-Diagramme
Zustandsboxen
Entscheidungsboxen
Bedingte Ausgangsboxen
ASM-Block
Konstruktionsregeln f"ur Operationswerke
...
Beispiel 1en Z"ahler
L"osung mit komplexen Moore Schaltwerk
L"osung mit komplexen Mealy Schaltwerk
Operationswerk
Mealay Steuerwerk als konventionelles Schaltwerk
Mealy Steuerwerk mit Hot One Kodierung
Moore Steuwerk als konventionelles Schaltwer
Moore Steuerwerk mit HotOne Kodierung
Mikroprogrammierte Steuerwerk
Aufbau und Funktionsweise eines Computers
Erweiteurng komplexer Schaltwerke
Komponenten eines Computers
Rechenwerk
Leitwerk
Speicher
Ein und Ausgaben
Interne und Externe Busse
Prozessorregister
Rechenwerk
Leitwerk
Unterprogramme, Stckpointer, Unterbrechungen, Interrupts
DIN44300
DIN4430/93
DIN4430/87
DIN4430/93: Schaltnetz
DIN4430/87: Schaltfunktion
Gesetze
- Distributivgesetz
- Assoziativgesetz
- Kommutativgesetz
- Absorbtionsgesetz
- Dualit"atsprinzip
- Neutrale Elemnte
- Inverse Elemente
Verkn"upfung
- NAND, NOR
- Disjunktion, Konjunktion
- Antivalenz, "Aquivalenz
- Null, Eins
- Invers
- Komplement
- Inhibition, Transfer
Wahrheitstafel
Schaltplan
Schaltzeichen
Funktionsgleichung
KV-Diagramm
Bin"ares Entscheidungsdiagramm
DIN40700
Kodierer Blat 43 oder so
Kodierer: Ordnen einem Zeichensatz ein Elemente eines anderen Zeichensatzes zu
Schaltfunktion: Vektorfunktion
f:{0,1}\^n -> {0,1}\^m
Eingangsvektor
Schaltnetz
Ausgangsvektor
Eingangsvariablen: x1, x2, ..., xn
Volladdierer Funktion
S = A XOR B XOR C
U = (A AND B) AND (A OR B) AND C
DIN40700: Das sind die einzelnen Schaltelemente
DIN44300: Das sind die Schaltfunktion, Schaltnzeichen und so weiter
"U = (A AND B) OR (A OR B) AND C
"U = (A AND B) OR (A OR B) AND C
"U = (A AND B) OR (A OR B) AND C
"U = (A AND B) OR (A OR B) AND C
AND, OR, OR, AND
AND OR OR AND
AND OR OR AND
AND OR OR AND
"U = (A AND B) OR (A OR B) AND C
"U = (A AND B) OR (A OR B) AND C
"U = (A AND B) OR (A OR B) AND C
"U = (A AND B) OR (A OR B) AND C
"U = (A AND B) OR (A OR B) AND C
DIN44300
DIN44300
DIN44300
DIN44300
Schaltnetze: Elektronische Schaltungen, die Spannungen als logische Variablen 0 und 1 interpretieren
Schaltnetze: Elektronische Schaltungen, die Spannungen als logische Variablen 0 und 1 interpretieren
Schaltnetze: Elektronische Schaltugnen, die Spannungen als logische Variablen 0 und 1 interpretieren
Boolesche Algebra, Schaltalgebra
Boolesche Algebra, Schaltalgebra
Boolesche Algebra, Schaltalgebra
Boolesche Algebra, Schaltalgebra
Verkn"upfungsglieder, Schaltfunktion, Vektorfunktion
Verkn"upfungsglieder, Schatlfunktion, Vektorfunktio bn
Verkn"upfungsglieder, Schaltfunktion, vektorfunktion
Verkn"upfungsglieder, Schaltfunktion, Vektorrfunktion
F:{0,1}\^n -> {0,1}\^m
F:{0,1}\^n -> {0,1}\^m
F:{0,1}\^n -> {0,1}\^m
F:{0,1}\^n -> {0,1}\^m
Schaltnetz: DIN44300/93
Schaltnetz: DIN44300/93
Schaltnetz: DIN44300/93
Schaltnetz: DIN44300/93
Schaltnetz: DIN44300/93
Schaltplan
Funktionstabelle
Funktionsgleichung
Schaltalgebra
schaltplatn
Funktionstabelle
Funktionslgeichung
Schaltalgebra
Schaltplatn
Funktionstabelle
funktionsgleichung
Schaltalgebra
Schaltplan
Funktionstabelle
Funktionsgleichung
Funktionstaeblle
Funktiosnsgleichung
Kommutativ, Assoziativ, Distributiv, Absorbtion
Kommutativ, Assoziativ,k Distributiv, Absorption
Kommutativ, Assoziativ, Distributiv, Absorption
Kommutativ, Assoziativ, Distrbutiv, Absorbtion
Kommutativ, Assoziativ, Distributiv, Absorbtion
Kommutativ, Assoziativ, Distributiv Absorbition
Kommutativ, Assoziativ, Distributiv Absorption
Neutrales Element, komplement"ares Element
eutrales Element, Komplemenet"ares Elemente
Neutrales Element, Komplement"ares Element
Neutrales Element Komplement"ares Element
Dualit"atsprinzip De Morgansche Regeln
Dualit"atsprinzip De Morgansche Regeln
Kommutativ, Assoziativ, Distributiv, Absorobtiobn, Neuetrales Elemetn, Komplement"ares SElement, Dualtit"atsprunzip De Morgansche Regeln
DIN44300/87: Schaltfunktion
DIN44300/87: Schaltfunktion
DIN44300/87: Schaltfuntkion
DIN44300/87: Schaltfunnktion
Schaltnetz, Schalftunktion
Schaltnetz, Schaltfunktion
Schaltnetz, Schalffunktion
Schaltetz: DIN44300/93
Schalftunktion DIN44300/87
Disjunktion, Konjunktion
Disjunktion, Konjunktion
Disjunktion, Konjunktion
Disjunktion, Konjunktion
Disjunktion, Konjunktion
Inhibition, Transfer
Inhibition, Transfer
Inhibition, Transfer
Inhibition, Transfer
Inhibtion, Transfer
Inhibition, Transfer
NOR, NAND
NOR, NAND
NOR, NAND
NOR NAND
"Aquivalenz
Antivalenz
"Aquivalenz, Antivalenz
"Aquivalenz Antivalenz
Null, Eins
Null, Eins
Null, Eins
Null, Eins
Null, eins
Implikation
Implikation
Implikation
Transfer, Inhibition, Implikation
Transfer, Inhibition, Implikation
Grundverk"upfung: DIN40700
Grundverk"unpfung: DIN40700
Grundverk"unpfung: DIN40700
"U = (A AND B) OR (A OR B) AND C
AND OR OR AND
AND OR OR AND
AND OR OR AND
AND OR OR AND
"U = (A AND B) OR (A OR B) AND C
"U = (A AND B) OR (A OR B) AND C
"U = (A AND B) OR (A OR B) AND C
PLHS18P8
PLHS18P8
PLHS18P8
PLHS18P8
PAL16L8
PAL16L8
PAL16L8
18 16
18 16
18 16
PLHS
PLHS
PLHS
P L
P L
P L
8 8 88 88 8
GAL 20 V 10
PLV
PLV
PLV
PLV
PLV
20 18 16
20 18 16
20 18 16
20 18 16
8 10
8 10
8 10
PAL 16L8
GAL 20V10
PLHS 18P8
5 Bit 32 Bit 5 Bit 32 Bit 5 Bit 32 Bit 5 Bit 32 Bit 5 Bit 32 Bit 5 Bit 32 Bit r-typ Befehle r-typ Befehle r-typ Befehle r-typ Befehle r-typ Befehle r-typ Befehle r-Typ Befehle r-typ befehle: add, sub, and, or, slt r-typ Befehle: add, sub, and, or, slt r-typ Befehle: add, sub, and, or, slt r-typ Befehle: add, sub, and, or, slt r-typ Befehle: add, sub, and, or, slt r-typ Befehle: add, sub, and, or, slt rt-Feld rs-Feld rt-Feld, rs-Feld rt-Feld, rs-Feld rt-Feld, rs-Feld rt-Feld, rs-Feld rt-Feld, rs-Feld ALU-Op, 00, x1, 1x ALU-Op, 00, x1, 1x ALU-Op, 00, x1, 1x ALU-Op: 00 addition ALU-Op: x1 subtraction ALU-Op: 1x Func Feld ALU-Op: 00 addition x1: subtratkion 1x func feld 00 addition x1 subtratkoin 1x func feld 00 addition x1 subtration 1x func feld Func 4 0 4 2 4 4 func 4 0 4 2 4 4 Func 4 0 4 2 4 4 Func 4 0 4 2 4 4 Func 4 0 4 2 4 4 Func 4 0 4 2 4 4 4 5 5 2 Func 4 0 4 2 4 4 4 5 5 2 Func 4 0 4 2 4 4 4 5 5 2 Func 4 0 4 2 4 4 4 5 5 2 add sub and or slt add sub and or slt add sub and or slt add sub and so slt 4 0 4 2 4 4 4 5 5 2 4 0 4 2 4 4 4 5 5 2
library ieee;
use ieee.std_logic_1164.all;
entity meinschaltnetz0043 is
port
(
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end;
architecture verhalten of meinschaltnetz0043 is
begin
y <= (x3 and not x1) or
(x3 and x2) or
(x3 and not x0) or
(x2 and x1 and not x0) or
(not x3 and not x2 and x1 and x0);
end;
library ieee;
use ieee.std_logic_1164.all;
entity testbench0043 is
port
(
y: out std_logic
);
end;
architecture verhalten of testbench0043 is
component meinschaltnetz0043
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end component;
signal x3, x2, x1, x0: std_logic;
begin
sn: meinschaltnetz0043 PORT MAP (x3=>x3, x2=>x2, x1=>x1, x0=>x0, y=>y);
x0 <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns;
x1 <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x2 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x3 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '0' after 40 ns, '0' after 50 ns, '0' after 60 ns, '0' after 70 ns, '1' after 80 ns, '1' after 90 ns, '1' after 100 ns, '1' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
end;
[code]
[img] https://www.ituenix.de/nextcloud/data/dave/files/Documents/david4/2023-12-04/Screenshot_20231204_195113.png [/img]
[code]
0 0 0 0 0 0
1 0 0 0 1 0
2 0 0 1 0 0
3 0 0 1 1 1
4 0 1 0 0 0
5 0 1 0 1 0
6 0 1 1 0 1
7 0 1 1 1 0
8 1 0 0 0 1
9 1 0 0 1 1
10 1 0 1 0 1
11 1 0 1 1 0
12 1 1 0 0 1
13 1 1 0 1 1
14 1 1 1 0 1
15 1 1 1 1 1
0 0 0 0 0 0
1 0 0 0 1 0
2 0 0 1 0 0
3 0 0 1 1 1
4 0 1 0 0 0
5 0 1 0 1 0
6 0 1 1 0 1
7 0 1 1 1 0
8 1 0 0 0 1
9 1 0 0 1 1
10 1 0 1 0 1
11 1 0 1 1 0
12 1 1 0 0 1
13 1 1 0 1 1
14 1 1 1 0 1
15 1 1 1 1 1
3 0 0 1 1 1
6 0 1 1 0 1
8 1 0 0 0 1
9 1 0 0 1 1
10 1 0 1 0 1
12 1 1 0 0 1
13 1 1 0 1 1
14 1 1 1 0 1
15 1 1 1 1 1
Gruppe 1:
8 1 0 0 0 1
Gruppe 2:
3 0 0 1 1 1
6 0 1 1 0 1
9 1 0 0 1 1
10 1 0 1 0 1
12 1 1 0 0 1
Gruppe 3:
13 1 1 0 1 1
14 1 1 1 0 1
Gruppe 4:
15 1 1 1 1 1
8:9 1 0 0 -
8:10 1 0 - 0
8:12 1 - 0 0
3 0 0 1 1
6:14 - 1 1 0
9:13 1 - 0 1
10:14 1 - 1 0
12:13 1 1 0 -
12:14 1 1 - 0
13:15 1 1 - 1
14:15 1 1 1 -
12:13 1 1 0 -
8:9 1 0 0 -
14:15 1 1 1 -
8:10 1 0 - 0
12:14 1 1 - 0
13:15 1 1 - 1
8:12 1 - 0 0
9:13 1 - 0 1
10:14 1 - 1 0
6:14 - 1 1 0
3 0 0 1 1
8:9 1 0 0 -
12:13 1 1 0 -
14:15 1 1 1 -
8:10 1 0 - 0
12:14 1 1 - 0
13:15 1 1 - 1
8:12 1 - 0 0
9:13 1 - 0 1
10:14 1 - 1 0
6:14 - 1 1 0
3 0 0 1 1
Gruppe 1:
8:9 1 0 0 -
Gruppe 2:
12:13 1 1 0 -
Gruppe 3:
14:15 1 1 1 -
Gruppe 1:
8:10 1 0 - 0
Gruppe 2:
12:14 1 1 - 0
Gruppe 3:
13:15 1 1 - 1
Gruppe 1:
8:12 1 - 0 0
Gruppe 2:
9:13 1 - 0 1
10:14 1 - 1 0
6:14 - 1 1 0
3 0 0 1 1
Gruppe 1:
8:9 1 0 0 -
Gruppe 2:
12:13 1 1 0 -
Gruppe 3:
14:15 1 1 1 -
8:9:12:13 1 - 0 -
12:13:14:15 1 1 - -
Gruppe 1:
8:10 1 0 - 0
Gruppe 2:
12:14 1 1 - 0
Gruppe 3:
13:15 1 1 - 1
8:10:12:14 1 - - 0
12:14:13:15 1 1 - -
Gruppe 1:
8:12 1 - 0 0
Gruppe 2:
9:13 1 - 0 1
10:14 1 - 1 0
8:12:9:13 1 - 0 -
8:12:10:14 1 - - 0
6:14 - 1 1 0
3 0 0 1 1
8:9:12:13 1 - 0 -
12:13:14:15 1 1 - -
8:10:12:14 1 - - 0
12:14:13:15 1 1 - -
8:12:9:13 1 - 0 -
8:12:10:14 1 - - 0
6:14 - 1 1 0
3 0 0 1 1
8:9:12:13 1 - 0 -
8:12:9:13 1 - 0 -
12:13:14:15 1 1 - -
12:14:13:15 1 1 - -
8:10:12:14 1 - - 0
8:12:10:14 1 - - 0
6:14 - 1 1 0
3 0 0 1 1
8:9:12:13 1 - 0 -
12:13:14:15 1 1 - -
8:10:12:14 1 - - 0
6:14 - 1 1 0
3 0 0 1 1
3 6 8 9 10 12 13 14 15
6:14 * *
8:9:12:13 * * * *
12:13:14:15 * * * *
8:10:12:14 * * * *
3 *
3 8 9 10 12 13 14 15
8:9:12:13 * * * *
12:13:14:15 * * * *
8:10:12:14 * * * *
3 *
y <= (x3 and not x1) or
(x3 and x2) or
(x3 and not x0) or
(x2 and x1 and not x0) or
(not x3 and not x2 and x1 and x0)
y <= not((not x3 or x1) and
(not x3 or not x2) and
(not x3 or x0) and
(not x2 or not x1 or x0) and
(x3 or x2 or not x1 or not x0))
library ieee;
use ieee.std_logic_1164.all;
entity meinschaltnetz0043 is
port
(
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end;
architecture verhalten of meinschaltnetz0043 is
begin
y <= (x3 and not x1) or
(x3 and x2) or
(x3 and not x0) or
(x2 and x1 and not x0) or
(not x3 and not x2 and x1 and x0);
end;
library ieee;
use ieee.std_logic_1164.all;
entity testbench0043 is
port
(
y: out std_logic
);
end;
architecture verhalten of testbench0043 is
component meinschaltnetz0043
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end component;
signal x3, x2, x1, x0: std_logic;
begin
sn: meinschaltnetz0043 PORT MAP (x3=>x3, x2=>x2, x1=>x1, x0=>x0, y=>y);
x0 <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns;
x1 <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x2 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x3 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '0' after 40 ns, '0' after 50 ns, '0' after 60 ns, '0' after 70 ns, '1' after 80 ns, '1' after 90 ns, '1' after 100 ns, '1' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
end;
b a x b a y 0 0 0 0 0 1 0 1 0 0 1 1 1 0 2 0 1 0 0 1 1 3 0 1 1 1 0 0 4 1 0 0 1 1 0 5 1 0 1 0 0 0 6 1 1 0 0 1 0 7 1 1 1 0 0 0 b a x b 0 0 0 0 0 1 0 0 1 1 2 0 1 0 0 3 0 1 1 1 4 1 0 0 1 5 1 0 1 0 6 1 1 0 0 7 1 1 1 0 b a x a 0 0 0 0 1 1 0 0 1 1 2 0 1 0 1 3 0 1 1 0 4 1 0 0 1 5 1 0 1 0 6 1 1 0 1 7 1 1 1 0 b a x y 0 0 0 0 0 1 0 0 1 0 2 0 1 0 1 3 0 1 1 0 4 1 0 0 0 5 1 0 1 0 6 1 1 0 0 7 1 1 1 0 b a x b 1 0 0 1 1 3 0 1 1 1 4 1 0 0 1 b a x a 0 0 0 0 1 1 0 0 1 1 2 0 1 0 1 4 1 0 0 1 6 1 1 0 1 b a x y 2 0 1 0 1 b a x b Gruppe 1: 1 0 0 1 1 4 1 0 0 1 Gruppe 2: 3 0 1 1 1 1:3 0 - 1 4 1 0 0 bout <= (not b and x) or (b and not a and not x); b a x a Gruppe 0: 0 0 0 0 1 Gruppe 1: 1 0 0 1 1 2 0 1 0 1 4 1 0 0 1 Gruppe 2: 6 1 1 0 1 0:1 0 0 - 0:2 0 - 0 0:4 - 0 0 2:6 - 1 0 4:6 1 - 0 0:4 - 0 0 2:6 - 1 0 0:2 0 - 0 4:6 1 - 0 0:1 0 0 - 0:4:2:6 - - 0 0:2:4:6 - - 0 0:1 0 0 - aout <= (not x) or (not b and not a); b a x y 2 0 1 0 1 bout <= (not b and x) or (b and not a and not x); aout <= (not x) or (not b and not a); y <= (not b and a and not x); library ieee; use ieee.std_logic_1164.all; entity meinausgangsschaltnetz0043 is port ( a, b, x: in std_logic; y: out std_logic ); end; architecture verhalten of meinausgangsschaltnetz0043 is begin y <= (not b and a and not x); end; library ieee; use ieee.std_logic_1164.all; entity meinuebergangsschaltnetz0043 is port ( a, b, x: in std_logic; aout, bout: out std_logic ); end; architecture verhalten of meinuebergangsschaltnetz0043 is begin bout <= (not b and x) or (b and not a and not x); aout <= (not x) or (not b and not a); end; library ieee; use ieee.std_logic_1164.all; entity testbenchschaltnetze0043 is port ( aout, bout, y: out std_logic ); end; architecture verhalten of testbenchschaltnetze0043 is component meinausgangsschaltnetz0043 port ( a, b, x: in std_logic; y: out std_logic ); end component; component meinuebergangsschaltnetz0043 port ( a, b, x: in std_logic; aout, bout: out std_logic; ); end component; signal a, b, x: std_logic begin u: meinuebergangsschaltnetz0043 PORT MAP (a=>a, b=>b, x=>x, aout=>aout, bout=>bout); a: meinausgangsschaltnetz0043 PORT MAP (a=>a, b=>b, x=>x, y=>y); x <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns; a <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns; b <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns; end;
b a x b a y 0 0 0 0 0 1 0 1 0 0 1 1 1 0 2 0 1 0 0 1 1 3 0 1 1 1 0 0 4 1 0 0 1 1 0 5 1 0 1 0 0 0 6 1 1 0 0 1 0 7 1 1 1 0 0 0
library ieee;
use ieee.std_logic_1164.all;
entity meinschaltnetz0043 is
port
(
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end;
architecture verhalten of meinschaltnetz0043 is
begin
y <= (x3 and not x1) or
(x3 and x2) or
(x3 and not x0) or
(x2 and x1 and not x0) or
(not x3 and not x2 and x1 and x0);
end;
library ieee;
use ieee.std_logic_1164.all;
entity testbench0043 is
port
(
y: out std_logic
);
end;
architecture verhalten of testbench0043 is
component meinschaltnetz0043
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end component;
signal x3, x2, x1, x0: std_logic;
begin
sn: meinschaltnetz0043 PORT MAP (x3=>x3, x2=>x2, x1=>x1, x0=>x0, y=>y);
x0 <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns;
x1 <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x2 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x3 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '0' after 40 ns, '0' after 50 ns, '0' after 60 ns, '0' after 70 ns, '1' after 80 ns, '1' after 90 ns, '1' after 100 ns, '1' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
end;
library ieee; use ieee.std_logic_1164.all; entity meinausgangsschaltnetz0043 is port ( a, b, x: in std_logic; y: out std_logic ); end; architecture verhalten of meinausgangsschaltnetz0043 is begin y <= (not b and a and not x); end; library ieee; use ieee.std_logic_1164.all; entity meinuebergangsschaltnetz0043 is port ( a, b, x: in std_logic; aout, bout: out std_logic ); end; architecture verhalten of meinuebergangsschaltnetz0043 is begin bout <= (not b and x) or (b and not a and not x); aout <= (not x) or (not b and not a); end; library ieee; use ieee.std_logic_1164.all; entity testbenchschaltnetze0043 is port ( aout, bout, y: out std_logic ); end; architecture verhalten of testbenchschaltnetze0043 is component meinausgangsschaltnetz0043 port ( a, b, x: in std_logic; y: out std_logic ); end component; component meinuebergangsschaltnetz0043 port ( a, b, x: in std_logic; aout, bout: out std_logic ); end component; signal a, b, x: std_logic; begin s1: meinuebergangsschaltnetz0043 PORT MAP (a=>a, b=>b, x=>x, aout=>aout, bout=>bout); s2: meinausgangsschaltnetz0043 PORT MAP (a=>a, b=>b, x=>x, y=>y); x <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns; a <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns; b <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns; end; library ieee; use ieee.std_logic_1164.all; entity rslatch0043 is port ( r, s: in std_logic; q: out std_logic ); end; architecture verhalten of rslatch0043 is signal q1, q2: std_logic; begin q1 <= (s nor q2); q2 <= (r nor q1); q <= q1; end; library ieee; use ieee.std_logic_1164.all; entity clkrslatch0043 is port ( r, s: in std_logic; q: out std_logic; c: in std_logic ); end; architecture verhalten of clkrslatch0043 is component rslatch0043 port ( r, s: in std_logic; q: out std_logic ); end component; signal r1, s1: std_logic; begin rs: rslatch0043 PORT MAP (r=>r1, s=>s1, q=>q); r1 <= r and c; s1 <= s and c; end; library ieee; use ieee.std_logic_1164.all; entity dlatch is port ( q: out std_logic; c, d: in std_logic ); end; architecture verhalten of dlatch is component clkrslatch0043 port ( r, s, c: in std_logic; q: out std_logic ); end component; signal d1, d2: std_logic; begin clkrs: clkrslatch0043 PORT MAP (r=>d1, s=>d2, c=>c, q=>q); d1 <= d; d2 <= not d; end; library ieee; use ieee.std_logic_1164.all; entity dmsff is port ( q: out std_logic; d, c: in std_logic ); end; architecture verhalten of dmsff is component dlatch port ( q: out std_logic; d, c: in std_logic ); end component; signal d1, d2: std_logic; signal c1, c2: std_logic; signal q1, q2: std_logic; begin master: dlatch PORT MAP (d=>d1, c=>c1, q=>q1); slave: dlatch PORT MAP (d=>d2, c=>c2, q=>q2); c1 <= c; c2 <= not c; d1 <= d; d2 <= q1; q <= q2; end;
library ieee;
use ieee.std_logic_1164.all;
entity meinausgangsschaltnetz0043 is
port
(
a, b, x: in std_logic;
y: out std_logic
);
end;
architecture verhalten of meinausgangsschaltnetz0043 is
begin
y <= (not b and a and not x);
end;
library ieee;
use ieee.std_logic_1164.all;
entity meinuebergangsschaltnetz0043 is
port
(
a, b, x: in std_logic;
aout, bout: out std_logic
);
end;
architecture verhalten of meinuebergangsschaltnetz0043 is
begin
--bout <= (not b and x) or
-- (b and not a and not x);
--aout <= (not x) or (not b and not a);
bout <= b xor a;
aout <= not a;
end;
library ieee;
use ieee.std_logic_1164.all;
entity testbenchschaltnetze0043 is
port (
aout, bout, y: out std_logic
);
end;
architecture verhalten of testbenchschaltnetze0043 is
component meinausgangsschaltnetz0043
port (
a, b, x: in std_logic;
y: out std_logic
);
end component;
component meinuebergangsschaltnetz0043
port (
a, b, x: in std_logic;
aout, bout: out std_logic
);
end component;
signal a, b, x: std_logic;
begin
s1: meinuebergangsschaltnetz0043 PORT MAP (a=>a, b=>b, x=>x, aout=>aout, bout=>bout);
s2: meinausgangsschaltnetz0043 PORT MAP (a=>a, b=>b, x=>x, y=>y);
x <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns;
a <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns;
b <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
end;
library ieee;
use ieee.std_logic_1164.all;
entity rslatch0043 is
port (
r, s: in std_logic;
q: out std_logic
);
end;
architecture verhalten of rslatch0043 is
signal q1, q2: std_logic;
begin
q1 <= (s nor q2);
q2 <= (r nor q1);
q <= q1;
end;
library ieee;
use ieee.std_logic_1164.all;
entity clkrslatch0043 is
port (
r, s: in std_logic;
q: out std_logic;
c: in std_logic
);
end;
architecture verhalten of clkrslatch0043 is
component rslatch0043
port
(
r, s: in std_logic;
q: out std_logic
);
end component;
signal r1, s1: std_logic;
begin
rs: rslatch0043 PORT MAP (r=>r1, s=>s1, q=>q);
r1 <= r and c;
s1 <= s and c;
end;
library ieee;
use ieee.std_logic_1164.all;
entity dlatch is
port
(
q: out std_logic;
c, d: in std_logic
);
end;
architecture verhalten of dlatch is
component clkrslatch0043
port
(
r, s, c: in std_logic;
q: out std_logic
);
end component;
signal d1, d2: std_logic;
begin
clkrs: clkrslatch0043 PORT MAP (r=>d1, s=>d2, c=>c, q=>q);
d1 <= d;
d2 <= not d;
end;
library ieee;
use ieee.std_logic_1164.all;
entity dmsff is
port
(
q: out std_logic;
d, c: in std_logic
);
end;
architecture verhalten of dmsff is
component dlatch
port
(
q: out std_logic;
d, c: in std_logic
);
end component;
signal d1, d2: std_logic;
signal c1, c2: std_logic;
signal q1, q2: std_logic;
begin
master: dlatch PORT MAP (d=>d1, c=>c1, q=>q1);
slave: dlatch PORT MAP (d=>d2, c=>c2, q=>q2);
c1 <= c;
c2 <= not c;
d1 <= d;
d2 <= q1;
q <= q2;
end;
library ieee;
use ieee.std_logic_1164.all;
entity meinschaltwerk0043 is
port
(
c: in std_logic;
we: in std_logic;
x: in std_logic
);
end;
architecture verhalten of meinschaltwerk0043 is
component dmsff
port
(
d, c: in std_logic;
q: out std_logic
);
end component;
component meinausgangsschaltnetz0043
port
(
a, b, x: in std_logic;
y: out std_logic
);
end component;
component meinuebergangsschaltnetz0043
port
(
a, b, x: in std_logic;
aout, bout: out std_logic
);
end component;
signal a, b, aout, bout, y: std_logic;
signal a1, b1, aout1, bout1: std_logic;
begin
z1: dmsff PORT MAP (d=>bout1, c=>c, q=>b);
z2: dmsff PORT MAP (d=>aout1, c=>c, q=>a);
s1: meinausgangsschaltnetz0043 PORT MAP (a=>a1, b=>b1, x=>x, y=>y);
s2: meinuebergangsschaltnetz0043 PORT MAP (a=>a1, b=>b1, aout=>aout, bout=>bout, x=>x);
aout1 <= aout when we='1' else '0';
bout1 <= bout when we='1' else '0';
a1 <= a when we='1' else '0';
b1 <= b when we='1' else '0';
end;
library ieee;
use ieee.std_logic_1164.all;
entity testbenchschaltwerk0043 is
port
(
y: out std_logic
);
end;
architecture verhalten of testbenchschaltwerk0043 is
component meinschaltwerk0043
port (
c: in std_logic;
we: in std_logic;
x: in std_logic
);
end component;
signal c: std_logic;
signal we: std_logic;
signal x: std_logic;
begin
sw: meinschaltwerk0043 PORT MAP (c=>c, we=>we, x=>x);
c <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns;
we <= '1' after 0 ns, '0' after 10 ns;
x <= '0' after 0 ns, '1' after 20 ns;
end;
Es ist mir nicht gelungen mit ghdl ein Blockdiagramm zu zeichnen. Eine direkte Lösung gibt es nicht.
Aber auf dieser Seite ist ein Vorschlag
https://blog.eowyn.net/netlistsvg/">https://blog.eowyn.net/netlistsvg/</URL>\\
\\
Ist recht simpel.\\
\\
ghdl selber zeichnet nichts. \\
\\
Man kann das tool \\
\\
yosys \\
\\
installieren. Und mit npm\\
\\
netlistsvg\\
\\
Das hat bei mir so weit getan - mit einem Unterschied. \\
\\
npm \\
\\
will netlistsvg \\
\\
nicht installieren. Weil es gibt eine vulnerabily zu gewissen Bibliotheken what ever. Der Fehler wird als fatal angegeben\\
\\
npm selber findet netlistsvg - aber da geht nichts\\
\\
Mir egal - wissen sie, es gibt solche Genies - die denken so: Das erste, was ich ja mache - ist den Schematic meines Schaltwerkes zu zeichnen. Und das nicht ohne Absicht - weil, ich meine, das ist "Ubung. Ist die Schematic automatisch gezeichnet, habe ich nichts ge"ubt\\
\\
Umgekehrt: Den Spezialisten geht es immer darum - Schematicen zu zeichnen.\\
\\
Spezialisten sind Leute, die benutzen wenig Linux - und sie denken sich eine Schaltung nicht in Form einer Logik\\
\\
Also \\
\\
1.) Wenn ich eine Schaltung habe, die tut - dann sehe ich das. Woran? Das ist ganz einfach - ich benutze ja GTKWave f"ur die Signale und vorausgesetzt ich weiss was ich tue - sehe ich bei GTKWave ja, ob die Signale stimmen - oder nicht?\\
\\
2.) Das zweite ist - diese reden von Profis \\
\\
- die verstehen das immer noch nicht - ich bin an der Fernuniversit"at in Hagen und studiere Informatik - OK - also: \\
\\
Sie werden am Ende verstehen - dass alle Programmierer und alle die in VHDL etwas tun - nicht anfangen Schematiken zu zeichnen \\
\\
Lassen sie mich das so sagen - sie entwerfen eine Schaltung - und die Schaltung hat auf dem FPGA Platz zu nehmen und das kann von mir aus ein Prozessor zum Beispiel ein MIPS sein - die Schematic ist ja sch"on, um zu lernen wie der FPGA geht, blos brauchen sie das nicht \\
\\
a) W"urden sie lernen wie in Computersystemen I/II\\
\\
dann w"urden sie wissen, eine Schaltung ist eine Logik und die k"onnen sie logisch hinschreiben \\
\\
b) Ich meine, sie bringen ja nicht ihre Schematik zur Ausf"uhrung, das ist ja sch"on, wenn das so aussieht, aber niemand will eine Schematic ausf"uhren \\
\\
c) Das aussehen hilft mir ja nichts - verstehen sie - dass Digitale Schaltungen Logik sind und wenn man jetzt sich Computersysteme I/II anschaut\\
\\
dann geht es nicht darum - dass man einfach lernt - es gibt solche Schaltelemente und solche\\
\\
sondern man lernt \\
\\
DIN33400\\
\\
DIN - das kennen sie von DIN A 4. Einem Standard, in Deutschland - f"ur Papier und Formate - da k"onnen sie ihre Richter bem"uhen. Die Richter sind derzeit sehr viel mit globalen Fragen beantwortet und behaupten auf alles eine Antwort zu haben, dazu sage ich - gucken sie mal in Deutschen Archiven nach\\
\\
ausser, dass es die Amerikanische Art und Weise gibt, etwas aus zu dr"ucken \\
\\
IEEE auf der einen Seite, entspricht in Deutschland DIN \\
\\
gibt es nat"urlich unsere Gatter \\
\\
7401\\
7404\\
7408\\
\\
sch"on. Und Deutschland? Deutschland hat die DIN. Das heisst, da stehen jetzt Papierstapel in den Aktenschr"anken und da steht alles sch"on definiert\\
\\
Sch"on, wenn man so weit guckt, dann stellt man fest - es gibt einen Zusammenhang zwischen Boolescher Algebra und Schaltalgebra. \\
\\
Und das ist der Witz, bei der Geschichte\\
\\
Die Schaltalgebra ist eine Boolesche Algebra - dazu muss man Mathematik k"onnen \\
\\
1.) Gruppen \\
2.) Halbgruppen\\
3.) Monoide\\
4.) K"orper \\
\\
und so weiter. Dann lernt man, dass es zum Beispiel \\
\\
Mengen mit einem oder zwei Operatoren gibt, die algebraisch sind - Mengen mit unz"ahligen Operatoren gibt es noch mehr\\
\\
Dann haben wir Distributivgesetzt, Kommutativ und Assoziativ in jedem Fall, wir haben Neutrale Elemente und Inverse\\
\\
Gut, dann w"urde man dahinter kommen, wie man Boolesche Algebra lernt und wenn man das hat - ja Mathematik Hauck, der T"ubinger Universit"at. Ich sass in der Mathematikpr"ufung und hatte immerhin eine 4. Mathematik Pr"ufung an der T"ubinger Uni bestanden mit 4. Wo die Pr"ufung ist keine Ahnung. Ich sage das Ergebnis ist beschissen, ich bin aber viel besser geworden\\
\\
Gut - imperative Programmierung habe ich bestanden - auf dem TG war ich - und ich schreibe jetzt Computersysteme I/II und habe vor das zu bestehen\\
\\
dass ich damals in Mathematik an der T"ubinger Uni nur eine 4 hatte. Sehen sie es so - ich war nicht gut in Form. Ich hatte Probleme und Unterlassungss"unden aus der Vergangenheit - da waren viele Sachen noch nicht drin - immerhin ich habe sie an der T"ubinger Uni bestanden\\
\\
Und kann es besser. Und jetzt hoffe ich ich bestehe Computersysteme I und II, und dann kann "uberhaupt keiner was\\
\\
So - aber - dann wissen sie, was Monoide, Gruppen Halbgruppen sind, k"onnen Algebra\\
\\
Gut und die Schaltalgebra ist laut DIN und Computersysteme I und II einfach eine Form der Booleschen Algebra, n"amlich eine die das als Schaltung repr"asentiert\\
\\
Und dann w"urde man wissen, dass es verschiedene Methoden gibt, Schaltelemente dar zu stellen\\
\\
N"amlich - das ist ja Mathematik\\
\\
Also, sie gehen in Mathematik. Sie gehen auf das Gymnasium und sie lernen in der achten Klasse, Funktionen zeichnen. \\
\\
Nun gut - dabei haben sie eine wundersch"one Kurve. Gut, und wenn sie sp"ater mal in die Uni rein schauen - dann haben sie Vektorfunktionen auf den reellen Bereich. gut - und was macht man da? Man zeichnet lauter Wirbelfelder - sp"atestens hier h"ort man auf Graphiker zu sein, weil Wirbelfelder will wirklich niemand zeichnen\\
\\
Das findet man dann in der Metereologie wieder\\
\\
Diese umfasst zwei Bereiche \\
\\
1.) Wirbelfelder, Vektoranalysis\\
2.) Statistik\\
\\
Ist im Endeffekt sehr simpel, vorausgesetzt man hat Datenspeicher und "uberall auf der Welt seine Messsensoren\\
\\
Gut, jetzt wird der Mathematiker ihnen nat"urlich zu recht erkl"aren - dass er ihnen weiter Funktionn zeichnet und das zu recht. Wer ihnen das Gegenteil erkl"art, erkl"art Unsinn\\
\\
weil sie besuchen ja auch mal die 8. Klasse. Und dann w"urden sie sonst nichts wissen\\
\\
Gut, aber, wenn sie so weit sind - werden sie wissen, dass es verschiedene Darstellungsformen Mathematisch gibt\\
\\
1.) Funktionsgleichung\\
2.) Wahrheitstabelle\\
3.) Schematik\\
4.) Bin"ares Entscheidungsdiagramm\\
...\\
\\
Und das lustige ist - dass die Schaltalgebra, Boolesche Algebra ist. Nur mit einer besonderen Form. Das heisst, aber, ob sie das logisch darstellen - also mit and or xor not - oder ob sie das hinzeichnen, das ist egal\\
\\
Und trotzdem beides Mathematik. Weil Schaltalgebra ist Boolesche Algebra\\
\\
Gut - und deswegen ist das relativ egal\\
\\
Nur, ich zeichne das nur deswegen, weil das "Ubung ist und wenn ich das automatisch mache, dann "ube ich nichts\\
\\
K"onnte ich trotzdem machen, wenn es nicht geht, egal\\
\\
Umgekehrt: Das sind die Windows Spezialisten. Ja? Die Fragen - wie machst du das? Und ich m"ochte das so und so - und da sieht man. Und dann kapieren sie die Schaltung nicht, aber wollen die Schematik\\
\\
Als, ob jemand, so einen Prozessor entwickelt. Das ist wirklich Windows. Die kliquen dann ihre Schaltelemente dahin und meinen jetzt haben sie eine Schaltung entworfen\\
\\
Also, wenn sie mich
1906 &
Es ist mir nicht gelungen mit ghdl ein Blockdiagramm zu zeichnen. Eine direkte L"osung gibt es nicht.\\
\\
Aber auf dieser Seite ist ein Vorschlag\\
\\
\begin{verbatim}https://blog.eowyn.net/netlistsvg/">https://blog.eowyn.net/netlistsvg/</URL>\\
\\
Ist recht simpel.\\
\\
ghdl selber zeichnet nichts. \\
\\
Man kann das tool \\
\\
yosys \\
\\
installieren. Und mit npm\\
\\
netlistsvg\\
\\
Das hat bei mir so weit getan - mit einem Unterschied. \\
\\
npm \\
\\
will netlistsvg \\
\\
nicht installieren. Weil es gibt eine vulnerabily zu gewissen Bibliotheken what ever. Der Fehler wird als fatal angegeben\\
\\
npm selber findet netlistsvg - aber da geht nichts\\
\\
Mir egal - wissen sie, es gibt solche Genies - die denken so: Das erste, was ich ja mache - ist den Schematic meines Schaltwerkes zu zeichnen. Und das nicht ohne Absicht - weil, ich meine, das ist "Ubung. Ist die Schematic automatisch gezeichnet, habe ich nichts ge"ubt\\
\\
Umgekehrt: Den Spezialisten geht es immer darum - Schematicen zu zeichnen.\\
\\
Spezialisten sind Leute, die benutzen wenig Linux - und sie denken sich eine Schaltung nicht in Form einer Logik\\
\\
Also \\
\\
1.) Wenn ich eine Schaltung habe, die tut - dann sehe ich das. Woran? Das ist ganz einfach - ich benutze ja GTKWave f"ur die Signale und vorausgesetzt ich weiss was ich tue - sehe ich bei GTKWave ja, ob die Signale stimmen - oder nicht?\\
\\
2.) Das zweite ist - diese reden von Profis \\
\\
- die verstehen das immer noch nicht - ich bin an der Fernuniversit"at in Hagen und studiere Informatik - OK - also: \\
\\
Sie werden am Ende verstehen - dass alle Programmierer und alle die in VHDL etwas tun - nicht anfangen Schematiken zu zeichnen \\
\\
Lassen sie mich das so sagen - sie entwerfen eine Schaltung - und die Schaltung hat auf dem FPGA Platz zu nehmen und das kann von mir aus ein Prozessor zum Beispiel ein MIPS sein - die Schematic ist ja sch"on, um zu lernen wie der FPGA geht, blos brauchen sie das nicht \\
\\
a) W"urden sie lernen wie in Computersystemen I/II\\
\\
dann w"urden sie wissen, eine Schaltung ist eine Logik und die k"onnen sie logisch hinschreiben \\
\\
b) Ich meine, sie bringen ja nicht ihre Schematik zur Ausf"uhrung, das ist ja sch"on, wenn das so aussieht, aber niemand will eine Schematic ausf"uhren \\
\\
c) Das aussehen hilft mir ja nichts - verstehen sie - dass Digitale Schaltungen Logik sind und wenn man jetzt sich Computersysteme I/II anschaut\\
\\
dann geht es nicht darum - dass man einfach lernt - es gibt solche Schaltelemente und solche\\
\\
sondern man lernt \\
\\
DIN33400\\
\\
DIN - das kennen sie von DIN A 4. Einem Standard, in Deutschland - f"ur Papier und Formate - da k"onnen sie ihre Richter bem"uhen. Die Richter sind derzeit sehr viel mit globalen Fragen beantwortet und behaupten auf alles eine Antwort zu haben, dazu sage ich - gucken sie mal in Deutschen Archiven nach\\
\\
ausser, dass es die Amerikanische Art und Weise gibt, etwas aus zu dr"ucken \\
\\
IEEE auf der einen Seite, entspricht in Deutschland DIN \\
\\
gibt es nat"urlich unsere Gatter \\
\\
7401\\
7404\\
7408\\
\\
sch"on. Und Deutschland? Deutschland hat die DIN. Das heisst, da stehen jetzt Papierstapel in den Aktenschr"anken und da steht alles sch"on definiert\\
\\
Sch"on, wenn man so weit guckt, dann stellt man fest - es gibt einen Zusammenhang zwischen Boolescher Algebra und Schaltalgebra. \\
\\
Und das ist der Witz, bei der Geschichte\\
\\
Die Schaltalgebra ist eine Boolesche Algebra - dazu muss man Mathematik k"onnen \\
\\
1.) Gruppen \\
2.) Halbgruppen\\
3.) Monoide\\
4.) K"orper \\
\\
und so weiter. Dann lernt man, dass es zum Beispiel \\
\\
Mengen mit einem oder zwei Operatoren gibt, die algebraisch sind - Mengen mit unz"ahligen Operatoren gibt es noch mehr\\
\\
Dann haben wir Distributivgesetzt, Kommutativ und Assoziativ in jedem Fall, wir haben Neutrale Elemente und Inverse\\
\\
Gut, dann w"urde man dahinter kommen, wie man Boolesche Algebra lernt und wenn man das hat - ja Mathematik Hauck, der T"ubinger Universit"at. Ich sass in der Mathematikpr"ufung und hatte immerhin eine 4. Mathematik Pr"ufung an der T"ubinger Uni bestanden mit 4. Wo die Pr"ufung ist keine Ahnung. Ich sage das Ergebnis ist beschissen, ich bin aber viel besser geworden\\
\\
Gut - imperative Programmierung habe ich bestanden - auf dem TG war ich - und ich schreibe jetzt Computersysteme I/II und habe vor das zu bestehen\\
\\
dass ich damals in Mathematik an der T"ubinger Uni nur eine 4 hatte. Sehen sie es so - ich war nicht gut in Form. Ich hatte Probleme und Unterlassungss"unden aus der Vergangenheit - da waren viele Sachen noch nicht drin - immerhin ich habe sie an der T"ubinger Uni bestanden\\
\\
Und kann es besser. Und jetzt hoffe ich ich bestehe Computersysteme I und II, und dann kann "uberhaupt keiner was\\
\\
So - aber - dann wissen sie, was Monoide, Gruppen Halbgruppen sind, k"onnen Algebra\\
\\
Gut und die Schaltalgebra ist laut DIN und Computersysteme I und II einfach eine Form der Booleschen Algebra, n"amlich eine die das als Schaltung repr"asentiert\\
\\
Und dann w"urde man wissen, dass es verschiedene Methoden gibt, Schaltelemente dar zu stellen\\
\\
N"amlich - das ist ja Mathematik\\
\\
Also, sie gehen in Mathematik. Sie gehen auf das Gymnasium und sie lernen in der achten Klasse, Funktionen zeichnen. \\
\\
Nun gut - dabei haben sie eine wundersch"one Kurve. Gut, und wenn sie sp"ater mal in die Uni rein schauen - dann haben sie Vektorfunktionen auf den reellen Bereich. gut - und was macht man da? Man zeichnet lauter Wirbelfelder - sp"atestens hier h"ort man auf Graphiker zu sein, weil Wirbelfelder will wirklich niemand zeichnen\\
\\
Das findet man dann in der Metereologie wieder\\
\\
Diese umfasst zwei Bereiche \\
\\
1.) Wirbelfelder, Vektoranalysis\\
2.) Statistik\\
\\
Ist im Endeffekt sehr simpel, vorausgesetzt man hat Datenspeicher und "uberall auf der Welt seine Messsensoren\\
\\
Gut, jetzt wird der Mathematiker ihnen nat"urlich zu recht erkl"aren - dass er ihnen weiter Funktionn zeichnet und das zu recht. Wer ihnen das Gegenteil erkl"art, erkl"art Unsinn\\
\\
weil sie besuchen ja auch mal die 8. Klasse. Und dann w"urden sie sonst nichts wissen\\
\\
Gut, aber, wenn sie so weit sind - werden sie wissen, dass es verschiedene Darstellungsformen Mathematisch gibt\\
\\
1.) Funktionsgleichung\\
2.) Wahrheitstabelle\\
3.) Schematik\\
4.) Bin"ares Entscheidungsdiagramm\\
...\\
\\
Und das lustige ist - dass die Schaltalgebra, Boolesche Algebra ist. Nur mit einer besonderen Form. Das heisst, aber, ob sie das logisch darstellen - also mit and or xor not - oder ob sie das hinzeichnen, das ist egal\\
\\
Und trotzdem beides Mathematik. Weil Schaltalgebra ist Boolesche Algebra\\
\\
Gut - und deswegen ist das relativ egal\\
\\
Nur, ich zeichne das nur deswegen, weil das "Ubung ist und wenn ich das automatisch mache, dann "ube ich nichts\\
\\
K"onnte ich trotzdem machen, wenn es nicht geht, egal\\
\\
Umgekehrt: Das sind die Windows Spezialisten. Ja? Die Fragen - wie machst du das? Und ich m"ochte das so und so - und da sieht man. Und dann kapieren sie die Schaltung nicht, aber wollen die Schematik\\
\\
Als, ob jemand, so einen Prozessor entwickelt. Das ist wirklich Windows. Die kliquen dann ihre Schaltelemente dahin und meinen jetzt haben sie eine Schaltung entworfen\\
\\
Also, wenn sie mich
1909 &
\begin{verbatim}
lb, lbu
lh, lhu
lw
ld*
la*
li*
sb
sh
sw
sd*
add, addi, addiu
sub
mult, multu
div, divu
and, andi
or, ori
xor, xori
not*, rem*, abs*, neg*
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Synchronisationsbefehle
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Stack- und Kellerarchitektur
Register-Speicher Architektur
Speicher-Speicherarchitektur
Lade- und Speicherarchitektur
Akkumulatorarchitektur
Intel 8087, ATAM 862 Atmel
Little-Endian
Big-Endian
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
Byte
Halbwort
Wort
Doppelwort
Quadwort
Ten Byte
signed
unsigned
packed
unpacked
bcd
ascii
ieee-754-std
f = (-1)\^s * 1.m * 2\^(e-b)
32: einfach
64: doppelt
80: erweitert
Unmittelbare Addressierung
Absolute Addressierung
Registeraddressierung
Direkte Addressierung
Indirekte Addressierung
Indirekte Addressierung mit Verschiebung
Indirekte Addressierung mit Autoinkrement/Dekrement
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
RegDst
RegWrite
ALU-Op
Befehlsdekodierer
Funktionsdekodierer
Registersatz
ALU
Datenspeicher
Befehlsspeicher
Befehlsz"ahler
Vorzeichenerweiterungseinheit
4 x MUX
1 x AND
2 x Addierer
1 x 2 Bit Shifter
Befehlsdekodierer
- MemToReg
- MemWrite
- Branch
- ALU-Src
- ALU-Op
- RegDst
- RegWrite
Funktionsdekodierer
- Func
- ALU-Op
- ALU-Operation
Registersatz
- Lese-Daten-1
- Lese-Daten-2
- Schreibedaten
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- WE
Datenspeicher
- Lesedaten
- Schreibedaten
- Addresse
- WE
ALU
- Null
- Ergebnis
AND
- PCSrc
Befehlsspeicher
- Lesedaten
- Addresse
Befehlsz"ahler
- PC (t)
- PC (t+1)
Func ALU-Op ALU-Operation
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - add
OpCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Op
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
eq - equal
ne - not equal
gt - greater than
ge - greater than equal
lt - less than
le - less than equal
Absolut: Branch
Befehlsz"ahlerrelativ: Jump
Befehlsz"ahlerindirekt: Jump Register
JAL: Jump and Link: Speichern zus"atzlich die Addresse die dem Befehl folgt
PC_neu = PC_alt + (i << 2)
PC_neu = PC_alt \& 0xf000 0000 | (i << 2)
j, b*, jr
jal
jalr
beq, bne
beqz*, bnez*
bgt*, bge*
bltz, blez
blt*, ble*
bgtz, bgez
Mehrzyklus Zustandselemente
- Befehlsspeicher
- Befehlsz"ahler
- Registersatz
- Datenspeicher
Pipeline-Prinzip
Pipeline-Stufe
Pipeline-Takt
1.) Befehl Holen
2.) Befehl dekodieren
3.) Operanden der ALU bereitstellen
4.) Operation in der ALU ausf"uhren
5.) Operanden in Architekturregister zur"uckschreiben
1.) IF - Instruction Fetch - Befehls bereitstellungsphasen
2.) ID - Instruction Decode / Register Fetch - Befehlsdekodierphase Operanden Bereitstellungsphasen
3.) EX - Execute / Address Calculation - Ausf"uhrungsphase
4.) MEM - Memory Access / Speicherzugriffsphase
5.) WB - Write Back / Resultatsspeicherphase
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
1.) In Order Issue In Order Completion: OOE-Prozessor
2.) Out Of Order Issue Out Of Order Completion: VLIW-Prozessor
1.) Statische Sprungvorhersage, durch die Hardware
1.1.) Predict Always Not Taken
1.2.) Predict Always Taken
1.3.) Predict Backward Taken forward Not Taken
2.) Dynamisch: 1 und 2 Bit Pr"adiktor
2.1.) 1 Bit Pr"adiktor: Taken -> Not Taken, Not Taken -> Taken
2.2.) 2 Bit Pr"adiktor: Strongly/ Weakly Taken/Not Taken
Schaltnetze
Schaltwerke
Komplexe Schaltwerke
Aufbau und Funktionsweise eines Computers
Schaltnetze
Boolesche Algebra
Definition der Booleschen Algebra
Schaltalgebra ein Modell der Booleschen Algebra
Schaltfunktion
Definition
Darstellung
Minimierung
Analyse von Schaltnetzen
Synthese von Schaltnetzen
Kodierglieder
Schaltnetzentwurf f"ur den 8421-BCD-zu 7 Segmentumsetzung
Schaltnetzentwurf f"ur den Addresskodierer
Addierglieder
Halbaddierer
Volladdierer
Paralleladdierer
Komperatoren
Multiplexer
ALU
Zahlendarstellung und Zweierkomplement
Addierer/Subtrahierer
Schaltnetze mit Programmierbaren Baustein
ROM
PROM, EPROM
PAL, PLA
Laufzeiteffekte in Schaltnetzen
Schaltwerke
Implementierung von Schaltwerken
Modelle f"ur Schaltwerke
Synthese f"ur Schaltwerke
Analyse f"ur Schaltwerke
Speicherglieder
Transformation Mealy und Moore Automat
Schaltwerke mit Bin"arcodierten Zustand
Komplexe Schaltwerke
Aufbau komplexer Schalterwerke
Entwurf komplexer Schaltwerke
RTL-Notation
ASM-Diagramme
Zustandsboxen
Entscheidungsboxen
Bedingte Ausgangsboxen
ASM-Block
Operationswerk ...
Beispieln Einsenz"ahler
Komplexes Schaltwerk Mealy
Komplexes Schaltwerk Moore
Konstroktionsregeln Operationswerke
Mealy Schaltwerk als Konventionelles Schaltwerk
Mealy Steuerwerk mit Hotone Zustan d
Moore Steuerwerk als Konoventielles Schaltwerk
Moore Steuer mit Hotone Kodierung
Mikroprogrammierte Steuerwerk
Aufbau und Funktionsweise eins Computer
Erweiterung komplexer Schaltwerke
Komponenten eines Computers
Rechenwerk
Leitwerk
Speicher
Ein und Ausgaben
Datenpfade und Steuerpfade
Anwendung des Stapelzeigers
Unterprogramme
Unterbrechungen = Interrupts
Rechenwerk
Steuerwerk
Schaltalgebra: Boolesche Algebra, wo Elektrische Schaltungen, Spannungen als Boolesche Werte 0 und 1 interpretieren
Schaltfunktion, Vektorfunktion
Eingangsvektor, Ausgangsvektor
Eingangsvariable, x0, x1, x2, ..., xn
Eingangsvektor
Schaltnetz
Ausgangsvektor
f:{0,1}\^n -> {0,1}\^m
Schaltfunktion: DIN44300/93
Schaltnet: DIN44300/87
Darstellung
- KV-Diagramm
- Wahrheitstaballe
- Funktionsgleichung
- Sprache
- Bin"ares Entscheidungsdiagramm
- Schematik
Das gibt f"ur die Schaltfunktion, oder das einzelne Element und f"ur das gesamte Netz
Gesetze
- Assoziativ
- Distributiv
- Kommutativ
- Absorbtion
- Neutrale Elemente
- Inverse Elemente
- De Morgan
- Dualtit"atsprinzip
Verkn"upfung, Operatoren, was auch immer
- 0
- 1
- Konjunktion, AND
- Disjunktion, OR
- NAND
- NOR
- Komplement, Invers, NOT
- "Aquivalenz
- Antivalenz
- Transfer
- Inhibition
- Implikation
Kodierer: 40700/121 oder so - Ein Schaltnetz was dem Zeichen eines Zeichenvorrats das Zeichen eines anderen Zeichenvorrats zu ordnent
Dekodierer: Ist ein Kodierer mit Eingangs und Ausgangssignal, bei dem Pro Kombination von Eingangssignalen immer nur ein Ausganssignal den Wert 1 annimmt
Volladdierer
S = A XOR B XOR C
U = (A AND B) OR (A OR B) AND C
PLHS18P8
Schaltnetze: Elektronische Schaltungen die Spannungen als Variablen 0 und 1 interpretieren
Schaltnetze: Elektronische Schaltungen die Spannungen als logische Variablen 0 und 1 interpretieren
Schaltnetze: Eelktronische Schaltungen die Spannungen als logische Variablen 0 und 1 interpretieren
Schaltnetze: Elektronsiche Schlatungen diie Spannungen als logische Variablen 0 und 1 interpretieren
Boolesche Algebra, Schaltalgebra
Boolesche Algebra, Schaltalgebra
Boolesche Algebra, Schaltalgebra
Boolesche Algebra, Schaltalgebra
Boolesche Algebra, Schaltalgebra
Verkn"upfungsglieder, Schaltfunktion, Vektorfunktion
Verkn"upfungsglieder, Schaltfunktion, Vektorfunktion
Verkn"upfungsglieder, Schaltfunktion, Vektorfunktion
Verkn"upfungsglieder, Schaltfunktion, Vetkorfunktion
Verkn"ufungsglieder, Schaltfunktion, Vektorfunktion
F:{0,1}\^n -> {0,1}\^m
F:{0,1}\^n -> {0,1}\^m
F:{0,1}\^n -> {0,1}\^m
F:{0,1}\^n -> {0,1}\^m
F:{0,1}\^n -> {0,1}\^m
Eingangsvektor
Eingangsvariablen x1, x2, ..., xn
Eingangsvektor
Eingangsvariablen x1, x2, ..., xn
Eingangsvektor
Eingangsvariablen x1, x2, ..., xn
Eingangsvektor
Eingangsvariablen x1, x2, ..., xn
DIN44300/93: Schaltnetz
DIN44300/93: Schaltnetz
DIN44300/93: Schaltnetz
DIN44300/93: Schaltnetz
DIN44300/93: Schaltnetz
DIN44300/93: Schaltnetz
DIN44300/93: Schaltnetz
Eingangsvektor Schaltnetz Ausgangsvektor
Eingangsvektor Schaltnetz Ausgangsvektor
Eingangsvektor Schaltnetz Ausgansgvektor
Eingangsvektor Schaltnetz Ausgangsvektor
Eingangsvektor Schaltnetz Ausgangsvektor
Gesetze: Kommutativ, Assoziativ, Distributiv, Absorbtion
Gesetze: Kommutativ, Assoziativ, Distributiv, Absorbtion
Gesetze: Kommutativ, Assoziativ, Distributiv, Absorbtion
Gesetze: Kommutativ, Assoziativ, Distributiv, Absorbtion
Gesetze: Kommutativ, Assoziativ, Distributiv, Absorbition
Gesetze: Kommutativ, Assoziativ, Distributiv, Absorbition
Neutrales Element, Inverses Elemente, Dualit"atsprinzip, De Morgan
Neutrales Element, Inverses Element, Dualit"atsprinzip De Morgan
Neutrales Element, Inverses Element, Dualit"atsprinzip, De Morgan
Neutrales Element, Inverses Element, Dualit"atsprinzip, De Morgan
Neutrales Element, Inverses Element, Dualti"atsprinzip, De Morgan
DIN44300/87: Schaltfuntkion
DIN44300/87: Schaltfunktion
DIN44300/87: Schaltfunktion
DIN44300/87: Schaltfunktion
DIN44300/87: Schaltfunktion
Benennung der Verkn"upfung: Null, Eins
Bennenung der Verkn"upfung: Null, Eins
Bennennung der Verkn"upfung: Null, Eins
Benennung der Verkn"upfung: Null, Eins
Bennenunng der Verkn"upfung: Null, Eins
Konjunktion, Disjunktion
Konjunktion, Disjunktion
Konjunktion, Disjunktion
Konjunktion, Disjunktion
Konjunktion, Disjunktion
NAND, NOR, NAND, NOR, NAND, NOR, NAND, NOR, NAND, NOR
Antivalenz, "Aquivalenz
Antivalenz, "Aquivalenz
Antivalenz, "Aquivalenz
Antivalenz, "Aquivalenz
Antivalenz, "Aquivalenz
Inhibition, Transfer, Komplement, Implikation
Inhibition, Transfer, Komplement, Implikation
Inhibition, Transfer, Komplement, Implikation
Inhibition, Transfer, Komplement, Implikation
Inhibition, Transfer, Komplement, Implikation
Darstellung
- Funktionstabelle
- Funktionsgleichung
- KV-Diagramm
- Bin"ares Entscheidungsdiagramm
- Schaltzeichen
Darstellung
- Funktionstabelle
- Funktionsgleichung
- KV-Diagramm
- Bin"ares Entscheidungsdiagramm
- Schaltzeichen
Darstellung
- Funktionstabelle
- Funktionslgleichugn
- KV-Diagramm
- Bin"ares Entscheidungsdiagramm
- Schaltzeichen
S = A XOR B XOR C
S = A XOR B XOR C
S = A XOR B XOR C
S = A XOR B XOR C
S = A XOR B XOR C
S = A XOR B XOR C
U = (A AND B) OR (A OR B) AND C
U = (A AND B) OR (A OR B) AND C
U = (A AND B) OR (A OR B) AND C
U = (A AND B) OR (A OR B) AND C
U = (A AND B) OR (A OR B) AND C
U = (A AND B) OR (A OR B) AND C
PLHS 18P8
PLHS 18P8
PLHS 18P8
PLHS 18P8
PLHS 18P8
PLHS 18P8
0 0 0 0 0 0
1 0 0 0 1 1
2 0 0 1 0 0
3 0 0 1 1 1
4 0 1 0 0 1
5 0 1 0 1 0
6 0 1 1 0 1
7 0 1 1 1 1
8 1 0 0 0 1
9 1 0 0 1 0
10 1 0 1 0 1
11 1 0 1 1 1
12 1 1 0 0 1
13 1 1 0 1 0
14 1 1 1 0 0
15 1 1 1 1 1
1 0 0 0 1 1
3 0 0 1 1 1
4 0 1 0 0 1
6 0 1 1 0 1
7 0 1 1 1 1
8 1 0 0 0 1
10 1 0 1 0 1
11 1 0 1 1 1
12 1 1 0 0 1
15 1 1 1 1 1
Gruppe 1:
1 0 0 0 1 1
4 0 1 0 0 1
8 1 0 0 0 1
Gruppe 2:
3 0 0 1 1 1
6 0 1 1 0 1
10 1 0 1 0 1
12 1 1 0 0 1
Gruppe 3:
7 0 1 1 1 1
11 1 0 1 1 1
Gruppe 4:
15 1 1 1 1 1
1:3 0 0 - 1
4:6 0 1 - 0
4:12 - 1 0 0
8:10 1 0 - 0
8:12 1 - 0 0
3:7 0 - 1 1
3:11 - 0 1 1
6:11 0 1 1 -
10:11 1 0 1 -
7:15 - 1 1 1
11:15 1 - 1 1
4:12 - 1 0 0
3:11 - 0 1 1
7:15 - 1 1 1
8:12 1 - 0 0
3:7 0 - 1 1
11:15 1 - 1 1
1:3 0 0 - 1
4:6 0 1 - 0
8:10 1 0 - 0
6:11 0 1 1 -
10:11 1 0 1 -
Gruppe 1:
4:12 - 1 0 0
Gruppe 2:
3:11 - 0 1 1
Gruppe 3:
7:15 - 1 1 1
Gruppe 1:
8:12 1 - 0 0
Gruppe 2:
3:7 0 - 1 1
Gruppe 3:
11:15 1 - 1 1
Gruppe 1:
1:3 0 0 - 1
4:6 0 1 - 0
8:10 1 0 - 0
Gruppe 2:
6:11 0 1 1 -
10:11 1 0 1 -
Gruppe 1:
4:12 - 1 0 0
Gruppe 2:
3:11 - 0 1 1
Gruppe 3:
7:15 - 1 1 1
4:12 - 1 0 0
3:11:7:15 - - 1 1
Gruppe 1:
8:12 1 - 0 0
Gruppe 2:
3:7 0 - 1 1
Gruppe 3:
11:15 1 - 1 1
3:7:11:15 - - 1 1
Gruppe 1:
1:3 0 0 - 1
4:6 0 1 - 0
8:10 1 0 - 0
Gruppe 2:
6:11 0 1 1 -
10:11 1 0 1 -
4:12 - 1 0 0
3:11:7:15 - - 1 1
8:12 1 - 0 0
3:7:11:15 - - 1 1
1:3 0 0 - 1
4:6 0 1 - 0
8:10 1 0 - 0
6:11 0 1 1 -
10:11 1 0 1 -
3:11:7:15 - - 1 1
4:12 - 1 0 0
8:12 1 - 0 0
1:3 0 0 - 1
4:6 0 1 - 0
8:10 1 0 - 0
6:11 0 1 1 -
10:11 1 0 1 -
1 3 4 6 7 8 10 11 12 15
3:11:7:15 * * * *
4:12 * *
8:12 * *
1:3 * *
4:6 * *
8:10 * *
6:11 * *
10:11 * *
1
3
4
6
7
8
10
11
12
15
1 3 4 6 7 8 10 11 12 15
3:11:7:15 * * * *
4:12 * *
1:3 * *
4:6 * *
8:10 * *
3:11:7:15 - - 1 1
4:12 - 1 0 0
1:3 0 0 - 1
4:6 0 1 - 0
8:10 1 0 - 0
DNF:
y <= (x1 and x0) or
(x2 and not x1 and not x0) or
(not x3 and not x2 and x0) or
(not x3 and x2 and not x0) or
(x3 and not x2 and not x0)
y <= not()(not x1 or not x0) and
(not x2 or x1 or x0) and
(x3 or x2 or not x0) and
(x3 or not x2 or x0) and
(not x3 or x2 or x0))
library ieee;
use ieee.std_logic_1164.all;
entity meinschaltnetz044 is
port
(
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end;
architecture verhalten of meinschaltnetz044 is
begin
y <= (x1 and x0) or
(x2 and not x1 and not x0) or
(not x3 and not x2 and x0) or
(not x3 and x2 and not x0) or
(x3 and not x2 and not x0);
end;
library ieee;
use ieee.std_loc_1164.all;
entity testbench0044 is
port
(
y: out std_logic
);
end;
architecture verhalten of testbench0044 is
component meinschaltnetz044
port
(
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end;
signal x3, x2, x1, x0: std_logic;
begin
x0 <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns;
x1 <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x2 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x3 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '0' after 40 ns, '0' after 50 ns, '0' after 60 ns, '0' after 70 ns, '1' after 80 ns, '1' after 90 ns, '1' after 100 ns, '1' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
end;
> 0 0 0 0 0 0 1 0 0 0 1 1 2 0 0 1 0 0 3 0 0 1 1 1 4 0 1 0 0 1 5 0 1 0 1 0 6 0 1 1 0 1 7 0 1 1 1 1 8 1 0 0 0 1 9 1 0 0 1 0 10 1 0 1 0 1 11 1 0 1 1 1 12 1 1 0 0 1 13 1 1 0 1 0 14 1 1 1 0 0 15 1 1 1 1 1
library ieee;
use ieee.std_logic_1164.all;
entity meinschaltnetz044 is
port
(
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end;
architecture verhalten of meinschaltnetz044 is
begin
y <= (x1 and x0) or
(x2 and not x1 and not x0) or
(not x3 and not x2 and x0) or
(not x3 and x2 and not x0) or
(x3 and not x2 and not x0);
end;
library ieee;
use ieee.std_logic_1164.all;
entity testbench0044 is
port
(
y: out std_logic
);
end;
architecture verhalten of testbench0044 is
component meinschaltnetz044
port
(
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end component;
signal x3, x2, x1, x0: std_logic;
begin
sn: meinschaltnetz044 PORT MAP (x3=>x3, x2=>x2, x1=>x1, x0=>x0, y=>y);
x0 <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns;
x1 <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x2 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x3 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '0' after 40 ns, '0' after 50 ns, '0' after 60 ns, '0' after 70 ns, '1' after 80 ns, '1' after 90 ns, '1' after 100 ns, '1' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
end;
lb, lbu
lh, lhu
lw
ld*
la*
li*
sb
sh
sw
sd*
add, addi, addiu
sub
mult, multu
div, divu
and, andi
or, ori
xor, xori
rem*, abs*, neg*, not*
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Gleitkommabefehle
Multimediabefehle
Programmsteuerbefehle
Systemsteuerbefehle
Synchronisationsbefehle
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Lade- und Speicherarchitektur
Stack- und Kellerarchitektur
Speicher- Speicherarchitektur
Register- Speicherarchitektur
Akkumulatorarchitektur
8087, Intel, ATAM862 Atmel
Little-Endian, Big-Endian
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
byte
wort
halbwort
doppelwort
signed
unsigned
packed
unpacked
bcd
ascii
ieee-754-std
f = (-1)\^s * 1.m * 2\^(e-b)
32: einfach
64: doppelt
80: erweitert
Absolute Addressierung
Unmittelbare Addressierung
Registeraddressierung
Direkte Addressierung
Indirekte Addressierung
Indirekte Addressierung mit Autoinkrement/Dekrement
Indirekte Addressierung mit Verschiebung
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodierer
2.) Funktionsdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
RegWrite
Befehlsdekodierer
Funktionsdekodierer
ALU
Registersatz
Datenspeicher
Befehlsspeicher
Befehlsz"ahler
4 x MUX
1 x AND
2 x Addierer
1 x 2 Bit Shifter
Befehlsdekodierer
- MemToReg
- MemWrite
- Branch
- ALU-Src
- ALU-Op
- RegDst
- RegWrite
Funktionsdekodierer
- Func
- ALU-Op
- ALU-Operation
AND
- PCSrc
ALU
- Ergebnis
- Null
Registersatz
- Lese-daten-1
- Lese-Daten-2
- Schreibedaten
- Leseregister-1
- Leseregister-2
- Schreiberegister
- WE
Datenspeicher
- Addresse
- Lesedaten
- Schreibedaten
- WE
Befehlsspeicher
- Lesedaten
- Leseaddresse
Befehslsz"ahler
- PC (t)
- PC (t+1)
ALU-Op Func ALU-Operation
00 x 010 - add
x1 x 110 - sub
1x 100 000 - addi 010 - add
OpCode RegDst RegWrite Branch ALU-Src MemToReg MemWrite ALU-Operation
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
eq - equal
ne - not equal
gt - greater than
ge - greater than equal
lt - less than
le - less than equal
1.) Absolut = Branch
2.) Befehlsz"ahlerrelativ = Jump
3.) Befehlsz"ahlerindirekt = Jump Register
jal: Jump and Link speichern zus"atzlich der Addresse die dem Sprungbefehl folgt
PC = PC_alt + (i << 2)
PC = PC_alt \& 0xf000 0000 | (i << 2)
Pipeline-Prinzip
Pipeline-Stufe
Pipeline-Register
Pipeline-Konflikte
1.) Befehl holen
2.) Befehl dekodieren
3.) Operanden der ALU bereitstellen
4.) Operation in der ALU ausf"uhren
5.) Operanden in Architekturregister zur"uckschreiben
1.) IF = Instruction Fetch
2.) ID = Instruction Decode / Register Fetch
3.) EX = Execute / Address Calculation
4.) MEM = Memory Access
5.) WB = Write Back
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikt
1.) Statisches Scheduling: In Order Issue In Order Completion: VLIW Prozessor
2.) Dynamisch: Out Of Order Issue Òut Of Order Completion: OOE-Prozessor
1.) Statische Sprungvorhersage durch die Hardware
1.1.) Predict Always Not Taken
1.2.) Predict Always Taken
1.3.) Predict Backward Taken forward Not Taken
2.) Dynamisch
2.1.) Ein Bit Pr"adiktor: Taken -> Not Taken
2.2.) Strongly/Weakly Taken/Not Taken
Schaltnetze
Schaltwerke
Komplexe Schaltwerke
Aufbau und Funktionsweise eines Comoputers
Schaltnetze
Boolesche Algebra
Definition der Booleschen Algebra
Schaltalgebra ein Modell der Booleschen Algebra
Schaltfunktionen
Definition
Darstellung
Minimierung
Analyse von Schaltnetzen
Synthese von Schaltnetzen
Codierglieder
Schaltnetzentwurf f"ur einen Addresskodierer
Schaltnetzentwurf f"ur 8421-BCD-Sieben Segment Umsetzung
Addierglieder
Halbaddierer
Volladdierer
Paralleladdierer
Komperatoren
Multiplexer
ALU
Zahlendarstellung und Zweier Komplement
Addierer Subtrahierer
Schaltnetze mit dem Programmierbaren Baustein
ROM, PROM
PLA, PAL
Schaltwerke
Modelle f"ur Schaltwerke
Implementierung f"ur Schaltwerke
Synthese von Schaltwerken
Analyse von Schaltwerken
...
Speicherglieder
Transformation Mealy und Moore Automat
Schaltwerke mit Bin"arcodierten Zustand
Komplexe Schaltwerke
Aufbau komplexer Schaltwerke
Entwurf komplexer Schaltwerke
RTL-Notation
ASM-Diagramme
Zustandsboxen
entscheidungsboxen
Bedingte Ausgangsboxen
ASM-Block
Aufbau und Funktionsweise des Operationswerks
Komplexes Schaltwerke und Mikroprozessor
Beispiel 1en Z"ahlerung
L"osung mit komplexen Moore Schaltwerk
L"osung mit komplexem Mealy Schaltwerk
Aufbau und Funktionsweise des Operationswerks
Mealy Steuerwerk als Konventionselles Schaltwerk
Mealy Steuwerk mit HotOne Kodierung
Moore Steuerwerk als konventionelles Schaltwerk
Moore Steuwerwerk mit HotOne Kodierung
Mikroprogrammsteuerwerk
Aufbau und Funktiosnweise des Computen
Konstruktionsregeln ...
Elemente
Leitwerk, Steuwerk
Rechenwerk
Speicher
Ein und Ausgabe
Steuerpfad und Datenpfad
Stack Pointer
Unterprogramme
Interrupts
Elemente des Rechenwerks
Datenpfade
Schiebemultiplexer
Steuwerk
Leitwerk
DIN44300/93: Schaltnetze
DIN44300/87: Schaltfunktion
Schaltnetz: Elektronische Schaltung die Spannungen als logische Variablen 0 und 1 interpretieren
Eingangsvektor
Schaltnetz
Ausgangsvektor
Eingangsvariablen: x0, x1, ..., xn
Schaltfunktion
f:{0,1}\^n -> {0,1}\^m
Wahrheitstafel
Funktionstabele
Schaltfunktion
Schaltplan
Bin"ares Entscheidungsdiagramm
KV-Diagramm
Gesetze:
Distributiv
Assoziativ
Kommutativ
Absorbtion
Inverses Element, Komplement"ares Element
Neutrales Element
De Morgan
Dualtit"atsprinzip
Verkn"upfungsglieder
NAND
NOR
Konjunktion
Disjunktion
"Aquivalenz
Antivalenz
Transfer
Inhibition
Implikation
Null
Eins
Komperator
Codierer: 40700/183
Schaltnetz was dem Zeichen eines Zeichenvorrats ein Zeichen eines anderen Zeichenvorrats zuordnet
Dekodierer: Wo immer nur eines: Am Ausgang 1 ist
PLHS 18P8
GAL 20V10
PAL 16L8
0 0 0 0 0 1
1 0 0 0 1 0
2 0 0 1 0 0
3 0 0 1 1 0
4 0 1 0 0 0
5 0 1 0 1 1
6 0 1 1 0 1
7 0 1 1 1 0
8 1 0 0 0 1
9 1 0 0 1 0
10 1 0 1 0 0
11 1 0 1 1 0
12 1 1 0 0 0
13 1 1 0 1 1
14 1 1 1 0 1
15 1 1 1 1 1
0 0 0 0 0 1
5 0 1 0 1 1
6 0 1 1 0 1
8 1 0 0 0 1
13 1 1 0 1 1
14 1 1 1 0 1
15 1 1 1 1 1
Gruppe 0:
0 0 0 0 0 1
Gruppe 1:
8 1 0 0 0 1
Gruppe 2:
5 0 1 0 1 1
6 0 1 1 0 1
Gruppe 3:
13 1 1 0 1 1
14 1 1 1 0 1
Gruppe 4:
15 1 1 1 1 1
Gruppe 0:
0 0 0 0 0 1
Gruppe 1:
8 1 0 0 0 1
Gruppe 2:
5 0 1 0 1 1
6 0 1 1 0 1
Gruppe 3:
13 1 1 0 1 1
14 1 1 1 0 1
Gruppe 4:
15 1 1 1 1 1
0:8 - 0 0 0
5:13 - 1 0 1
6:14 - 1 1 0
13:15 1 1 - 1
14:15 1 1 1 -
Gruppe 0:
0:8 - 0 0 0
Gruppe 2:
5:13 - 1 0 1
6:14 - 1 1 0
Gruppe 3:
13:15 1 1 - 1
14:15 1 1 1 -
0 5 6 8 13 14 15
0:8 * *
5:13 * *
6:14 * *
13:15 * *
14:15 * *
0 5 6 8 13 14 15
0:8 * *
5:13 * *
6:14 * *
13:15 * *
0:8 - 0 0 0
5:13 - 1 0 1
6:14 - 1 1 0
13:15 1 1 - 1
y <= (not x2 and not x1 and not x0) or
(x2 and not x1 and x0) or
(x2 and x1 and not x0) or
(x3 and x2 and x0);
y <= not (
(x2 or x1 or x0) and
(not x2 or x1 or not x0) and
(not x2 or not x1 or x0) and
(not x3 or not x2 or not x0)
);
library ieee;
use ieee.std_logic_1164.all;
entity meinschaltnetz0045 is
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end;
architecture verhalten of meinschaltnetz0045 is
begin
y <= (not x2 and not x1 and not x0) or
(x2 and not x1 and x0) or
(x2 and x1 and not x0) or
(x3 and x2 and x0);
end;
library ieee;
use ieee.std_logic_1164.all;
entity testbench0045 is
port
(
y: out std_logic
);
end;
architecture verhalten of testbench0045 is
component meinschaltnetz0045
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end component;
signal x3, x2, x1, x0: std_logic;
begin
sn: meinschaltnetz0045 PORT MAP (x3=>x3, x2=>x2, x1=>x1, x0=>x0, y=>y);
x0 <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns;
x1 <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x2 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x3 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '0' after 40 ns, '0' after 50 ns, '0' after 60 ns, '0' after 70 ns, '1' after 80 ns, '1' after 90 ns, '1' after 100 ns, '1' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
end;
library ieee;
use ieee.std_logic_1164.all;
entity meinschaltnetz0045 is
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end;
architecture verhalten of meinschaltnetz0045 is
begin
y <= (not x2 and not x1 and not x0) or
(x2 and not x1 and x0) or
(x2 and x1 and not x0) or
(x3 and x2 and x0);
end;
library ieee;
use ieee.std_logic_1164.all;
entity testbench0045 is
port
(
y: out std_logic
);
end;
architecture verhalten of testbench0045 is
component meinschaltnetz0045
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end component;
signal x3, x2, x1, x0: std_logic;
begin
sn: meinschaltnetz0045 PORT MAP (x3=>x3, x2=>x2, x1=>x1, x0=>x0, y=>y);
x0 <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns;
x1 <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x2 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x3 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '0' after 40 ns, '0' after 50 ns, '0' after 60 ns, '0' after 70 ns, '1' after 80 ns, '1' after 90 ns, '1' after 100 ns, '1' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
end;
0 0 0 0 0 1 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 1 0 4 0 1 0 0 0 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 1 9 1 0 0 1 0 10 1 0 1 0 0 11 1 0 1 1 0 12 1 1 0 0 0 13 1 1 0 1 1 14 1 1 1 0 1 15 1 1 1 1 1
getvhdlcode: tail -n 60 quine0045.txt > quine0045.vhdl compile: ghdl -a quine0045.vhdl simulate: ghdl -r testbench0045 --wave=wave.ghw gtkwave wave.ghw
b a x b a y 0 0 0 0 1 0 1 1 0 0 1 1 1 1 2 0 1 0 1 0 0 3 0 1 1 1 1 0 4 1 0 0 1 0 0 5 1 0 1 0 1 0 6 1 1 0 1 0 0 7 1 1 1 0 1 1 b a x b 0 0 0 0 1 1 0 0 1 1 2 0 1 0 1 3 0 1 1 1 4 1 0 0 1 5 1 0 1 0 6 1 1 0 1 7 1 1 1 0 b a x a 0 0 0 0 0 1 0 0 1 1 2 0 1 0 0 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 0 7 1 1 1 1 b a x y 0 0 0 0 1 1 0 0 1 1 2 0 1 0 0 3 0 1 1 0 4 1 0 0 0 5 1 0 1 0 6 1 1 0 0 7 1 1 1 1 b a x b 0 0 0 0 1 1 0 0 1 1 2 0 1 0 1 3 0 1 1 1 4 1 0 0 1 6 1 1 0 1 b a x a 1 0 0 1 1 3 0 1 1 1 5 1 0 1 1 7 1 1 1 1 b a x y 0 0 0 0 1 1 0 0 1 1 7 1 1 1 1 b a x b Gruppe 0: 0 0 0 0 1 Gruppe 1: 1 0 0 1 1 2 0 1 0 1 4 1 0 0 1 Gruppe 2: 3 0 1 1 1 6 1 1 0 1 b a x a Gruppe 1: 1 0 0 1 1 Gruppe 2: 3 0 1 1 1 5 1 0 1 1 Gruppe 3: 7 1 1 1 1 b a x y Gruppe 0: 0 0 0 0 1 Gruppe 1: 1 0 0 1 1 Gruppe 3: 7 1 1 1 1 b a x b Gruppe 0: 0 0 0 0 1 Gruppe 1: 1 0 0 1 1 2 0 1 0 1 4 1 0 0 1 Gruppe 2: 3 0 1 1 1 6 1 1 0 1 0:1 0 0 - 0:2 0 - 0 0:4 - 0 0 1:3 0 - 1 2:3 0 1 - 2:6 - 0 1 1:6 1 - 0 0:1 0 0 - 2:3 0 1 - 0:2 0 - 0 1:6 1 - 0 1:3 0 - 1 0:4 - 0 0 2:6 - 0 1 Gruppe 0: 0:1 0 0 - Gruppe 1: 2:3 0 1 - Gruppe 0: 0:2 0 - 0 Gruppe 1: 1:6 1 - 0 1:3 0 - 1 Gruppe 0: 0:4 - 0 0 Gruppe 1: 2:6 - 0 1 Gruppe 0: 0:1 0 0 - Gruppe 1: 2:3 0 1 - 0:1:2:3 0 - - Gruppe 0: 0:2 0 - 0 Gruppe 1: 1:6 1 - 0 1:3 0 - 1 0:2:1:6 - - 0 0:1:2:3 0 - - Gruppe 0: 0:4 - 0 0 Gruppe 1: 2:6 - 0 1 0:4:2:6 - - 0 0:2:4:6 - - 0 0:1:2:3 0 - - y <= (not x or not b); y <= not (x and b); b a x a Gruppe 1: 1 0 0 1 1 Gruppe 2: 3 0 1 1 1 5 1 0 1 1 Gruppe 3: 7 1 1 1 1 1:3 0 - 1 1:5 - 0 1 3:7 - 1 1 5:7 1 - 1 1:3 0 - 1 5:7 1 - 1 1:5 - 0 1 3:7 - 1 1 1:3:5:7 - - 1 a <= x; a <= not (not x); b a x y Gruppe 0: 0 0 0 0 1 Gruppe 1: 1 0 0 1 1 Gruppe 3: 7 1 1 1 1 0:1 0 0 - 7 1 1 1 y <= (not b and not a) or (b and a and x); y <= not ((b or a) and (not b or not a or not x)); b <= (not x or not b); b <= not (x and b); a <= x; a <= not (not x); y <= (not b and not a) or (b and a and x); y <= not ((b or a) and (not b or not a or not x)); library ieee; use ieee.std_logic_1164.all; entity meinausgangsschaltnetz0045 is port ( y: out std_logic; a, b, x: in std_logic ); end; architecture verhalten of meinausgangsschaltnetz0045 is begin y <= (not b and not a) or (b and a and x); end; library ieee; use ieee.std_logic_1164.all; entity meinuebergangsschaltnetz0045 is port ( b, a, x: in std_logic; bout, aout: out std_logic ); end; architecture verhalten of meinuebergangsschaltnetz0045 is begin bout <= (not x or not b); -- bout <= not (x and b); aout <= x; -- aout <= not (not x); end; library ieee; use ieee.std_logic_1164.all; entity meintestbench0045 is port ( y: out std_logic; aout, bout: out std_logic ); end; architecture verhalten of meintestbench0045 is component meinausgangsschaltnetz0045 port ( y: out std_logic; b, a, x: in std_logic ); end component; component meinuebergangsschaltnetz0045 port ( b, a, x: in std_logic; bout, aout: out std_logic ); end component; signal b, a, x: std_logic; begin snaus: meinausgangsschaltnetz0045 PORT MAP (b=>b, a=>a, x=>x, y=>y); snueber: meinuebergangsschaltnetz0045 PORT MAP (b=>b, a=>a, x=>x, bout=>bout, aout=>aout); x <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns; a <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns; b <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns; end; [code] [img] https://www.ituenix.de/nextcloud/data/dave/files/Documents/david4/2023-12-09/Screenshot_20231209_182211.png [/img] [code] library ieee; use ieee.std_logic_1164.all; entity meinausgangsschaltnetz0045 is port ( y: out std_logic; a, b, x: in std_logic ); end; architecture verhalten of meinausgangsschaltnetz0045 is begin y <= (not b and not a) or (b and a and x); end; library ieee; use ieee.std_logic_1164.all; entity meinuebergangsschaltnetz0045 is port ( b, a, x: in std_logic; bout, aout: out std_logic ); end; architecture verhalten of meinuebergangsschaltnetz0045 is begin bout <= (not x or not b); -- bout <= not (x and b); aout <= x; -- aout <= not (not x); end; library ieee; use ieee.std_logic_1164.all; entity meintestbench0045 is port ( y: out std_logic; aout, bout: out std_logic ); end; architecture verhalten of meintestbench0045 is component meinausgangsschaltnetz0045 port ( y: out std_logic; b, a, x: in std_logic ); end component; component meinuebergangsschaltnetz0045 port ( b, a, x: in std_logic; bout, aout: out std_logic ); end component; signal b, a, x: std_logic; begin snaus: meinausgangsschaltnetz0045 PORT MAP (b=>b, a=>a, x=>x, y=>y); snueber: meinuebergangsschaltnetz0045 PORT MAP (b=>b, a=>a, x=>x, bout=>bout, aout=>aout); x <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns; a <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns; b <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns; end;
cut: tail -n 70 automat0045.txt > automat0045.vhdl compile: ghdl -a automat0045.vhdl sim: ghdl -r meintestbench0045 --wave=wave.ghw gtkwave wave.ghw
b a x b a y 0 0 0 0 1 0 1 1 0 0 1 1 1 1 2 0 1 0 1 0 0 3 0 1 1 1 1 0 4 1 0 0 1 0 0 5 1 0 1 0 1 0 6 1 1 0 1 0 0 7 1 1 1 0 1 1
lb, lbu
lh, lhu
lw
ld*
la*
li*
sb
sh
sw
sd*
add, addi, addiu
sub
mult, multu
div, divu
and, andi
or, ori
xor, xori
not*, abs*, neg*, rem*
Datenbewegungsbefehle
arithmetisch logische Befehle
Schiebe und Rotationsbefehle
Multimediabefehle
Gleitkommabefehle
Systemsteuerbefehle
Synchronisationsbefehle
Programmsteuerbefehle
Dreiaddressformat
Zweiaddressformat
Einaddressformat
Nulladdressformat
Lade- und Speicherarchitektur
Register- Speicherarchitektur
Speicher- Speicherarchitektur
Stack- und Kellerarchtektur
Akkumulatorarchitektur
8087, Intel, ATAM 862, Atmel
Big-Endian
Little-Endian
Einzelbit
Ganzzahl
Gleitkomma
Multimedia
Byte
Halbwort
Wort
Doppelwort
signed
unsigned
packed
unpacked
bcd
ascii
ieee-754-std
f = (-1)\^s * 1.m * 2\^(e-b)
32: einfach
64: doppelt
80: erweitert
Unmittelbare Addressierung
Registeraddressierung
Direkte oder Absolute Addressierung
Indirekte Addressiernug
Indirekte Addressierung mit Verschiebung
Indirekte Addressierung mit Autoinkrement/Dekrement
Indizierte Addressierung
Indizierte Addressierung mit Verschiebung
Steuereinheit
1.) Befehlsdekodirer
2.) Funtkionskdekodierer
MemToReg
MemWrite
Branch
ALU-Src
ALU-Op
RegDst
Regwrite
Befehlsdekodirer
Funktionsdekodierer
Registersatz
ALU
Datenspeicher
Befehlsspeicher
Befehlsz"ahler
Vorzeichenerweiterungseinheit
1 x AND
2 x Addierer
1 x 2 Bit Shifter
4 x MUX
Befehlskdedoierer
- MemTorReg
- MemWrite
- Branch
- ALU-Src
- ALU-Op
- RegDst
- RegWrite
Funktionsdekodierer
- Func
- ALU-Op
- ALU-Operation
Registeratz
- Lese-Daten-1
- Lese-Daten-2
- Schreibedaten
- Lese-Register-1
- Lese-Register-2
- Schreiberegister
- WE
Datenspeicher
- Lesedaten
- Schreibedaten
- Addresse
- WE
AND:
- PCSrc
ALU
- Ergebnis
- Null
Befehlsspeicher
- Addresse
- Lesedaten
Befehslz"ahler
- PC (t)
- PC (t+1)
ALU Func ALU-Operation
00 x 010 - add
x1 x 110 - sub
1x 100 000 - add 010 - add
11
OpCode RegDst RegWrite Branch ALU-Src MemTorReg MemWrite ALU-Operation
r-typ 000 000 1 1 0 0 0 0 10
Verzweigungsbefehle
1.) Bedingt
2.) Unbedingt
1.) Absolut = Branch
2.) Befehlsz"ahlerrelativ = Jump
3.) Befehslz"ahlerindirekt = Jump Register
eq - equal
ne - not equal
gt - greater than
ge - greater than equal
lt - less than
le - less than equal
jal - jump and link: Speichern zus"atzlich die Addresse, die dem Sprungbefehl folgt
j, b*, jr
jal
jalr
beq, bne
beqz*, bnez*
blt, ble
bltz, blez
bgt, bge
bgtz, bgez
PC_neu = PC_alt + (i << 2)
PC_neu = PC_alt \& 0xf000 0000 | (i << 2)
Zustandselemente
1.) Befehlsspeicher
2.) Datenspeicher
3.) Regisersatz
4.) Befehlsz"ahler
1.) Befehl holen
2.) Befehl dekodieren
3.) Operanden der ALU bereitstellen
4.) Operation in der ALU ausf"uhren
5.) Operanden in Architekturregister zur"uckschreiben
1.) IF = Instruction Fetch
2.) ID = Instruction Decode / Register Fetch
3.) EX = Execute Address Calculation
4.) MEM = Memory Access
5.) WB = Write Back
1.) Datenkonflikte
2.) Steuerflusskonflikte
3.) Struktur und Ressourcenkonflikte
1.) Statisches Scheduling durch die Software: In Order Issue In Order Completion: VLIW
2.) Durch die Hardware : Out Of Order Issue Out of Order Completion
1.) Statisch durch die Hardware
1.1.) Predict Always Not Taken
1.2.) Predict Always Taken
1.3.) Predic taken forward not taken
2.) Dynamisch
2.1.) Taken Not Taken
2.2.) Strongly Weakly T/NT
0 0 0 0 0 1
1 0 0 0 1 1
2 0 0 1 0 1
3 0 0 1 1 0
4 0 1 0 0 0
5 0 1 0 1 1
6 0 1 1 0 1
7 0 1 1 1 0
8 1 0 0 0 1
9 1 0 0 1 1
10 1 0 1 0 0
11 1 0 1 1 1
12 1 1 0 0 1
13 1 1 0 1 1
14 1 1 1 0 0
15 1 1 1 1 1
0 0 0 0 0 1
1 0 0 0 1 1
2 0 0 1 0 1
5 0 1 0 1 1
6 0 1 1 0 1
8 1 0 0 0 1
9 1 0 0 1 1
11 1 0 1 1 1
12 1 1 0 0 1
13 1 1 0 1 1
15 1 1 1 1 1
Gruppe 0:
0 0 0 0 0 1
Gruppe 1:
1 0 0 0 1 1
2 0 0 1 0 1
8 1 0 0 0 1
Gruppe 2:
5 0 1 0 1 1
6 0 1 1 0 1
9 1 0 0 1 1
12 1 1 0 0 1
Gruppe 3:
11 1 0 1 1 1
13 1 1 0 1 1
Gruppe 4:
15 1 1 1 1 1
0:1 0 0 0 -
0:2 0 0 - 0
0:8 - 0 0 0
1:5 0 - 0 1
1:9 - 0 0 1
2:6 0 - 1 0
8:9 1 0 0 -
8:12 1 - 0 0
5:13 - 1 0 1
9:11 1 0 - 1
9:13 1 - 0 1
12:13 1 1 0 -
11:12 1 - 1 1
13:14 1 1 - 1
0:8 - 0 0 0
1:9 - 0 0 1
5:13 - 1 0 1
0:1 0 0 0 -
8:9 1 0 0 -
12:13 1 1 0 -
0:2 0 0 - 0
9:11 1 0 - 1
13:14 1 1 - 1
2:6 0 - 1 0
1:5 0 - 0 1
8:12 1 - 0 0
9:13 1 - 0 1
11:12 1 - 1 1
Gruppe 0:
0:8 - 0 0 0
Gruppe 1:
1:9 - 0 0 1
Gruppe 2:
5:13 - 1 0 1
Gruppe 0:
0:1 0 0 0 -
Gruppe 1:
8:9 1 0 0 -
Gruppe 2:
12:13 1 1 0 -
Gruppe 0:
0:2 0 0 - 0
Gruppe 2:
9:11 1 0 - 1
Gruppe 3:
13:14 1 1 - 1
Gruppe 1:
2:6 0 - 1 0
1:5 0 - 0 1
8:12 1 - 0 0
Gruppe 2:
9:13 1 - 0 1
Gruppe 3:
11:12 1 - 1 1
Gruppe 0:
0:8 - 0 0 0
Gruppe 1:
1:9 - 0 0 1
Gruppe 2:
5:13 - 1 0 1
0:8:1:9 - 0 0 -
1:9:5:13 - - 0 1
Gruppe 0:
0:1 0 0 0 -
Gruppe 1:
8:9 1 0 0 -
Gruppe 2:
12:13 1 1 0 -
0:1:8:9 - 0 0 -
8:9:12:13 1 - 0 -
Gruppe 0:
0:2 0 0 - 0
Gruppe 2:
9:11 1 0 - 1
Gruppe 3:
13:14 1 1 - 1
9:11:13:14 1 - - 1
Gruppe 1:
2:6 0 - 1 0
1:5 0 - 0 1
8:12 1 - 0 0
Gruppe 2:
9:13 1 - 0 1
Gruppe 3:
11:12 1 - 1 1
1:5:9:13 - - 0 1
8:12:9:13 1 - 0 -
9:13:11:12 1 - - 1
0:8:1:9 - 0 0 -
1:9:5:13 - - 0 1
0:1:8:9 - 0 0 -
8:9:12:13 1 - 0 -
0:2 0 0 - 0
9:11:13:14 1 - - 1
2:6 0 - 1 0
1:5:9:13 - - 0 1
8:12:9:13 1 - 0 -
9:13:11:12 1 - - 1
1:9:5:13 - - 0 1
1:5:9:13 - - 0 1
0:1:8:9 - 0 0 -
0:8:1:9 - 0 0 -
0:2 0 0 - 0
9:11:13:14 1 - - 1
9:13:11:12 1 - - 1
2:6 0 - 1 0
8:12:9:13 1 - 0 -
8:9:12:13 1 - 0 -
1:9:5:13 - - 0 1
0:8:1:9 - 0 0 -
0:2 0 0 - 0
9:11:13:14 1 - - 1
9:13:11:12 1 - - 1
2:6 0 - 1 0
8:9:12:13 1 - 0 -
0 1 2 5 6 8 9 11 12 13 14
1:9:5:13 * * * *
0:8:1:9 * * * *
0:2 * *
9:11:13:14 * * * *
9:13:11:12 * * * *
2:6 * *
8:9:12:13 * * * *
0 1 2 5 6 8 9 11 12 13 14
1:9:5:13 * * * *
0:8:1:9 * * * *
9:11:13:14 * * * *
2:6 * *
8:9:12:13 * * * *
1:9:5:13 - - 0 1
0:8:1:9 - 0 0 -
9:11:13:14 1 - - 1
2:6 0 - 1 0
8:9:12:13 1 - 0 -
y <= (not x1 and x0) or
(not x2 and not x1) or
(x3 and x0) or
(not x3 and x1 and not x0) or
(x3 and not x1);
y <= not (
(x1 or not x0) and
(x2 or x1) and
(not x3 or not x0) and
(x3 or not x1 or x0) and
(not x3 or x1)
);
library ieee;
use ieee.std_logic_1164.all;
entity meinschaltnetz0046 is
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end;
architecture verhalten of meinschaltnetz0046 is
begin
y <= (not x1 and x0) or
(not x2 and not x1) or
(x3 and x0) or
(not x3 and x1 and not x0) or
(x3 and not x1);
end;
library ieee;
use ieee.std_logic_1164.all;
entity meinetestbench0046 is
port (
y: out std_logic
);
end;
architecture verhalten of meinetestbench0046 is
component meinschaltnetz0046
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end component;
signal x3, x2, x1, x0: std_logic;
begin
sn: meinschaltnetz0046 PORT MAP (x3=>x3, x2=>x2, x1=>x1, x0=>x0, y=>y);
x0 <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns;
x1 <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x2 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x3 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '0' after 40 ns, '0' after 50 ns, '0' after 60 ns, '0' after 70 ns, '1' after 80 ns, '1' after 90 ns, '1' after 100 ns, '1' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
end;
0 0 0 0 0 1 1 0 0 0 1 1 2 0 0 1 0 1 3 0 0 1 1 0 4 0 1 0 0 0 5 0 1 0 1 1 6 0 1 1 0 1 7 0 1 1 1 0 8 1 0 0 0 1 9 1 0 0 1 1 10 1 0 1 0 0 11 1 0 1 1 1 12 1 1 0 0 1 13 1 1 0 1 1 14 1 1 1 0 0 15 1 1 1 1 1
library ieee;
use ieee.std_logic_1164.all;
entity meinschaltnetz0046 is
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end;
architecture verhalten of meinschaltnetz0046 is
begin
y <= (not x1 and x0) or
(not x2 and not x1) or
(x3 and x0) or
(not x3 and x1 and not x0) or
(x3 and not x1);
end;
library ieee;
use ieee.std_logic_1164.all;
entity meinetestbench0046 is
port (
y: out std_logic
);
end;
architecture verhalten of meinetestbench0046 is
component meinschaltnetz0046
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end component;
signal x3, x2, x1, x0: std_logic;
begin
sn: meinschaltnetz0046 PORT MAP (x3=>x3, x2=>x2, x1=>x1, x0=>x0, y=>y);
x0 <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns;
x1 <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x2 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x3 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '0' after 40 ns, '0' after 50 ns, '0' after 60 ns, '0' after 70 ns, '1' after 80 ns, '1' after 90 ns, '1' after 100 ns, '1' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
end;
cat: tail -n 50 quine0046.txt > quine0046.vhdl compile: ghdl -a quine0046.vhdl sim: ghdl -r meinetestbench0046 --wave=wave.ghw gtkwave wave.ghw
b a x b a y 0 0 0 0 1 0 0 1 0 0 1 0 1 0 2 0 1 0 0 0 1 3 0 1 1 1 0 1 4 1 0 0 0 0 1 5 1 0 1 1 1 0 6 1 1 0 0 0 1 7 1 1 1 1 1 1 b a x b 0 0 0 0 1 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 0 7 1 1 1 1 b a x a 0 0 0 0 0 1 0 0 1 1 2 0 1 0 0 3 0 1 1 0 4 1 0 0 0 5 1 0 1 1 6 1 1 0 0 7 1 1 1 1 b a x y 0 0 0 0 0 1 0 0 1 0 2 0 1 0 1 3 0 1 1 1 4 1 0 0 1 5 1 0 1 0 6 1 1 0 1 7 1 1 1 1 b a x b 0 0 0 0 1 3 0 1 1 1 5 1 0 1 1 7 1 1 1 1 b a x a 1 0 0 1 1 5 1 0 1 1 7 1 1 1 1 b a x y 2 0 1 0 1 3 0 1 1 1 4 1 0 0 1 6 1 1 0 1 7 1 1 1 1 b a x b Gruppe 0: 0 0 0 0 1 Gruppe 2: 3 0 1 1 1 5 1 0 1 1 Gruppe 3: 7 1 1 1 1 0 0 0 0 3:7 - 1 1 5:7 1 - 1 b <= (not b and not a and not x) or (a and x) or (b and x); b <= not ( (b or a or x) and (not a or not x) and (not b or not x) ); b a x a 1 0 0 1 1 5 1 0 1 1 7 1 1 1 1 1:5 - 0 1 5:7 1 - 1 a <= (not a and x) or (b and x); a <= not ( (a or not x) and (not or not x) ); b a x y Gruppe 1: 2 0 1 0 1 4 1 0 0 1 Gruppe 2: 3 0 1 1 1 6 1 1 0 1 Gruppe 3: 7 1 1 1 1 2:3 0 1 - 2:6 - 1 0 1:6 1 - 0 3:7 - 1 1 6:7 1 1 - 2:3 0 1 - 6:7 1 1 - 2:6 - 1 0 3:7 - 1 1 1:6 1 - 0 2:3:6:7 - 1 - 2:6:3:7 - 1 - 1:6 1 - 0 y <= (a) or (b and not x); y <= (not (not a) and (not b or x)); b <= (not b and not a and not x) or (a and x) or (b and x); a <= (not a and x) or (b and x); y <= (a) or (b and not x); library ieee; use ieee.std_logic_1164.all; entity meinausgangsschaltnetz0046 is port ( a, b, x: in std_logic; y: out std_logic ); end; architecture verhalten of meinausgangsschaltnetz0046 is begin y <= (a) or (b and not x); end; library ieee; use ieee.std_logic_1164.all; entity meinuebergangsschaltnetz0046 is port ( b, a, x: in std_logic; bout, aout: out std_logic ); end; architecture verhalten of meinuebergangsschaltnetz0046 is begin bout <= (not b and not a and not x) or (a and x) or (b and x); aout <= (not a and x) or (b and x); end; library ieee; use ieee.std_logic_1164.all; entity testbench0046 is port ( bout, aout: out std_logic; y: out std_logic ); end; architecture verhalten of testbench0046 is component meinuebergangsschaltnetz0046 port ( b, a, x: in std_logic; bout, aout: out std_logic ); end component; component meinausgangsschaltnetz0046 port ( b, a, x: in std_logic; y: out std_logic ); end component; signal b, a, x: std_logic; begin ueber: meinuebergangsschaltnetz0046 PORT MAP (b=>b, a=>a, x=>x, bout=>bout, aout=>aout); ausgang: meinausgangsschaltnetz0046 PORT MAP (b=>b, a=>a, x=>x, y=>y); x <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns; a <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns; b <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns; end;
b a x b a y 0 0 0 0 1 0 0 1 0 0 1 0 1 0 2 0 1 0 0 0 1 3 0 1 1 1 0 1 4 1 0 0 0 0 1 5 1 0 1 1 1 0 6 1 1 0 0 0 1 7 1 1 1 1 1 1
library ieee; use ieee.std_logic_1164.all; entity meinausgangsschaltnetz0046 is port ( a, b, x: in std_logic; y: out std_logic ); end; architecture verhalten of meinausgangsschaltnetz0046 is begin y <= (a) or (b and not x); end; library ieee; use ieee.std_logic_1164.all; entity meinuebergangsschaltnetz0046 is port ( b, a, x: in std_logic; bout, aout: out std_logic ); end; architecture verhalten of meinuebergangsschaltnetz0046 is begin bout <= (not b and not a and not x) or (a and x) or (b and x); aout <= (not a and x) or (b and x); end; library ieee; use ieee.std_logic_1164.all; entity testbench0046 is port ( bout, aout: out std_logic; y: out std_logic ); end; architecture verhalten of testbench0046 is component meinuebergangsschaltnetz0046 port ( b, a, x: in std_logic; bout, aout: out std_logic ); end component; component meinausgangsschaltnetz0046 port ( b, a, x: in std_logic; y: out std_logic ); end component; signal b, a, x: std_logic; begin ueber: meinuebergangsschaltnetz0046 PORT MAP (b=>b, a=>a, x=>x, bout=>bout, aout=>aout); ausgang: meinausgangsschaltnetz0046 PORT MAP (b=>b, a=>a, x=>x, y=>y); x <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns; a <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns; b <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns; end;
cut: tail -n 70 automat0046.txt > automat0046.vhdl compile: ghdl -a automat0046.vhdl sim: ghdl -r testbench0046 --wave=wave0046.ghw gtkwave wave0046.ghw
0 0 0 0 0 1
1 0 0 0 1 0
2 0 0 1 0 0
3 0 0 1 1 0
4 0 1 0 0 1
5 0 1 0 1 0
6 0 1 1 0 0
7 0 1 1 1 1
8 1 0 0 0 0
9 1 0 0 1 0
10 1 0 1 0 0
11 1 0 1 1 1
12 1 1 0 0 1
13 1 1 0 1 1
14 1 1 1 0 0
15 1 1 1 1 0
0 0 0 0 0 1
4 0 1 0 0 1
7 0 1 1 1 1
11 1 0 1 1 1
12 1 1 0 0 1
13 1 1 0 1 1
Gruppe 0:
0 0 0 0 0 1
Gruppe 1:
4 0 1 0 0 1
Gruppe 2:
12 1 1 0 0 1
Gruppe 3:
7 0 1 1 1 1
11 1 0 1 1 1
13 1 1 0 1 1
Gruppe 0:
0 0 0 0 0 1
Gruppe 1:
4 0 1 0 0 1
Gruppe 2:
12 1 1 0 0 1
Gruppe 3:
7 0 1 1 1 1
11 1 0 1 1 1
13 1 1 0 1 1
0:4 0 - 0 0
4:12 - 1 0 0
12:13 1 1 0 -
7 0 1 1 1
11 1 0 1 1
4:12 - 1 0 0
0:4 0 - 0 0
12:13 1 1 0 -
7 0 1 1 1
11 1 0 1 1
0 4 7 11 12 13
4:12 * *
0:4 * *
12:13 * *
7 *
11 *
0 4 7 11 12 13
0:4 * *
12:13 * *
7 *
11 *
y <= (not x3 and not x1 and not x0) or
(x3 and x2 and not x1) or
(not x3 and x2 and x1 and x0) or
(x3 and not x2 and x1 and x0);
y <= not (
(x3 or x1 or x0) and
(not x3 or not x2 or x0) and
(x3 or not x2 or not x1 or not x0) and
(not x3 or x2 or not x1 or not not x0)
);
library ieee;
use ieee.std_logic_1164.all;
entity meinschaltnetz0047 is
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end;
architecture verhalten of meinschaltnetz0047 is
begin
y <= (not x3 and not x1 and not x0) or
(x3 and x2 and not x1) or
(not x3 and x2 and x1 and x0) or
(x3 and not x2 and x1 and x0);
end;
library ieee;
use ieee.std_logic_1164.all;
entity meinetestbench0047 is
port (
y: out std_logic
);
end;
architecture verhalten of meinetestbench0047 is
component meinschaltnetz0047
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end component;
signal x3, x2, x1, x0: std_logic;
begin
sn: meinschaltnetz0047 PORT MAP (x3=>x3, x2=>x2, x1=>x1, x0=>x0, y=>y);
x0 <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns;
x1 <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x2 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x3 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '0' after 40 ns, '0' after 50 ns, '0' after 60 ns, '0' after 70 ns, '1' after 80 ns, '1' after 90 ns, '1' after 100 ns, '1' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
end;
0 0 0 0 0 1 1 0 0 0 1 0 2 0 0 1 0 0 3 0 0 1 1 0 4 0 1 0 0 1 5 0 1 0 1 0 6 0 1 1 0 0 7 0 1 1 1 1 8 1 0 0 0 0 9 1 0 0 1 0 10 1 0 1 0 0 11 1 0 1 1 1 12 1 1 0 0 1 13 1 1 0 1 1 14 1 1 1 0 0 15 1 1 1 1 0
library ieee;
use ieee.std_logic_1164.all;
entity meinschaltnetz0047 is
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end;
architecture verhalten of meinschaltnetz0047 is
begin
y <= (not x3 and not x1 and not x0) or
(x3 and x2 and not x1) or
(not x3 and x2 and x1 and x0) or
(x3 and not x2 and x1 and x0);
end;
library ieee;
use ieee.std_logic_1164.all;
entity meinetestbench0047 is
port (
y: out std_logic
);
end;
architecture verhalten of meinetestbench0047 is
component meinschaltnetz0047
port (
x3, x2, x1, x0: in std_logic;
y: out std_logic
);
end component;
signal x3, x2, x1, x0: std_logic;
begin
sn: meinschaltnetz0047 PORT MAP (x3=>x3, x2=>x2, x1=>x1, x0=>x0, y=>y);
x0 <= '0' after 0 ns, '1' after 10 ns, '0' after 20 ns, '1' after 30 ns, '0' after 40 ns, '1' after 50 ns, '0' after 60 ns, '1' after 70 ns, '0' after 80 ns, '1' after 90 ns, '0' after 100 ns, '1' after 110 ns, '0' after 120 ns, '1' after 130 ns, '0' after 140 ns, '1' after 150 ns;
x1 <= '0' after 0 ns, '0' after 10 ns, '1' after 20 ns, '1' after 30 ns, '0' after 40 ns, '0' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '1' after 100 ns, '1' after 110 ns, '0' after 120 ns, '0' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x2 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '1' after 40 ns, '1' after 50 ns, '1' after 60 ns, '1' after 70 ns, '0' after 80 ns, '0' after 90 ns, '0' after 100 ns, '0' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
x3 <= '0' after 0 ns, '0' after 10 ns, '0' after 20 ns, '0' after 30 ns, '0' after 40 ns, '0' after 50 ns, '0' after 60 ns, '0' after 70 ns, '1' after 80 ns, '1' after 90 ns, '1' after 100 ns, '1' after 110 ns, '1' after 120 ns, '1' after 130 ns, '1' after 140 ns, '1' after 150 ns;
end;
cut: tail -n 45 quine0047.txt > quine0047.vhdl compile: ghdl -a quine0047.vhdl sim: ghdl -r meinetestbench0047 --wave=wave0047.ghw gtkwave wave0047.ghw