Re: Aufgaben und Übungen,

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;

Image 20231202_195512

Image 20231203_091957

Image 20231203_092002

Image 20231203_111410

Image 20231203_111414

Image 20231203_111417

Image 20231203_111424

Image 20231203_111428

Image 20231203_111436

Image 20231203_111440

Image 20231203_111443

Image 20231203_111446

Image 20231203_111450

Image 20231203_120100

Image 20231203_120103

Image 20231203_120106

Image 20231203_120109

Image 20231203_184731

Image 20231203_184733

Image 20231203_184740

Image 20231203_184743

Image 20231203_184746

Image 20231203_184749

Image 20231203_202134

Image 20231203_202136

Image 20231203_202139

Image 20231203_202142

Image 20231203_202144

Image 20231203_202147

Image 20231203_202150

Image 20231203_203558

Image 20231203_203600

Image 20231203_203603

Image 20231203_203605

Image 20231203_203607

Image 20231203_203609

Image 20231203_203611

Image 20231203_204031

Image 20231203_204034

Image 20231203_204036

Image 20231203_204038

Image 20231203_204041

Image 20231203_204044

Image 20231203_204045

Image 20231203_204048

Image 20231203_204050

Image 20231203_204415

Image 20231203_204417

Image 20231203_204421

Image 20231203_204425

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 \&amp; 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

Image Screenshot_20231204_195113

 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;

Image Screenshot_20231204_202220

	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

Image Screenshot_20231204_202220

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 \&amp; 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;

Image Screenshot_20231206_165948

>
 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

Image Screenshot_20231206_165948

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 \&amp; 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;

Image Screenshot_20231209_172154

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;

Image Screenshot_20231209_172154

 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

Image Screenshot_20231209_172154

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;

Image Screenshot_20231209_182211

cut:
	tail -n 70 automat0045.txt > automat0045.vhdl
compile:
	ghdl -a automat0045.vhdl
sim:
	ghdl -r meintestbench0045 --wave=wave.ghw
	gtkwave wave.ghw

Image Screenshot_20231209_182211

	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 \&amp; 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;

Image Screenshot_20231210_162328

 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

Image Screenshot_20231210_162328

            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;

Image Screenshot_20231210_162328

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;

Image Screenshot_20231210_165933

	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

Image Screenshot_20231210_165933

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;

Image Screenshot_20231210_165933

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;

Image Screenshot_20231211_034647

 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

Image Screenshot_20231211_034647

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;

Image Screenshot_20231211_034647

cut:
	tail -n 45 quine0047.txt > quine0047.vhdl
compile:
	ghdl -a quine0047.vhdl
sim:
	ghdl -r meinetestbench0047 --wave=wave0047.ghw
	gtkwave wave0047.ghw

Image Screenshot_20231211_034647