# Design of Digital Circuits (S4) Synthesis and logic optimization

```Design of Digital Circuits (S4)
Chapter 2, Part 1
Synthesis and logic optimization
Section 2.1 Register transfer synthesis
to 2.3 Binary decision diagram
Prof. G. Kemnitz
Institute of Informatics, Technical University of Clausthal
May 14, 2012
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 1/135
RT synthesis
Register
Combinational circuits
Processing + sampling
Latches
Constraints
Entwurfsfehler
Zusammenfassungf
Aufgaben
Logikoptimierung
2.1 Umformungsregeln
2.2 Optimierungsziele
2.3 Konjunktionsmengen
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 1/135
2.4 KV-Diagramme
2.5 Quine und McCluskey
2.6 Aufgaben
3.1
3.2
3.3
3.4
BDD
Vereinfachungsregeln
Operationen mit ROBDDs
ROBDD ⇒ minimierte Schaltung
Aufgaben
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 2/135
Synthesis
Search for circuit with the same function. Problem timing:
can be solved only for run time tolerant circuits
(optimization, technology mapping etc. change timing)
no pre-specified delay ⇒ simulation model without delay
same function ⇒ same output values when the output
signals are valid
clock
w0
w1
v0
v1
simulation output with
with hold and delay times
compare window
simulation output
syntheses description
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 2/135
Synthesis descriptions are simplified simulation models:
without delay times (no after statements, no wait
statements etc.)
without check of validity and other plausibility tests (no
output of text messages, no pseudo value for invalid etc.).
After resolving hierarchy it consists of:
pre-designed circuits, which synthesis transfers unchanged
combinatorial processes with undelayed signal assignments
and
sampling processes with undelayed signal assignments and
without check of setup and input hold conditions.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 3/135
1. RT synthesis
RT synthesis
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 4/135
1. RT synthesis
RT synthesis as the first
synthesis step
register transfer synthesis
circuit generator
logic optimization
works similar as a compiler,
but extraction of a signal
technology mapping
instead of a control flow
geometrical design
resolving hierarchy⇒ circuit
structure out of predesigned subcircuit an processes
mapping the calculation flow within the process by a signal
flow of technology independent basic circuitry or
parametrized functional blocks
Circuit generators: produce optimized circuit descriptions
from a parametrized functional block; local optimization,
optional incl. technology mapping and geometrical design.
Logic optimization, technology mapping etc. later
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 5/135
1. RT synthesis
Mapping control flow ⇒ signal graph
is already without timing an ill posed problem:
for most imperative functional descriptions no circuit exists
with the same function
multiple ways to describe the same circuit
small changes in description allows new completely different
interpretations
Twist the objective:
How the description must look, so that the synthesis creates
a correct circuit?
How registers, combinatorial circuits, etc. have to be described,
so that the synthesis recognize them.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 6/135
1. RT synthesis
1. Register
Register
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 7/135
1. RT synthesis
1. Register
Description and extraction of registers
Simulation model (all ready simplified):
process(T)
begin
if RISING EDGE(T) then
if x’LAST EVENT>ts then --- check setup condition
y <= invalid after thr, x after tdr;
else
y <= invalid after thr;
end if;
end if;
end process;
further
no
no
no
simplifications for synthesis:
means to describe timing, validity, ...
check of setup and input hold conditions
text output (warnings, error messages).
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 8/135
1. RT synthesis
1. Register
--- Register template with initialisation
process(I, T)
tTyp
tTyp
begin
x
y
x
if I=’1’ then
¯
I/I/0
I
--- or if I=’0’ then
T /T̄
y <= initialization value;
active clock edge
falling edge
elsif RISING EDGE(T) then
rising edge
--- or elsif FALLING EDGE(T) then
initialization signal
y <= x;
low aktive
high active
end if;
end process;
--- without initialisation
process(T)
begin
if RISING EDGE(T) then
--- orr elsif FALLING EDGE(T) then
y <= x;
end if;
end process;
x
tTyp
tTyp
y
T /T̄
active clock edge
falling edge
rising edge
tTyp in binary signals convertable datatype (bit,
bitvector, number, ...)
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 9/135
1. RT synthesis
1. Register
Sample process ⇔ register
given are three sampling processes
signal a,b,c,d: STD LOGIC;
signal K,L,M: STD LOGIC VECTOR(2 downto 0);
no initialization; sampling with
the rising edge of a
process(a)
begin
if RISING EDGE(a) then
K(0) <= d;
K(1) <= K(0);
K(2) <= K(1);
end if;
end process;
Initialization with c = 1; sampling
with the falling edge of b
process(b, c)
begin
if c=’1’ then
L <= ”000”;
elsif FALLING EDGE(b)
then
L <= K;
end if;
end process;
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 10/135
1. RT synthesis
1. Register
Initialization with c = 1; sampling
with the raining edge of a
M <= ”010”;
elsif RISING EDGE(a)
then
M <= K;
end if;
end process;
process(a, c)
begin
if c=’1’ then
inputs, outputs and parameters of the described registers
data input signal
d
K(0)
K(1)
K
K
data output signal
K(0)
K(1)
K(2)
L
M
bit width
1
1
1
3
3
clock signal
a↑
a↑
a↑
b↓
a↑
initialization signal
–
–
–
c (H)
c (L)
initialization value
–
–
–
000
010
↑ – rising edge; ↓ – falling edge; H – high active; L – low active
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 11/135
1. RT synthesis
1. Register
Register transfer synthesis
extraction of the terminals and parameters of all described
registers
Forwarding the data to circuit generators; generation of the
registers
The designer
must stick to the description templates
may summarize all registers withe the same initialization
and sampling conditions in one sampling process
Advantage of less processes
less calculation effort for simulation
less time critical transitions between different clocked circuit
parts
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 12/135
1. RT synthesis
2. Combinational circuits
Combinational circuits
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 13/135
1. RT synthesis
2. Combinational circuits
Synthesis description of a combinational circuits
imperative behavioral model of a combinatorial circuit:
if one of the input signal switches, new calculation of the
output; no memory
Description template:
process with all input signals in the sensitivity list
store interim results in the calculation in variables (not
signals!)
no further processing of interim results from previous
wake-up dates
in each path of control a value must be assigned to each
output signal.
additional simplifications for synthesis: no delay, no check for
validity
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 14/135
1. RT synthesis
2. Combinational circuits
If synthesis finds a process which complies with all rules:
extract of the control flow
substitute operators by logic gates
produce case distinctions by multiplexers.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 15/135
1. RT synthesis
2. Combinational circuits
Circuits of basic gates
signal a, b, s, y: tBit;
y <= a and b
a
&
y
b
y <= a nand b
a
&
y
b
y <= a or b
a
≥1
y
b
y <= a nor b
a
≥1
y
b
y <= not a
a
y <= a xor b
a
=1
y
b
y <= a xnor b
a
=1
y
b
if s=1 then
y <= a;
else y <= b;
end if ;
a
b
s
1
0
y
(tBit: BIT, BOOLEAN or STD LOGIC; BOOLEAN: TRUE 7→ 1, FALSE 7→
0; using STD LOGIC the pseudo values for invalid etc. remains
unused)
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 16/135
1. RT synthesis
2. Combinational circuits
Description & extraction of gates
signal x: STD LOGIC VECTOR(4 downto 0);
signal y: STD LOGIC VECTOR(1 downto 0);
...
process(x)
variable v: STD LOGIC VECTOR(1 downto 0);
begin
A1: v(0):= x(0) and x(1);
A2: v(1):= v(0) nor x(3);
A1
v0
A3: y(0)<=(v(0) and
x0
A3
&
x(2)) or v(1);
&
x1
y0
≥1
A4: y(1)<=((not x(4)) x2
or x(3)) nand v(1);
A2
≥1
end process;
x3
v1 &
y1
A4
x4
≥1
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 17/135
1. RT synthesis
2. Combinational circuits
From case distinctions to multiplexers
if control flow branches by If or Case instructions
output or interim values has to be assign in each branch
If-Elsif becomes a multiplexer chain
signal a, b, c, p, q, y: STD LOGIC;
...
process(a, b, c, p, q)
begin
if
p=’1’ then y<=a;
elsif q=’1’ then y<=b;
else
y<=c;
end if;
end process;
a
b
c
q
1
0
1
0
y
p
instead of Else it is also possible to overwrite a default
value (even for signals):
y<=c;
if p=’1’ then y<=a; end if;
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 18/135
1. RT synthesis
2. Combinational circuits
Parametrized functional blocks
operators with bit vector operands
⇒ functional blocks with bit sizes as parameters
arithmetic operation and compare (>, ≥ etc.)
⇒ additional parameter: number representation
select statements with more than two cases
⇒ additional parameters: selection values for each data
input
register transfer synthesis:
extraction of functional blocks and its parameters
circuit generators:
building the circuits out of basic gates; optional incl.
technology mapping, ...
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 19/135
1. RT synthesis
2. Combinational circuits
Select statement ⇒ parametrized multiplexer
signal s: STD LOGIC VECTOR(1 downto 0);
signal x1,x2,x3,x4, y: STD LOGIC VECTOR(3 downto 0);
...
process(s, x1, x2, x3,x4)
4
begin
00
x1
4
case s is
x2
01
when ”00” => y <= x1;
4
10
x3
when ”01” => y <= x2;
4
when ”10” => y <= x3;
x4
11
when others => y <= x4;
2
s
end case;
end process;
4
y
parameters: data bit size and select values
last selection value must be others1
1
On one hand selection values such as 0X, XU are forbidden in
synthesis descriptions, on the other hand a case-statement has to take into
account the whole range of selection values.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 20/135
1. RT synthesis
2. Combinational circuits
Bit comparators
x1 x0
0
0
1
1
0
1
0
1
x0 = 0
TRUE (1)
FALSE (0)
x0
x0 6= 0
FALSE (0)
TRUE (1)
x0
x0 = 1
FALSE (0)
TRUE (1)
x0
x0 6= 1
TRUE (1)
FALSE (0)
x0
x1 = x0
x1 6= x0
TRUE (1)
FALSE (0)
FALSE (0)
TRUE (1)
FALSE (0)
TRUE (1)
TRUE (1)
FALSE (0)
x0
x1
x0
x1
==
=1
branch values in if-statements are generally produced by
comparisons
in synthesis the Boolean values false and true are
mapped to the value range {0, 1}
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 21/135
1. RT synthesis
2. Combinational circuits
Arithmetical operations (+, −, *) and >, ≥ etc.
only defined for number and bit vector types
the circuit to be generated depends on the number
representation (natural, whole numbers, floating point, ...)
types of bit vectors for number representation in this lecture:
--- for unsignd whole numbers
tUnsigned is array (NATURAL range <>) of STD LOGIC;
--- for signd whole numbers
tSigned is array (NATURAL range <>) of STD LOGIC;
defined together with the arithmetical, logical and compare
operations in the package Tuc.Numeric Synth
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 22/135
1. RT synthesis
2. Combinational circuits
Data flow symbols for compare operators
signal a, b: t[Un]signed(n-1 downto 0);
a
b
a
b
n
n
==
a
1 if a = b
0 else
n
n
/=
b
a
1 a 6= b
0 else
b
n
n
<
a
1 if a < b
0 else
n
n
<=
b
a
1 if a ≤ b
0 else
b
n
n
>
n
>=
parameters:
bit size n
data type (signed or unsigned whole numbers)
2
1 if a > b
0 else
n
1 if a ≥ b
0 else
2
Other number types will not be used for synthesis in this lecture.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 23/135
1. RT synthesis
2. Combinational circuits
Addition, subtraction and multiplication
signal a: T[Un]signed(n-1 downto 0);
signal b: T[Un]signed(m-1 downto 0);
constant c: T[Un]signed(m-1 downto 0);
a
b
a
n
+
m
n
+c
multiplier
subtractor
max(n, m)
a+b
max(n, m)
a+c
a
b
a
n
m
n
a
a−b
b
−c
max(n, m)
a−b
max(n, m)
a−c
a
b
a
n
n+m
*
m
n
∗c
n+m
a*b
a*c
sum and difference have the bit size of the larges operand
the bit size of a product is the sum of the bit sizes of the
operands
operations not listed here (division, power) are generally
realized by an operation sequence
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 24/135
1. RT synthesis
2. Combinational circuits
Special calculators with arithmetic operations
signal a, b: tUnsigned(2 downto 0);
signal y: tUnsigned(7 downto 0);
...
process(a, b)
variable v: tUnsigned(6 downto 0);
begin
A1: v:= a * "1010";
3
a
A2: y<= (’0’&v) + b;
end process;
0
∗ 10
7 8
b
3
+
8
y
size of the product: 3 × 4 ⇒ 7 bit
concatenation of a leading one extends first summand to 8
bits
size of the sum: max(3, 8) ⇒ 8 bit
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 25/135
1. RT synthesis
2. Combinational circuits
Circuit with adder, comparator, multiplexer and
gates
signal a, b, y: tUnsigned(3 downto 0);
signal e, f: STD LOGIC;
...
process(a, b, e, f)
begin
if (a>"0011") and (e or f) =’1’ then
y <= a+b;
4
a
else
4
b
y <= b;
end if;
end process;
0011
e
f
+
4
1
0
4
y
>
&
≥1
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 26/135
1. RT synthesis
2. Combinational circuits
One select statement, multiple multiplexers
case s is
when w1 w2 =>
when w3
=>
when w4
=>
end case;
v := velse ;
u := uelse ;
u := a;
u := b;
v := c;
v := d;
Mux2
Mux1
a
b
usonst
s
t1
w1 w2
t1
u
w3
t1 else
t1
{w1, w2, w3, ...}
c
d
vsonst
t2
t2
t2
w3
w4
else
t2
v
t1, t2 – any bit or bitvector type
assignment of a default value before the select statement
overwrite the default value for select values assigning a
different value
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 27/135
1. RT synthesis
2. Combinational circuits
Describing a truth table by a case statement
signal x: STD LOGIC VECTOR(3 downto 0);
signal y: STD LOGIC;
...
process(x)
begin
case x is
when "1000"|"0100"|"0010"|"0001"
=> y <= ’1’;
when others => y <= ’0’;
end case;
end process;
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
x3 x2 x1 x0 y
0
0
0
1
0 0
0 1
1 0
0 0
else
1
0
0
0
1
1
1
1
0
May 14, 2012 28/135
1. RT synthesis
3. Processing + sampling
Processing + sampling
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 29/135
1. RT synthesis
3. Processing + sampling
Combinatorial circuit and sampling register
Combining combinatorial circuitry with the subsequent register
in a sampling process reduces simulation effort; changes in
description starting from a pure combinatorial process:
clock instead all input signal in the sensitivity list
aligning signal assignments to the active clock edge
optional initialization (in addition initialization signal in the
sensitivity list etc.)
process(I, T)
if I=active then
y <= initial value;
elsif active clock edge of T then
output calculation of the processing function;
y <= assigning the processing result;
end if;
end process;
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 30/135
1. RT synthesis
3. Processing + sampling
Combinatorial circuit with output register
signal a, b, y: STD LOGIC VECTOR(4 downto 0);
signal T, e, f: STD LOGIC;
...
process(T)
begin
4
if RISING EDGE(T) then
4
a
if (a>"0011") and
+
1
4
b
(e or f) =’1’ then
0
y<= a+b;
>
else
0011
&
y<=b;
e ≥1
f
end if;
end if;
combinatorial
end process;
circuit
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
4
4
y
T
sampling
register
May 14, 2012 31/135
1. RT synthesis
3. Processing + sampling
Output register with conditional sampling
signal x, y: STD LOGIC VECTOR(n-1 downto 0);
signal T, E: STD LOGIC;
...
n
n
process(T)
0 n
y
n 1
begin
x
if RISING EDGE(T) then
E
T
if E=’1’ then
n
n
y<=x;
x
x
y
end if;
E
E
end if;
end process;
T
registers may store values for multiple clocks; describing
conditional sampling:
multiplexer between input and actual value
register extension by an enable input
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 32/135
1. RT synthesis
3. Processing + sampling
Sampled signal may processed further
signal y: tUnsigned(3 downto 0);
signal T, I, V, R: STD LOGIC;
...
process(T, I)
4
+1
begin
4
1 4
if I=’1’ then
x
−1
1 4 0
y<="0000";
4
I
0
elsif RISING EDGE(T) then
if V=’1’
then y<=y+"1";
R
V I
T
elsif R=’1’ then y<=y-"1";
end if;
end if;
end process;
4
y
in combinatorial circuits a feedback of the form
y<=y+”1” is not allowed
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 33/135
1. RT synthesis
3. Processing + sampling
Up/down counter with enable input
variable tmp: tUnsigned(3 downto 0);
...
if V=’1’ then
tmp:=y+"1";
else
tmp:=y-"1";
end if;
if V=’1’ or R=’1’ then
y<=tmp;
end if;
+1
−1
V
R
4
4
0
1
≥1
4
I
4
x
E
I
y
T
different descriptions of the same function may synthesised
to different circuits
way for optimization
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 34/135
1. RT synthesis
3. Processing + sampling
Variables as data storage in sampling processes
signal T, x, y: STD LOGIC;
...
process(T)
variable z: STD LOGIC VECTOR(2 downto 0);
begin
if RISING EDGE(T) then
z0
x
y <= z(2); z(2):=z(1);
z(1):=z(0); z(0):=x;
T
end if;
end process;
z1
z2
y
variables, which are read before assignment in the control
flow, store data for one clock period; behavior of a register
variables are only readable and writable within a process /
can can not be used for terminal signals
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 35/135
1. RT synthesis
3. Processing + sampling
Behavior of conditional variable assignments
signal T, a, b, c, y0, y1: STD LOGIC;
...
process(T)
variable v
variable v: STD LOGIC;
statement A3 variable v
begin
statement
if RISING EDGE(T) then
A1 und A2
0
A1: y0 <= v xor a;
c
1
if b=’1’ then
=1
y0
A2:
v:= c;
b
end if;
a
=1
y1
A3: y1 <= v xor a;
T
end if;
end process;
A1: v is assigned at least one clock earlier (register
output)
A3: v may be assigne in the same clock (register input)
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 36/135
1. RT synthesis
3. Processing + sampling
Variables that store data may represent in a synthesized circuit
different circuit points.
The description of registers by variables
is for that error-prone
should be used deliberately.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 37/135
1. RT synthesis
4. Latches
Latches
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 38/135
1. RT synthesis
4. Latches
Latches, stage triggered memory element
signal E: STD LOGIC; signal x, y: tTyp;
tTyp
tTyp
...
x
x L
y
process(x, E)
variable tE:DELAY LENGTH;
E
E
begin
x 10
if E=’1’ then
> ts
> ts
y <= invalid after th, x after td;
1
y
0
end if;
td
td
--- check setup condition
th
th
if RISING EDGE(E) then
E 10
tE:=now;
elsif Falling EDGE(E) and (NOW-tE<ts
td Verzögerungszeit
or x’LAST EVENT<ts) then
th Haltezeit
ts Vorhaltezeit
y <= invalid;
E Freigabeeingang
end if;
tTyp Bit- oder Bitvekend process;
tortyp
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 39/135
1. RT synthesis
4. Latches
einfachere Schaltung als Register; genutzt zur
Aufwandsminimierung
das Freigabesignal ist zeit- und glitch-empfindlich
Die Synthesebeschreibungsschablone ist das stark vereinfachte
Simulationsmodell:
ohne Zeitangaben
ohne Kontrolle der Vor- und Nachhaltebedingungen
ohne Berechnung der Gültigkeitsfenster
process(x, E)
begin
if E=’1’ then
y <= x;
end if;
end process;
Auch wenn die Kontrollen fehlen, müssen die Vor- und
Nachhaltebedingungen erfüllt sein.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 40/135
1. RT synthesis
4. Latches
Die Tücken einer Latch-Schaltung am Beispiel
signal x1, x2, y:
std logic vector(n-1 downto 0);
...
process(x1, x2)
begin
if x1=x2 then
y <= x1;
end if;
end process;
x1
x2
x1
x2
x
==
w1
y
L
E
w3
w2
w4
w3
td
th
E
1
0
F1
F2
F1: möglich Invalidierung des gespeicherten Wertes
F2: möglicher Übernahmefehler bei Übereinstimmung
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 41/135
1. RT synthesis
4. Latches
Blockspeicher mit Latches
signal E: std logic;
x
signal a: std logic vector(1 downto 0);
signal x, s, q, y0, y1, y2, y3, s:
s0
s1
std logic vector(3 downto 0);
Dec s2
a
...
s3
Dec:process(a)
begin
case a is
E
when "00" => s <= "0001";
00
a 11
when "01" => s <= "0010";
1
s
0
0
when "10" => s <= "0100";
when others => s <= "1000"; s1 10
E 10
end case;
q0 10
end process;
1
q0
x
E
y0
&
q1
x
E
y1
&
q2
x
E
y2
&
q3
x
E
y3
&
10
01
11
q1 0
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 42/135
1. RT synthesis
Und:process(s, E)
x
begin
if E=’1’ then q <= s;
s0
else q <= "0000";
s1
end if;
Dec s2
a
s3
end process;
Latch0:process(x, q(0))
begin
if q(0)=’1’ then y0<=x; end if; E
end process;
4. Latches
q0
x
E
y0
&
q1
x
E
y1
&
q2
x
E
y2
&
q3
x
E
y3
&
...
Latch-Schaltungen sind nur mit einer bestimmten Struktur und
Ansteuerung laufzeitrobust
UND-Verknüpfung mit E unmittelbar vor den
Freigabeeingängen der Latches
E muss inaktiv sein, wenn die Signale si invalid sind
laufzeitkritische Teile als vorentworfene Schaltungen
einbinden
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 43/135
1. RT synthesis
4. Latches
Latch zur Variablennachbildung in
Abtastprozessen
signal T, a, b, c, y: std logic;
...
process(T)
variable v: std logic;
0
begin
c 1
if rising edge(T) then
b
if b=’1’ then
T
v:= c;
end if;
c
y <= v xor a;
x
b
E
end if;
end process;
a
a
=1
y
=1
y
T
bei einem Latch ist der Übernahmewert sofort, nicht erst im
Folgetakt am Ausgang verfügbar; erspart Multiplexer
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 44/135
1. RT synthesis
5. Constraints
Constraints
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 45/135
1. RT synthesis
5. Constraints
Constraints
Zusatzinformationen für die Synthese;
Festlegungen/Empfehlungen für
die Struktur und die Technologieabbildung (z.B. keep,
um die Wegoptimierung bestimmter Signale und
Teilschaltungen zu verbieten)
die Platzierung (z.B. Zuordnung zwischen Anschlusssignalen
und Schaltkreispins)
maximale Verzögerungszeiten (Taktfrequenz oder -periode,
Eingabe-Register-Verzögerung etc.)
Für Praktikum (ise/Versuchsboard mit Xilinx-FPGA):
Beschreibung der Pin-Zuordnung und der Taktfrequenz in der
ucf-Datei (user constraints file):
<loc> ..
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 46/135
1. RT synthesis
6. Entwurfsfehler
Entwurfsfehler
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 47/135
1. RT synthesis
6. Entwurfsfehler
Entwurfsfehler und Fehlervermeidung
Synthesebeschreibungen haben ihre typischen Entwurfsfehler,
darunter auch einige die nur das Zeitverhalten und/oder die
Zuverlässigkeit der synthetisierten Schaltung beeinträchtigen und
dadurch schwer zu finden sind.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 48/135
1. RT synthesis
6. Entwurfsfehler
Speicherverhalten in kombinatorischen Prozessen
signal x1, x2, sz, y, yF1, yF2, yF3:
korrekt
process (x1, x2);
variable z: STD LOGIC ;
begin
z := x1 and x2;
y <= not z;
end process;
process (x1, x2);
begin
sz <= x1 and x2;
yF2 <= not sz;
end process;
F2
STD LOGIC
;
process (x1);
variable z: STD LOGIC ;
begin
z := x1 and x2;
yF1 <= not zb;
end process;
process (x1, x2);
variable z: STD LOGIC ;
begin
yF3 <= not z;
z := x1 and x2;
end process; warte
F1
F3
x1
x2
&
x1
1
0
x2
1
0
y
1
0
yF1
1
0
yF2
1
0
yF3
1
0
z
y
Fehlverhalten
Soll-Verhalten
F1: fehlendes Signal in der Weckliste; F2: Signal statt Variable
als Zwischenspeicher; F3: Variablenwert vor der Zuweisung
ausgewertet
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 49/135
1. RT synthesis
6. Entwurfsfehler
Fallunterscheidung mit fehlender Zuweisung
signal x1, x2, x3 y: std logic vector(3 downto 0);
signal s: std logic vector(1 downto 0);
...
process(s, x1, x2, x3)
4
x1
00
begin
4
4
01
x
2
case s is
4
x L
x3
10
when "00" => y <= x1;
2
when "01" => y <= x2;
s
&
E
when "10" => y <= x3;
when others => null;
4
x1
00
--- Korrektur: y <= x3 statt null
4
01
x2
end case;
4
x
sonst
3
end process;
2
s
y
4
y
auch wenn ein Auswahlwert nicht auftreten kann, ist in einer
Multiplexerbeschreibung ein Wert zuzuweisen
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 50/135
1. RT synthesis
6. Entwurfsfehler
Fehlersymptome:
nicht synthetisierbar oder unerwarteter Latch-Einbau
Fehlervermeidung
Verwendung der Kurzform nebenläufige Signalzuweisung,
im Beispiel aus UND und Inverter:
y <= not (x1 and x2);
später für beliebig komplexe kombinatorische Schaltungen:
signal x: tEingabe;
signal y: tAusgabe;
function f(x: tEingabe) return tAusgabe;
...
y <= invalid after th, f(x), after td ;
Synthesebeschreibung ohne grau unterlegte Teile
nebenläufige Signalzuweisungen und Funktionen können kein
Speicherverhalten beschreiben / keinen der skizzierten
Fehler enthalten
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 51/135
1. RT synthesis
6. Entwurfsfehler
Bösartige Timing-Probleme
Symptome:
zulässige Taktfrequenz laut Synthsereport zu niedrig
messbare Zeitprobleme an den Anschlusssignalen
Änderung der Beschreibung zeigt keine Wirkung
Fehlerwirkung nicht mit Simulation nachstellbar / nicht
reproduzierbar
Ursache sind in der Regel fehlende oder falsche Zeit-Constraints
Constraint-Doku lesen und Constraints richtig beschreiben
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 52/135
1. RT synthesis
6. Entwurfsfehler
Gutartige Timing-Probleme
Symptome:
Zusatzverzögerungen um ganze Taktperioden
Fehlerwirkung mit Simulation nachstellbar
typische Ursachen
Zwischenergebnisse in Abtastprozessen in Signalen statt
Variablen weitergereicht
Variablenwerte vor der Wertzuweisung ausgewertet
Denkfehler im Algorithmus und in der Ablaufplanung
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 53/135
1. RT synthesis
6. Entwurfsfehler
Nicht synthetisierbar
ungeeignete Funktion, z.B. kein gerichteter Berechnungsfluss
Gesamtschaltung
x1
x2
x3
G1
=1
G2
≥1
G3
≥1
x1 = 0
y
a)
x2
x3
x3
1
0
0
G2
≥1
G3
≥1
x1 = 1, x2 = x3 = 0
y
G1 G2 G3
y
b)
y
x2
0 rücksetzen
1
setzen
0 speichern
td
y
1
0
2 · td
t
c)
Speicher- oder Schwingungsverhalten bei der Simulation
ungeeignete Beschreibungsstruktur
Wenn das simulierte Verhalten ok. ist, ausweichen auf
bewährte Beschreibungsschablonen (Doku des
Syntheseprogramms lesen)
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 54/135
1. RT synthesis
7. Zusammenfassungf
Zusammenfassungf
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 55/135
1. RT synthesis
7. Zusammenfassungf
Zusammenfassung
Eine Synthesebeschreibung ist ein vereinfachtes
Simulationsmodell ohne Verzögerungen und ohne Berechnung der
Signalgültigkeit etc.. Zuordnungen:
Signalzuweisung bei aktiver Taktflanke ⇒ Register
logische, arithmetische und Vergleichsoperatoren ⇒ Gatter,
Rechenwerke und Komparatoren
Fallunterscheidungen und Auswahlanweisungen ⇒
Multiplexer
zustandsgesteuerte bedingte Zuweisungen ⇒ Latches,
laufzeitempfindlich
Zeit- und Strukturanforderungen werden durch Constraints
beschrieben. Bei einer Synthesebeschreibung kommt es nicht nur
auf die Funktion, sondern auch auf die Beschränkung auf
bewährte Beschreibungsschablonen an.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 56/135
1. RT synthesis
8. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 57/135
1. RT synthesis
8. Aufgaben
Aufgabe 2.1: Registerextraktion
signal K,L,M,N,P,Q: std logic vector(7 downto 0);
signal c: std logic vector(1 downto 0);
process(c(0))
begin
if rising edge(c(0)) then
L <= K;
end if;
end process;
process(c(1))
begin
if falling edge(c(1)) then
P<=L; Q<=P;
end if;
end process;
process(c(1))
begin
if rising edge(c(1)) then
N<=M; M<=L;
end if;
end process;
Anschlusssignale,
Übernahmebedingungen
etc. aller beschriebenen
Register suchen
Signalflussplan zeichnen
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 58/135
1. RT synthesis
8. Aufgaben
Aufgabe 2.2: Beschreibung als synthesefähiger
kombinatorischer Prozess
a
b
s0
4
&
4
≥1
4
0
1
4
4
4
0
1
y
4
4
4
0
1
4
+
s1
4
STD LOGIC
tUnsigned(3 downto 0)
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 59/135
1. RT synthesis
8. Aufgaben
Aufgabe 2.3: Beschreibung als synthesefähiger
Abtastprozess
signal y: tSigned(7 downto 0);
signal R, E, I, T: std logic;
+1
−1
8
8
Initialisierungswert
8
0
1
R
0
1
8
E
I
8
x
I
y
T̄
alles null
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 60/135
1. RT synthesis
8. Aufgaben
Aufgabe 2.4: Synthesefähige Beschreibung mit
möglichst wenig Prozessen
signal T, I, x, x del, y: std logic;
x
Reg1
x’
G
Reg2
==
I
x
I
y
T
Initialwert
0
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 61/135
1. RT synthesis
8. Aufgaben
Aufgabe 2.5: Synthesefähige Beschreibung des
Automaten
y
fa (x, s)
x
2
fs (x, s)
s
d)
2
+
x
I
2
I
s
T
s+ = fs (x, s) y = fa (x, s)
s x:
00
01
10
11
00
01
10
11
00
01
00
01
10
11
10
11
00
01
10
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
00
01
10
11
00
01
00
01
10
11
10
11
00
01
10
May 14, 2012 62/135
1. RT synthesis
8. Aufgaben
Aufgabe 2.6: Extraktion des Signalflussplans
signal x, tmp, acc, y: std logic vector(3 downto 0);
signal op: std logic vector(1 downto 0);
signal T: std logic;
...
process(T)
begin
if rising edge(T) then
case op is
when "00" => acc <= x;
when "01" => acc <= acc + tmp;
when "10" => acc <= acc - tmp;
when others => null;
end case;
end if;
tmp <= x;
end process;
y <= acc;
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 63/135
2. Logikoptimierung
Logikoptimierung
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 64/135
2. Logikoptimierung
Definition 1
Eine n-stellige logische Funktion ist eine Abbildung eines
n-Bit-Vektors aus freien binären Variablen auf eine abhängige
binäre Variable:
f : Bn → B
mit B = {0, 1}
bzw.
y = f (xn−1 , xn−2 , . . . , x0 ) mit y, xi ∈ {0, 1}
(y – abhängige Variable; xi freie Variablen).
Jede logische Funktion kann durch praktisch unbegrenzt
viele logische Ausdrücke und Schaltungen nachgebildet
werden.
Die Register-Transfer-Synthese extrahiert logische
Funktionen in Form von kombinatorischen
Teilschaltungsbeschreibungen.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 65/135
2. Logikoptimierung
Anschließende Vereinfachung:
Vereinfachung logischer Ausdrücke mit Hilfe der
Schaltalgebra (dieser Abschnitt)
Darstellung der logischen Ausdrücke zur Vereinfachung als
binäre Entscheidungsdiagramme (nächster Abschnitt).
Bereits behandelte Vereinfachungstechniken:
Konstantenelimination
beseitigt alle Operationen, bei denen freie Variablen mit
konstanten Werten belegt sind; reduziert die Stelligkeit und
die Anzahl der Operationen
Verschmelzung
fasst gleiche Berechnungsschritte mit gleichen Operanden
zusammen und reduziert so die Anzahl der Operationen
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 66/135
2. Logikoptimierung
1. Umformungsregeln
Umformungsregeln
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 67/135
2. Logikoptimierung
1. Umformungsregeln
Umformungsregeln für logische Ausdrücke
Umformungsregel
¯=x
x̄
Bezeichnung
doppelte Negation
x∨1 = 1
x ∨ x̄ = 1
x∧0 = 0
Eliminationsgesetze
x ∧ x̄ = 0
x1 ∨ (x1 ∧ x2 ) = x1
x1 ∧ (x1 ∨ x2 ) = x1
x̄1 ∨ x̄2 = x1 ∧ x2
x̄1 ∧ x̄2 = x1 ∨ x2
Absorbtionsgesetze
de morgansche Regeln
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 68/135
2. Logikoptimierung
1. Umformungsregeln
Umformungsregel
Bezeichnung
x1 ∧ x2 = x2 ∧ x1
x1 ∨ x2 = x2 ∨ x1
Kommutativgesetze
(x1 ∨ x2 ) ∨ x3 =
x1 ∨ (x2 ∨ x3 )
(x1 ∧ x2 ) ∧ x3 =
x1 ∧ (x2 ∧ x3 )
Assoziativgesetze
x1 ∧ (x2 ∨ x3 ) =
(x1 ∧ x2 ) ∨ (x1 ∧ x3 )
x1 ∨ (x2 ∧ x3 ) =
(x1 ∨ x2 ) ∧ (x1 ∨ x3 )
Distributivgesetze
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 69/135
2. Logikoptimierung
1. Umformungsregeln
Beweis der Umformungsregeln
Aufstellen und Vergleich der Wertetabellen.
Für die de morganschen Regeln gilt z.B.:
x1
x2
x̄1 ∨ x̄2
x1 ∧ x2
x̄1 ∧ x̄2
x1 ∨ x2
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 70/135
2. Logikoptimierung
1. Umformungsregeln
Anwendung der Umformungsregeln zur
Schaltungsvereinfachung
mehrfache Negationen im Signalfluss heben sich paarweise
auf
x1
x2
x3
&
z
x1
x2
x3
y
z = x1 ∧ x2 ∧ x3
y = z̄
&
y
y = x1 ∧ x2 ∧ x3
= x1 ∧ x2 ∧ x3
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 71/135
2. Logikoptimierung
1. Umformungsregeln
doppelte Anwendung der Eliminationsgesetze
x1
x2
y
&
1
y
y = (x1 ∧ x̄1 ) ∧ x2 = 0 ∧ x2 = 0 = 1
| {z }
| {z }
0
0
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 72/135
2. Logikoptimierung
1. Umformungsregeln
Anwendung des Absorbtionsgesetzes
x1
&
x2
x3
&
≥1
y
x1
x2
&
y
gegeben Funktion: y = (x1 ∧ x2 ) ∧ (x2 ∨ x3 )
Assoziativgesetz: y = x1 ∧ (x2 ∧ (x2 ∨ x3 ))
Absorbtionsgesetz: y = x1 ∧ x2
Suchproblem: in gegebenen Ausdrücken
Anwendungsmöglichkeiten für die Gesetze finden
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 73/135
2. Logikoptimierung
1. Umformungsregeln
Terme nutzen die Grundoperationen UND, ODER und
Negation
technische Gatter haben oft eine invertierte Ausgabe (siehe
später Konstruktion von Logikgattern aus Transistoren)
Umformung der UND-ODER-Form in die
NAND-NAND-Form
x1
x2
&
x3
x4
&
≥1
y
x1
x2
&
x3
x4
&
&
gegebene Funktion:
y = (x1 ∧ x2 ) ∨ (x3 ∧ x4 )
doppelte Negation:
y = (x1 ∧ x2 ) ∨ (x3 ∧ x4 )
y
de morgansche Regel: y = x1 ∧ x2 ∧ x3 ∧ x4
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 74/135
2. Logikoptimierung
1. Umformungsregeln
Umformung der ODER-UND-Form in die NOR-NOR-Form
x1
x2
≥1
x3
x4
≥1
&
y
x1
x2
≥1
x3
x4
≥1
gegebene Funktion:
y = (x1 ∨ x2 ) ∧ (x3 ∨ x4 )
doppelte Negation:
y = (x1 ∨ x2 ) ∧ (x3 ∨ x4 )
≥1
y
de morgansche Regel: y = x1 ∨ x2 ∨ x3 ∨ x4
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 75/135
2. Logikoptimierung
2. Optimierungsziele
Optimierungsziele
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 76/135
2. Logikoptimierung
2. Optimierungsziele
Optimierungsziele
minimale Gatteranzahl
minimaler Stromverbrauch
minimale Chipfläche
minimale Verzögerung etc.
Regel zur Geschwindigkeitsoptimierung: Bäume statt Ketten
tdOp
tdOp tdOp tdOp tdOp tdOp tdOp
x0
x1
y
x2
x3
x4
x5
x6
tdKette = n · tdOp
Pfad der längsten Verzögerung
a)
x0
x1
x2
x3
x4
x5
x6
tdOp
tdOp
y
b)
tdBaum ≥ log2 (n) · tdOp
◦ assoziative Operation (Zusammenfassungsreihenfolge vertauschbar)
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 77/135
2. Logikoptimierung
2. Optimierungsziele
oft unterscheiden sich die Lösungen für minimalen Aufwand und
max. Geschwindigkeit etc.
minimale
Verzögerung
andere optimierte Lösungen minimaler
Aufwand
max
Aufwand
min
min
max
Signalverzögerung
a)
x0
x1
y0
=1
=1
x2
x3
x0
x1
x2
x3
y1
=1
y2
b)
=1
y0
y1
=1
y2
=1
=1
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
c)
May 14, 2012 78/135
2. Logikoptimierung
3. Konjunktionsmengen
Konjunktionsmengen
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 79/135
2. Logikoptimierung
3. Konjunktionsmengen
Logikminimierung mit Konjunktionsmengen
klassische Verfahren
KV-Diagramm: graphisches Verfahren
Quine-McCluskey: gleicher Algorithmus als Suchproblem
Konjunktion: Term, der direkte oder invertierte
Eingabevariablen UND-verknüpft, z.B.:
x3 ∧ x̄2 ∧ x1 ∧ x̄0 = x3 x̄2 x1 x̄0 (K1010 )
{z
}
|
verkürzte Schreibweisen
Minterm: Konjunktion, die alle Eingabevariablen entweder in
direkter oder in negierter Form enthält.
Satz: Jede logische Funktion lässt sich durch eine Menge
von Konjunktionen darstellen, die ODER-verknüpft
werden.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 80/135
2. Logikoptimierung
3. Konjunktionsmengen
Beweis: Jede logische Funktion lässt sich durch eine
Wertetabelle darstellen. Jeder Zeile einer
Wertetabelle ist ein Minterm zugeordnet, der genau
dann Eins ist, wenn die Zeile ausgewählt ist.
Die Funktion ist entweder die
ODER-Verknüpfung der Minterme, für die y = 1 ist
xn−1
x2 x1 x0
···
UND-Matrix
(1 aus 2n - Decoder)
2n vollständige Konjunktionen (Produktterme)
···
ODER-Matrix
(programmierbar)
y0 y1 y2
···
ym−1
negierte ODER-Verknüpfung der Minterme, für die y = 0 ist.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 81/135
2. Logikoptimierung
x2 x1 x0
3. Konjunktionsmengen
Konjunktion
y
x2 x1 x0
Konjunktion
y
0
0
0
x̄2 x̄1 x̄0 (K000 )
0
1
0
0
x2 x̄1 x̄0 (K100 )
1
0
0
1
x̄2 x̄1 x0 (K001 )
1
1
0
1
x2 x̄1 x0 (K101 )
1
0
1
0
x̄2 x1 x̄0 (K010 )
0
1
1
0
x2 x1 x̄0 (K110 )
1
0
1
1
x̄2 x1 x0 (K011 )
0
1
1
1
x2 x1 x0 (K111 )
0
Entwicklung nach den Einsen: {K001 , K100 , K101 , K110 } ⇒
y = x̄2 x̄1 x0 ∨ x2 x̄1 x̄0 ∨ x2 x̄1 x0 ∨ x2 x1 x̄0
Entwicklung nach den Nullen: {K000 , K010 , K011 , K111 } ⇒
y = x̄2 x̄1 x̄0 ∨ x̄2 x1 x̄0 ∨ x̄2 x1 x0 ∨ x2 x1 x0
= x̄2 x̄1 x̄0 ∧ x̄2 x1 x̄0 ∧ x̄2 x1 x0 ∧ x2 x1 x0
= (x2 ∨ x1 ∨ x0 ) (x2 ∨ x̄1 ∨ x0 ) (x2 ∨ x̄1 ∨ x̄0 ) (x̄2 ∨ x̄1 ∨ x̄0 )
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 82/135
2. Logikoptimierung
3. Konjunktionsmengen
Vereinfachungsgrundlage
Satz: Zwei Konjunktionen, die sich nur in der
Invertierung einer Variablen unterscheiden, können
zu einer Konjunktion mit einer Variablen weniger
zusammengefasst werden.
Schritt
ODER-Verknüpfung
Konjunktionsmenge
1
. . . ∨ x2 x̄1 x̄0 ∨ x2 x̄1 x0 ∨ . . .
{. . . , K100 , K101 , . . .}
2
. . . ∨ x2 x̄1 (x̄0 ∨ x0 ) ∨ . . .
3
. . . ∨ x2 x̄1 ∨ . . .
{. . . , K10∗ , . . .}
nur Abweichung in Stelle Eins
Wert von x1 don’t care, in VHDL ’-’
eine Konjunktion weniger
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 83/135
2. Logikoptimierung
4. KV-Diagramme
KV-Diagramme
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 84/135
2. Logikoptimierung
4. KV-Diagramme
Aufbau eines KV-Diagramms
KV Karnaugh und Veitch
x2
1
3
3
3
K0011 2 K0111 3 K1111 2 K1011
3
K0010 2 K0110 3 K1110 2 K1010
3
0
3
1
K0001 2 K0101 3 K1101 2 K1001
1
3
1
3
0
x0
1
K0000 2 K0100 3 K1100 2 K1000
1
0
1
0
1
0
0
1
von hieraus an der
Tafel entwickeln
1
0
0
1
x1
1
x3
Tabellarische Anordnung der Funktionswerte so, dass sich
die Konjunktionen der benachbarten Stellen genau in einer
Negation unterscheiden.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 85/135
2. Logikoptimierung
4. KV-Diagramme
Zusammenfassen der ausgewählten Konjunktionen zu
Blöcken der Kantenlänge eins, zwei oder vier:
x2
K000-
1
1
3
3
K0001 2 K0101 3 K1101 2 K1001
3
3
K0011 2 K0111 3 K1111 2 K1011
3
K0010 2 K0110 3 K1110 2 K1010
3
0
1
1
0
3
K001-
1
K0000 2 K0100 3 K1100 2 K1000
3
0
x0
K-101
0
1
1
K-11-
0
0
1
K10--
1
0
0
1
x1
1
y=0
y=1
x3
Minimierte Konjunktionsmenge der Einsen
{K000- , K-11- , K10-- } ⇒ y = x̄3 x̄2 x̄1 ∨ x2 x1 ∨ x3 x̄2
Minimierte Konjunktionsmenge der Nullen:
{K001- , K-10- } ⇒ y = x̄3 x̄2 x1 ∨ x2 x̄1
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 86/135
2. Logikoptimierung
4. KV-Diagramme
Praktische Arbeit mit KV-Diagrammen
Geordnete Tabelle mit Funktionswerten
Optimierungsziel: möglichst große und möglichst wenige
Blöcke
Blöcke dürfen sich überlagern
x2
x0
a
d
0
0
1
1
1
1b 0
1
0
0
1d 0
0
0
c
0
0
x1
a: x̄3 x̄1 x0
b: x2 x̄1 x0
c: x̄3 x2 x0
d: x3 x2 x̄0
y = x̄3 x̄1 x0 ∨ x3 x̄1 x0 ∨ x̄3 x2 x0 ∨ x3 x2 x̄0
x3
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 87/135
2. Logikoptimierung
4. KV-Diagramme
zirkulare Blockbildung über den Rand hinaus und die
Entwicklung nach den Nullen sind auch zulässig
x2
c
a
x0
a
0
1
b
a
b
c
0
a
1
1
1
0
1
0
0
0
1
c a
0
d
c
e
0
0
0
a
x3
a
b
a
b
x1
a: x̄2 x̄0
b: x̄2 x1
c: x̄3 x̄0
d: x3 x̄2
e: x3 x1 x0
y = x̄2 x̄0 ∨ x̄2 x1 ∨ x̄3 x̄0 ∨ x3 x̄2 ∨ x3 x1 x0
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 88/135
2. Logikoptimierung
4. KV-Diagramme
KV-Diagramme mit don’t-care-Feldern
don’t-care-Felder kennzeichnen Eingabemöglichkeiten, die
im normalen Betrieb nicht auftreten
ihr Wert wird so festgelegt, dass sich möglichst wenige und
möglichst große Blöcke bilden lassen
x2
d
1
1
x0
1
e
a
1
1
0
1
-
0
0
-
b
-
0
c
1
0
-
d
x3
x1
a: x̄1 x̄0
b: x2 x1 x0
c: x3 x1 x0
d: x̄3 x̄2 x̄0
e: x̄3 x̄2 x̄1
y = x̄1 x̄0 ∨ x2 x1 x0 ∨ x3 x1 x0
∨x̄3 x̄2 x̄0 ∨ x̄3 x̄2 x̄1
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 89/135
2. Logikoptimierung
4. KV-Diagramme
KV-Diagramme für zwei- und dreistellige
Funktionen
Verringerung der Anzahl der Nachbarfelder, die sich in einer
Negation unterscheiden auf drei bzw. zwei
Halbierung der Höhe und/oder der Breite
x2
x1
1
K000
1
K010
2
K110
1
K100
2
K000
2
K100
2
K001
1
K011
2
K111
1
K101
2
K001
2
K101
K011
2
K111
K010
2
K110
0
x0
0
x1
0
0
x2
0
x0
K00
1
K10
K01
1
K11
0
0
1
1
0
1
x0
1
2
0
x1
1
0
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 90/135
2. Logikoptimierung
4. KV-Diagramme
KV-Diagramme für sechsstellige Funktionen
x4 = 0
x5
a
x4
0
0
x0
x1
1
b
a
c
1
1
0
1
1
0
0
0
0
x2
0
x1
0
1
d
0
x0
d
1
0
b
1
1
a
x4 = 1
0
0
a
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
x3
x0
0
a: x̄5 x2 x̄1
1 0
x1
b
b: x̄4 x̄3 x̄2 x1
1 0
c: x5 x3 x̄1
x2
d: x3 x̄2 x1 x̄0
y = x̄5 x2 x̄1 ∨ x̄4 x̄3 x̄2 x1 ∨ x5 x3 x̄1 ∨ x3 x̄2 x1 x̄0
d
1
c
0
d
x3
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
x2
c
d
1
1
1
1
1
0
0
d
x5 = 0
x5 = 1
1
x3
May 14, 2012 91/135
2. Logikoptimierung
4. KV-Diagramme
Schaltungen mit mehreren Ausgängen
y0
y5
y6
y4
y1
x 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 sonst
y2
y
beliebig
y3
y0
y3
x2
x2
-b 1
- 1
1
1
1
1
1
1
-
1
0
- 1
-c 1
1
1
1
0a 1
-b 1
- 1
1
1
-
-
1
1
-
-
1
1
-
-
1
0
-f -
1
1
-
-
1
0
-d -
0e 1
-
-
1
1
-
1
0
1
0
y4
x0
y2
x2
0a 1
1
x0
y1
x2
y5
y6
0
0
0a 1
-
1
0
-b
- 0
1
1
0j 1
-
0
0
-
-g
0
0
-
-i
1
0
-f -
1
1
-
-
0h 1
-
-
1
1
-
x3
x3
-
x1
x3
1
1
0
1
1
-
x1
x3
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
a := x̄3 x̄2 x̄1 x0
b := x2 x̄1 x̄0
c := x2 x̄1 x0
d := x2 x1 x̄0
e := x̄2 x1 x̄0
...
May 14, 2012 92/135
2. Logikoptimierung
4. KV-Diagramme
signal x: std logic vector(3 downto 0);
signal y: std logic vector(6 downto 0);
...
process(x)
variable a,b,c,d,e,f,g,h,i,j: std logic;
begin
a := not x(3) and not x(2) and not x(1) and
b := x(2) and not x(1) and not x(0);
c := x(2) and not x(1) and x(0);
d := x(2) and x(1) and not x(0);
e := not x(2) and x(1) and not x(0);
...
y1
y(0)<=not(a or b); y0 x2
x2
y(1)<=not(c or d);
1 1 - 1
1 0 -b 1
y(2)<=not e;
1 0 -c 1
0a 1 - 1
...
x0
1 1 - 1 1 - end process;
1
1
-
x3
1
0
-d x3
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
x(0);
y2
1
x2
1
1
1
1
-
1
1
-
-
0e 1
-
-
1
x1
x3
May 14, 2012 93/135
2. Logikoptimierung
4. KV-Diagramme
Beispiel für einen Automatenentwurf
a)
H/K
H/L
V/L
A
B
c)
R/K
R/N
V/K
R/L
V/M
R/M
D
H/N
C
V/N
b) Symbol V, A, K H, B, L R, C, M
Code
00
01
10
H/M
s+ = fs (x, s)
s x 00(V)
00(A) 01(B)
01(B) 10(C)
10(C) 11(D)
11(D) 00(A)
V, H, R symbolische Eingabewerte
A, B, C, D symbolische Zustände
K, L, M, N symbolische Ausgabewerte
01(H)
00(A)
01(B)
10(C)
11(D)
10(R)
11(D)
00(A)
01(B)
10(C)
D, N
11
y = fa (x, s)
00(V) 01(H) 10(R)
01(L) 00(K) 11(N)
10(M) 01(L) 00(K)
11(N) 10(M) 01(L)
00(K) 11(N) 10(M)
x Eingabesignal (2 Bit)
s, s+ Zustand, Folgezustand (je 2 Bit)
y Ausgabesignal
Zustandscodierung ist so gewählt, dass y = s+ gilt
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 94/135
2. Logikoptimierung
4. KV-Diagramme
Aufstellen der KV-Diagramme
s+
1 = y1
s+
0 = y0
a
V
H
0
1
c
x0
R
a
1
0
x1
0
0
-
-
1
b
0
d
a
1
0
0
1
1
1
0
1
1
0
-
-
-
-
-
-
1
0
0
1
b
1
e
0
a
s0
s1
A B D C
a
s0
s1
A B D C
y0 = s+
= s̄0 x̄0 ∨ s0 x0
0
= s̄1 s0 x̄1 x̄0 ∨ s̄1 s̄0 x1 ∨ s1 s0 x1 ∨ s̄1 x1 x̄0 ∨ s1 s̄0 x̄1 ∨ s1 x0
y1 = s+
1
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 95/135
2. Logikoptimierung
4. KV-Diagramme
Vom KV-Diagramm zur Schaltung
Auswahl der zu verwendenden Gatter und Speicherzellen
(Technologieabbildung)
Beispielbausteinsystem: Inverter + NAND-Gatter mit
unterschiedlicher Eingangsanzahl + 1-Bit-Register mit
Rücksetzeingang
Gleichungsumformung mit de morganscher Regel
y0 = s+
= s̄0 x̄0 ∨ s0 x0 = (s̄0 x̄0 ) (s0 x0 )
0
y1 = s+
= s̄1 s0 x̄1 x̄0 ∨ s̄1 s̄0 x1 ∨ s1 s0 x1 ∨ s̄1 x1 x̄0 ∨ s1 s̄0 x̄1 ∨ s1 x0
1
= (s̄1 s0 x̄1 x̄0 ) (s̄1 s̄0 x1 ) (s1 s0 x1 ) (s1 s̄0 x̄1 ) (s1 x0 )
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 96/135
2. Logikoptimierung
4. KV-Diagramme
y0 = s+
= (s̄0 x̄0 ) (s0 x0 )
0
y1 = s+
= (s̄1 s0 x̄1 x̄0 ) (s̄1 s̄0 x1 ) (s1 s0 x1 ) (s1 s̄0 x̄1 ) (s1 x0 )
1
s1 s̄1 s0 s̄0 x1 x̄1 x0 x̄0
&
x0
&
y0
&
x
R
s0
&
x1
&
&
&
x
R
&
I
T
y1
s1
&
⇒Web-Projekt:
P2.2/Test VRZ.vhdl
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 97/135
2. Logikoptimierung
5. Quine und McCluskey
Quine und McCluskey
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 98/135
2. Logikoptimierung
5. Quine und McCluskey
Optimierung nach Quine & McCluskey – Prinzip
Alternatives tabellenbasiertes Minimierungsverfahren, das
gleichfalls auf der Zusammenfassung von Konjunktionen, die sich
nur in einer Negation unterscheiden, basiert:
{. . . , K100 , K101 , . . .} ⇒ {. . . , K10∗ , . . .}
Zusammenstellen der Menge aller Minterme, für die der
Funktionswert Eins (bzw. Null) ist ⇒ quinesche Tabelle
nullter Ordnung
Suche in der quineschen Tabelle nullter Ordnung alle
Möglichkeiten zur Bildung einer Konjunktion mit einer
don’t-care-Stelle und abhaken der erfassten Konjunktionen
⇒ quinesche Tabelle erster Ordnung
etc.
Ausdrucksminimierung mit Hilfe der Abdeckungstabelle der
Primterme
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 99/135
2. Logikoptimierung
5. Quine und McCluskey
Aufstellen der quineschen Tabellen
Visualisierung der Blockbildungsmöglichkeiten
mit einem KV-Diagramm
x2
1
x0
0
4 12 8
1
5 6 13 9
7
5
3
4
7 15 11
2
3
2
6 14 10
x1
1
x3
mögliche Zweierblöcke
möglicher Vierererblock
√
abgedeckte Konjunktionen
Pi Primterm
quinesche Tabelle
nullte Ordnung
x3 x2 x1 x0
2
8
3
5
10
12
7
13
14
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
√
√
√
√
√
√
√
√
√
quinesche Tabellen
erste und zweite Ordnung
x3 x2 x1 x0
2, 3
2, 10
8, 10
8, 12
3, 7
5, 7
5, 13
10, 14
12, 13
12, 14
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
-
0
0
0
1
1
1
0
0
P2
P
√3
√
P4
P5
P
√6
P
√7
x3 x2 x1 x0
8, 10, 12, 14
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
1 - - 0 P1
May 14, 2012 100/135
2. Logikoptimierung
5. Quine und McCluskey
die Konjunktionen sind in den quineschen Tabellen nach der
Anzahl der Einsen im zugehörigen Bitvektor geordnet
Zusammenfassung nur möglich, wenn sich die Anzahl der
Einsen genau um Eins unterscheidet.
Abhaken der Konjunktionen mit
Zusammenfassungsmöglichkeit
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 101/135
2. Logikoptimierung
5. Quine und McCluskey
Auswahl der Primterme
Aufstellen der Abdeckungstabelle
Suche einer minimalen Abdeckungsmenge
x2
2
1
x0
0
4 12 8
1
5 6 13 9
7
5
3
4
7 15 11
2
3
2
6 14 10
x1
1
x3
genutzte Primterme
3
5
7
8 10 12 13 14
P1
P2
P3
P4
P5
P6
P7
ungenutzte Primterme
Lösungsmenge: {P1 , P2 , P5 , P7 }:
y = x3 x̄0 ∨ x̄3 x̄2 x1 ∨ x3 x2 x0 ∨ x3 x2 x̄1
| {z } | {z } | {z } | {z }
P1
P2
P5
P7
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 102/135
2. Logikoptimierung
5. Quine und McCluskey
Die quineschen Tabellen wachsen im ungünstigen Fall
exponentiell mit der Stelligkeit der Funktion.
Praktische Programme arbeiten bei großen Funktionen mit
Heuristiken und mit unvollständigen quineschen Tabellen.
Zusammenfassung des Gesamtabschnitts:
die Vereinfachung logischer Ausdrücke erfolgt mit Hilfe von
Umformungsregeln
Die Optimierungsziele – geringer Schaltungsaufwand,
geringe Verzögerung etc. – widersprechen sich zum Teil.
Die beiden klassischen systematischen
Optimierungsverfahren – die Optimierung mit
KV-Diagrammen und das Verfahren von Quine und
McCluskey – basieren auf der Vereinfachung von
Konjunktionsmengen.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 103/135
2. Logikoptimierung
6. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 104/135
2. Logikoptimierung
6. Aufgaben
Aufgabe 2.7: Schaltungsumformung
Wandeln Sie die Schaltung in eine Schaltung aus NAND-Gattern
und Invertern um.
x0
x1
x2
&
&
≥1
y
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 105/135
2. Logikoptimierung
6. Aufgaben
Aufgabe 2.8: Schaltungsminimierung mit
KV-Diagrammen
Lesen Sie aus den KV-Diagrammen minimierte logische
Ausdrücke ab.
x2
x2
x0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
x3
x0
x1
1
1
1
1
1
0
1
0
-
-
-
-
0
0
1
1
a)
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
x3
x1
b)
May 14, 2012 106/135
2. Logikoptimierung
6. Aufgaben
Aufgabe 2.9: Fragen zu KV-Diagrammen
1
Warum dürfen sich die Rechtecke, mit denen in
KV-Diagrammen die Einsen3 abgedeckt werden, gegenseitig
überlagern?
2
In welchen Mintermen überlagern sich die Rechtecke im
KV-Diagramm für den Ausdruck:
x̄0 ∨ x2 x1 ∨ x3 x2
3
Bei einer Entwicklung nach
0
die Nullen.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 107/135
2. Logikoptimierung
6. Aufgaben
Aufgabe 2.10: 7-Segment-Decoder
Ergänzen Sie die fehlenden Zuweisungen an die Variablen f bis j
und die Signale y3 bis y6 in der VHDL-Beschreibung des
7-Segment-Decoders Seite 94.
signal x: std logic vector(3 downto 0);
signal y: std logic vector(6 downto 0);
...
process(x)
variable a,b,c,d,e,f,g,h,i,j: std logic;
begin
--- auf den Folien ab Seite 94
a := ... e:= ...; y(0)<= ... y(2)<= ...;
--- Aufgabe: Ergänzen der zuzuweisenden Ausdrücke
an
f:= ... j:= ...;
y(3)<= ... y(6)<=...;
end process;
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 108/135
2. Logikoptimierung
6. Aufgaben
y0
y5
y6
y4
y1
x 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 sonst
y2
y
beliebig
y3
y0
1
1
0a 1
1
1
1
-
-
1
1
-
-
0
y4
x0
y2
x2
-b 1
- 1
1
x0
y1
x2
1
1
0
- 1
-c 1
1
1
1
-
-
1
1
0
-d -
y5
1
0
1
0
-b 1
- 0
0
0
0
-
1
1
-
y3
x2
1
1
1
-
1
0a 1
-b 1
- 1
1
-
-
1
0
-f -
0e 1
-
-
1
1
-
1
x1
a := x̄3 x̄2 x̄1 x0
b := x2 x̄1 x̄0
c := x2 x̄1 x0
d := x2 x1 x̄0
e := x̄2 x1 x̄0
...
y6
1
x2
0
-
x1
x3
1
0
0a 1
-
1
0j 1
-
-g
0
0
-
-i
1
0
-f -
-
0h 1
-
-
1
1
-
1
1
-
x3
x3
x3
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 109/135
2. Logikoptimierung
6. Aufgaben
Aufgabe 2.11: Automatenentwurf
1/0
011
s+
2
1/0
000
0/1 001
0/0
010
1/0
s2
s0
y
s+
0
0/0
1/0
s1
1/0
100
x/y
s+
1
0/1
1/0
s2 s1 s0
s2
s0
0/1
111
s1
0/0
x
x
Kompletter Handentwurf einer funktionsgleichen Schaltung
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 110/135
2. Logikoptimierung
6. Aufgaben
KV-Diagramme ausfüllen (die Folgezustände und die
Ausgabe der redundanten Zustände seien beliebig)
minimierte Ausdrücke bestimmen (legt die Werte der
Don’t-Care-Stellen fest)
redundante Zustände und deren abgehende Kanten in den
Ablaufgraphen einzeichnen (hängt von den Wertzuordnung
an die Don’t-Care-Stellen ab)
Schaltung zeichnen; zu verwendende Bausteine: Inverter,
UND- und ODER-Gatter mit variabler Eingangsanzahl,
1-Bit-Register mit Rücksetzeingang
Dateneingang
Rücksetzeingang
Takteingang
x
R
Datenausgang
invertierter Datenausgang
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 111/135
2. Logikoptimierung
6. Aufgaben
Aufgabe 2.12: Schaltungsminimierung nach Quine
und McCluskey
Gegeben ist die Menge Minterme, für die der Funktionswert
1 ist:
K ∈ {100000, 100100, 101010, 101110, 111110, 110000,
011000, 101011, 101111, 101000, 101001}
Aufstellen der quineschen Tabellen
Aufstellen der Tabelle der Primterme
Suche der minimalen Abdeckungsmenge
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 112/135
3. BDD
BDD
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 113/135
3. BDD
Binäres Entscheidungsdiagramm
(BDD – binary decision diagram)
Zusammensetzung einer Funktion aus binären
Entscheidungen
Rekursive Definition: Eine binäre Entscheidung ist eine
Konstante oder eine Entscheidung zwischen binären
Entscheidungen
binäre Entscheidung
Konstante
0
1
Entscheidung anhand
einer binären Variablen
0
xi
1
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 114/135
3. BDD
Wertetabelle als binäres Entscheidungsdiagramm
x1 x0
y
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
x1
x0
1
1
0
1
1
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
x1
1
0
May 14, 2012 115/135
3. BDD
Binären Entscheidungsdiagramm als Programm
if x0=’0’ then
if x1=’0’ then
y<=’0’;
else
y<=’1’;
end if;
else
if x1=’0’ then
y<=’1’;
else
y<=’0’;
end if;
end if;
0
0
0
x1
x0
1
1
0
1
1
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
x1
1
0
May 14, 2012 116/135
3. BDD
1. Vereinfachungsregeln
Vereinfachungsregeln
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 117/135
3. BDD
1. Vereinfachungsregeln
Unreduziertes binäres Entscheidungsdiagramm
Abkürzung: BDD (binary decision diagram)
x0
0
x1
0
0
1
x2
1
1
1
0
0
0
x2
x2
0
1
0
1
0
x1
1
1
0
1
1
x1
1
0
Baum
direkt ablesbar aus der Wertetabelle
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 118/135
3. BDD
1. Vereinfachungsregeln
Vereinfachungsregeln
Verschmelzung gleicher Teilgraphen
Löschen von Knoten mit zwei gleichen Nachfolgern
Verschmelzung gleicher Teilbäume
0
xi
1
0
xj
1
0
xi
1 0
xj
1
≡
Knotenelimination
0
xi
1
Offensichtliche Optimierungsvoraussetzung: gleiche
Abfragereihenfolge auf allen Entscheidungswegen
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 119/135
3. BDD
1. Vereinfachungsregeln
Geordnetes binäres Entscheidungsdiagramm
Gleiche Abfragereihenfolge auf allen Entscheidungswegen.
Abkürzung:
OBDD (ordered binary decision diagram)
x0
0
x1
0
0
1
x2
1
1
1
0
0
0
x2
x1
0
1
0
1
0
x2
1
1
0
1
1
x2
1
0
Bezeichnung für ein vereinfachtes binäres Entscheidungsdiagr.:
ROBDD (reduced ordered binary decision diagram)
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 120/135
3. BDD
1. Vereinfachungsregeln
Vereinfachung am Beispiel
unterste
Ebene
x1
0
0
Υ1
x2
x0
0
1
Υ2
1
0
nächste
Ebene
1
x1
0
x2
Υ2
x2
1 0
Υ1 Υ2
1
Υ1
x2
Υ1
Υ3
1
Υ2
Ergebnis
0
unterschiedliche Teilgraphen:
Υ1 :
Υ2 :
1
0
Υ3 :
0
Υ1
x2
Υ4 :
1
Υ2
0
Υ2
x0
1
x1 1 1 x1
0
0
1
0
0
x2
1
Υ1
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
Υ4
x0
1
x1 1 1 x1
0
0
x2 1 1 x2
0
0
1
0
May 14, 2012 121/135
3. BDD
2. Operationen mit ROBDDs
Operationen mit ROBDDs
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 122/135
3. BDD
2. Operationen mit ROBDDs
Zweistellige Operationen mit ROBDD
für zwei beliebige Teilbäume, bei denen im obersten Knoten
dieselbe Variable ausgewertet wird, verschiebt sich die
Operation eine Entscheidungsebene tiefer
0
Υ1
xi
1
Υ2
xi
⋄
0
1
Υ3
Υ4
0
xi
Υ1 ⋄ Υ3
1
Υ2 ⋄ Υ4
⋄ beliebige zweistellige binäre Operation
in einem ROBDD erfolgen auf allen Wegen die
Entscheidungen in derselben Reihenfolge
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 123/135
3. BDD
2. Operationen mit ROBDDs
fehlende Entscheidungsknoten sind wie Entscheidungsknoten
mit gleichen Nachfolgern zu behandeln
0
Υ1
xi
1
Υ2
xi
⋄
0
1
Υ3
0
xi
Υ1 ⋄ Υ3
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
1
Υ2 ⋄ Υ3
May 14, 2012 124/135
ODER-Verknüpfung
x1 ∨ x0
0
x0
1
0
1
∨
0
x1
0
Ausführung der
Operation auf der
untersten Ebene
1
1
x0
0
Operation ein Entscheidungsebene tiefer
0 ∨ 0
x1
0
Operation zwei Entscheidungsebenen tiefer
x0
0
0
0 ∨ 0
x1
x0
0
1
0 ∨ 1
1
1
1
0
1 ∨ 0
x1
0
1
1
x1
0
1
0
1
1
1
0
1 ∨ 0
1
1 ∨ 1
0
0
x1
1
1
Vereinfachung
x0
0
x1
x1
1
1
1
1
Verknüpfung
(x1 ∨ x2 ) ∧ x̄3
0
x2
1
x3
0
1
Operation drei Entscheidungsebenen tiefer
0 ∧ 1
x3
1
0 ∧ 0
1
1
0
x2
1 ∧ 0
1
0
1
x2
x3
x3
1
0
0
1 ∧ 1
x3
0
1
1
0
1
0
Vereinfachung
x1
0
1
1
1
x3
0
0
x1
0
1
x2
0
1
1
x1
0
x1
0
0
0
x3
1
Operation zwei Entscheidungsebenen tiefer
0
0
∧
1
0
0 ∧
Ausführung der
Operation auf der
untersten Ebene
x1
0
1
x2
1
1 ∧ 0
0
1
1
0
x3
0
1
3. BDD
3. ROBDD ⇒ minimierte Schaltung
ROBDD ⇒ minimierte Schaltung
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 127/135
3. BDD
3. ROBDD ⇒ minimierte Schaltung
Entscheidungsknoten als Signalflussumschalter
Entscheidungsknoten ⇒ binärer Umschalter im Datenfluss
(Multiplexer); 3-stellige logische Funktion
x1
y
0
x1
x1
s
1
x2
x2
0
1
y
s
0
1a 1
0
0
s
0
1b 1
a: x1 s̄
b: x2 s
y = x1 s̄ ∨ x2 s
x2
minimiert mit einem KV-Diagramm:
y = x1 s̄ ∨ x2 s
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 128/135
3. BDD
3. ROBDD ⇒ minimierte Schaltung
eine konstante Eingabe ⇒ 2-stellige logische Funktion
x1 = 0 : y = (0 ∧ s̄) ∨ x2 s = x2 s
x1 = 1 : y = (1 ∧ s̄) ∨ x2 s = s̄ ∨ x2 s = s̄ ∨ x2
x2 = 0 : y = x1 s̄ ∨ (0 ∧ s) = x1 s̄
x2 = 1 : y = x1 s̄ ∨ (1 ∧ s) = x1 s̄ ∨ s = x1 ∨ s
zwei konstante Eingaben ⇒ 1-stellige logische Funktion
x1 = 0; x2 = 1 : y = (0 ∧ s̄) ∨ (1 ∧ s) = s
x1 = 1; x2 = 0 : y = (1 ∧ s̄) ∨ (0 ∧ s) = s̄
0
x2
s
x2
s
0
1
&
y
y
x1
1
s
x1
s
0
1
0
y
···
≥1
y
1
0
1
1
y
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
0
1
y
s
s
s
0
y
s
y
May 14, 2012 129/135
3. BDD
3. ROBDD ⇒ minimierte Schaltung
Entscheidungsdiagramm als Signalflussplan
(k1)
(k2)
0
(k2)
x0
1
(k3)
x1 1 1 x1
0
0
(k4)
(k5)
x2 1 1 x2
0
0
0
1
0
1
(k5)
x̄2
(k1)
(k3)
0
1
y
0
1
(k4)
x2
x0
x1
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 130/135
3. BDD
3. ROBDD ⇒ minimierte Schaltung
Abfragereihenfolge und Schaltungsaufwand
Zielfunktion: y = (x1 ∨ x0 ) ∧ x̄2
Abfragereihenfolge: x0 -x1 -x2
y
x0
0
1
x1
0
x2
1
≥1
x0
&
&
1
1
0
0
x2
x1
x2
&
0
1
x0
0
1
x2
&
&
x1
Abfragereihenfolge: x2 -x1 -x0
y
y
x1
0
0
x0
0
1
x2
≥1
x0
1
1
x1
Abfragereihenfolge x0 − x1 − x2 : 1 Multiplexer, 1 UND, 1
Inverter
Abfragereihenfolge x2 − x1 − x0 : 1 ODER, 1 UND, 1 Inverter
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 131/135
3. BDD
3. ROBDD ⇒ minimierte Schaltung
ein ROBDD mit einer vorgegebenen Abfragereihenfolge ist
eine eindeutige Darstellung für eine logische Funktion
eine n-stellige logische Funktion lässt sich (nur) durch
(n − 1)! verschiedene ROBDDs darstellen (mit Ausdrücken
ist die Anzahl der Darstellungsmöglichkeiten unbegrenzt)
Lösungsraum nicht auf UND-ODER-/ODER-UND-Struktur
beschränkt
Optimierung durch Variation der Abfragereihenfolge; oft
gute Optimierungsergebnisse
Ausnutzung der Eindeutigkeit der Darstellung für den Test
auf Gleichheit von logischen Funktionen, z.B. einer Ist- und
einer Soll-Funktion, ohne die Schaltungen mit allen
Eingabevariationen simulieren zu müssen
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 132/135
3. BDD
4. Aufgaben
Aufgaben
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 133/135
3. BDD
4. Aufgaben
Aufgabe 2.13: VHDL-Beschreibung ⇒
Wertetabelle ⇒ OBDD ⇒ ROBDD ⇒ Schaltung
signal a, b, c, y: std logic;
...
y <= a xor b xor c;
Stellen Sie die Wertetabelle für die Schaltung auf.
Entwickeln Sie aus der Wertetabelle das unreduzierte OBDD
für die Abfragereihenfolge a-b-c.
Entwickeln Sie mit Hilfe der Vereinfachungsregeln –
Verschmelzung und Knotenelimination – das zugehörige
ROBDD.
Entwickeln Sie aus dem ROBDD eine optimierte Schaltung.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 134/135
3. BDD
4. Aufgaben
Aufgabe 2.14: ROBDD ⇒ Wertetabelle, Schaltung
0
x1
0
x0
1
0
0
1
x2 1
1
Stellen Sie die Wertetabelle auf.
Bilden Sie das Entscheidungsdiagramm durch einen
Datenflussplan nach.
Prof. G. Kemnitz · Institute of Informatics, Technical University of Clausthal
May 14, 2012 135/135
```