b a x b a y0 y1 y2
0 0 0 0 0 1 0 0 0
1 0 0 1 1 0 1 0 0
2 0 1 0 0 1 0 0 0
3 0 1 1 0 0 1 0 0
4 1 0 0 1 1 0 1 0
5 1 0 1 1 0 0 0 0
6 1 1 0 0 0 1 0 0
7 1 1 1 1 1 1 0 1
b a x b
0 0 0 0 0
1 0 0 1 1
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1
5 1 0 1 1
6 1 1 0 0
7 1 1 1 1
b a x a
0 0 0 0 1
1 0 0 1 0
2 0 1 0 1
3 0 1 1 0
4 1 0 0 1
5 1 0 1 0
6 1 1 0 0
7 1 1 1 1
b a x y0
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 0
6 1 1 0 1
7 1 1 1 1
b a x y1
0 0 0 0 0
1 0 0 1 0
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1
5 1 0 1 0
6 1 1 0 0
7 1 1 1 0
b a x y2
0 0 0 0 0
1 0 0 1 0
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
1 0 0 1 1
4 1 0 0 1
5 1 0 1 1
7 1 1 1 1
b a x a
0 0 0 0 1
2 0 1 0 1
4 1 0 0 1
7 1 1 1 1
b a x y0
1 0 0 1 1
3 0 1 1 1
6 1 1 0 1
7 1 1 1 1
b a x y1
4 1 0 0 1
b a x y2
7 1 1 1 1
b a x b
1 0 0 1 1
4 1 0 0 1
5 1 0 1 1
7 1 1 1 1
b a x a
0 0 0 0 1
2 0 1 0 1
4 1 0 0 1
7 1 1 1 1
b a x y0
1 0 0 1 1
3 0 1 1 1
6 1 1 0 1
7 1 1 1 1
b a x y1
4 1 0 0 1
b a x y2
7 1 1 1 1
b a x b
Gruppe 1:
1 0 0 1 1
4 1 0 0 1
Gruppe 2:
5 1 0 1 1
Gruppe 3:
7 1 1 1 1
1:5 - 0 1
1:4 1 0 -
5:7 1 - 1
1 4 5 7
1:5 * *
1:4 * *
5:7 * *
1 4 5 7
1:4 * *
5:7 * *
DNF:
b <= (b and not a) or
(b and x);
KNF:
b <= not ((not b or a) and
(not b or not x))
b a x a
Gruppe 0:
0 0 0 0 1
Gruppe 1:
2 0 1 0 1
4 1 0 0 1
Gruppe 3:
7 1 1 1 1
0:2 0 - 1
0:4 - 0 0
7 1 1 1
0 2 4 7
0:2 * *
0:4 * *
7 *
DNF:
a <= (not b and x) or
(not a and not x) or
(b and a and x);
KNF:
a <= not((b or not x) and
(a or x) and
(not b or not a or not x));
b a x y0
Gruppe 1:
1 0 0 1 1
Gruppe 2:
3 0 1 1 1
6 1 1 0 1
Gruppe 3:
7 1 1 1 1
1:3 0 - 1
3:7 - 1 1
6:7 1 1 -
1 3 6 7
1:3 * *
3:7 * *
6:7 * *
1 3 6 7
1:3 * *
6:7 * *
DNF:
y0 <= (not b and x) or
(b and a)
KNF:
y0 <= not ((b or not x) and
(not b or not a))
b a x y1
4 1 0 0 1
DNF:
y1 <= (b and not a and not x)
KNF:
y2 <= (not (not b or a or x))
b a x y2
7 1 1 1 1
DNF:
y2 <= (b and a or x)
KNF:
y2 <= not(not b or not a or not x)
DNF:
b <= (b and not a) or
(b and x);
KNF:
b <= not ((not b or a) and
(not b or not x))
DNF:
a <= (not b and x) or
(not a and not x) or
(b and a and x);
KNF:
a <= not((b or not x) and
(a or x) and
(not b or not a or not x));
DNF:
y0 <= (not b and x) or
(b and a)
KNF:
y0 <= not ((b or not x) and
(not b or not a))
DNF:
y1 <= (b and not a and not x)
KNF:
y2 <= (not (not b
\section{ Re: Aufgaben und "Ubungen, Jetzt machen wir das in VHDL - das heisst, erst das "Ubergangsschaltnetz und das Ausgangsschaltnetz und wenn das da ist - dann kommt - das RS-Latch, das taktgesteuerte RS-Latch, das D-Latch, das D-Master-Slave-Slave-FF, das Register, dann sind wir fast so weit\\
Die Testbench hat keine echten werte - es hat nur ein CLK und ein x noch als Eingabe und mit dem CLK muss das Schaltwerk die Ausgabe machen.
\section{ Re: Aufgaben und "Ubungen, }
\begin{verbatim}
b a x b a y0 y1 y2
0 0 0 0 0 1 0 0 0
1 0 0 1 1 0 1 0 0
2 0 1 0 0 1 0 0 0
3 0 1 1 0 0 1 0 0
4 1 0 0 1 1 0 1 0
5 1 0 1 1 0 0 0 0
6 1 1 0 0 0 1 0 0
7 1 1 1 1 1 1 0 1
b a x b
0 0 0 0 0
1 0 0 1 1
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1
5 1 0 1 1
6 1 1 0 0
7 1 1 1 1
b a x a
0 0 0 0 1
1 0 0 1 0
2 0 1 0 1
3 0 1 1 0
4 1 0 0 1
5 1 0 1 0
6 1 1 0 0
7 1 1 1 1
b a x y0
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 0
6 1 1 0 1
7 1 1 1 1
b a x y1
0 0 0 0 0
1 0 0 1 0
2 0 1 0 0
3 0 1 1 0
4 1 0 0 1
5 1 0 1 0
6 1 1 0 0
7 1 1 1 0
b a x y2
0 0 0 0 0
1 0 0 1 0
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
1 0 0 1 1
4 1 0 0 1
5 1 0 1 1
7 1 1 1 1
b a x a
0 0 0 0 1
2 0 1 0 1
4 1 0 0 1
7 1 1 1 1
b a x y0
1 0 0 1 1
3 0 1 1 1
6 1 1 0 1
7 1 1 1 1
b a x y1
4 1 0 0 1
b a x y2
7 1 1 1 1
b a x b
1 0 0 1 1
4 1 0 0 1
5 1 0 1 1
7 1 1 1 1
b a x a
0 0 0 0 1
2 0 1 0 1
4 1 0 0 1
7 1 1 1 1
b a x y0
1 0 0 1 1
3 0 1 1 1
6 1 1 0 1
7 1 1 1 1
b a x y1
4 1 0 0 1
b a x y2
7 1 1 1 1
b a x b
Gruppe 1:
1 0 0 1 1
4 1 0 0 1
Gruppe 2:
5 1 0 1 1
Gruppe 3:
7 1 1 1 1
1:5 - 0 1
1:4 1 0 -
5:7 1 - 1
1 4 5 7
1:5 * *
1:4 * *
5:7 * *
1 4 5 7
1:4 * *
5:7 * *
DNF:
b <= (b and not a) or
(b and x);
KNF:
b <= not ((not b or a) and
(not b or not x))
b a x a
Gruppe 0:
0 0 0 0 1
Gruppe 1:
2 0 1 0 1
4 1 0 0 1
Gruppe 3:
7 1 1 1 1
0:2 0 - 1
0:4 - 0 0
7 1 1 1
0 2 4 7
0:2 * *
0:4 * *
7 *
DNF:
a <= (not b and x) or
(not a and not x) or
(b and a and x);
KNF:
a <= not((b or not x) and
(a or x) and
(not b or not a or not x));
b a x y0
Gruppe 1:
1 0 0 1 1
Gruppe 2:
3 0 1 1 1
6 1 1 0 1
Gruppe 3:
7 1 1 1 1
1:3 0 - 1
3:7 - 1 1
6:7 1 1 -
1 3 6 7
1:3 * *
3:7 * *
6:7 * *
1 3 6 7
1:3 * *
6:7 * *
DNF:
b <= (b and not a) or
(b and x);
KNF:
b <= not ((not b or a) and
(not b or not x));
DNF:
a <= (not b and x) or
(not a and not x) or
(b and a and x);
KNF:
a <= not((b or not x) and
(a or x) and
(not b or not a or not x));
DNF:
y0 <= (not b and x) or
(b and a);
KNF:
y0 <= not ((b or not x) and
(not b or not a));
b a x y1
4 1 0 0 1
DNF:
y1 <= (b and not a and not x);
KNF:
y2 <= (not (not b or a or x));
b a x y2
7 1 1 1 1
DNF:
y2 <= (b and a or x);
KNF:
y2 <= not(not b or not a or not x);
DNF:
b <= (b and not a) or
(b and x);
KNF:
b <= not ((not b or a) and
(not b or not x));
DNF:
a <= (not b and x) or
(not a and not x) or
(b and a and x);
KNF:
a <= not((b or not x) and
(a or x) and
(not b or not a or not x));
DNF:
y0 <= (not b and x) or
(b and a);
KNF:
y0 <= not ((b or not x) and
(not b or not a));
DNF:
y1 <= (b and not a and not x);
KNF:
y2 <= (not (not b or a or x));
-- den VHDL Code nur mit DNF
entity meinautomat0028ausgangschaltnetz is
port
(
a, b, x: in bit;
y0, y1, y2: out bit
);
end;
entity meinautomat0028uebergangsschaltnetz is
port
(
a, b: inout bit;
x: in bit
);
end;