Hardware Reference
In-Depth Information
(Wert zehn) multipliziert. An das Zwischenergebnis wird eine führende »0«
konkateniert, um es auf acht Bit zu verlängern. Anschließend wird der zweite
3-Bit-Operand addiert. Die 8-Bit-Summe wird an das Ausgabesignal zugewie-
sen. In der extrahierten Schaltung wird die Multiplikation mit der Konstanten
durch einen Multiplizierer, die Konkatenation durch eine Zusammenführung
mit einem Einzelbit und die Addition durch einen Addierer nachgebildet.
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" ;
A2: y <= ( '0' & v) + b;
end process;
0
3
7
10 3
8
a
8
+
y
b
Web-Prolekt:P2.1/SynthRW1.vhdl
Abb. 2.11. Beschreibung eines Spezialrechenwerks mit arithmetischen Operationen
Das Beispiel in Abb. 2.12 beschreibt eine Schaltung mit einer arithme-
tischen Operation, einer Vergleichsoperation, einer Fallunterscheidung und
logischen Operationen. Wenn der Wert des 4-Bit-Vektors
größer 3 (binär
»0011«) und eines der binären Signale e oder f »1« ist, wird dem Ausga-
besignal
a
zugewiesen.
Die Register-Transfer-Synthese extrahiert die Teilschaltungen für die beiden
Auswahlalternativen, einen Addierer für die Summe von
y
die Summe von
a
und
b
und sonst der Wert von
b
a
und
b
und eine Ver-
bindung für »nur
«. Dann extrahiert sie die Schaltung für die Bildung des
Auswahlwertes, einen Vergleicher von
b
mit »3« und die logische Verknüpfung
des Vergleichsergebnisses mit den bitorientierten Signalen e und f. Die Fall-
a
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;
else
y <= b;
end if;
end process;
4
a
b
4
+
1
4
4
y
0
a
b a>b
0011
&
e f
1
Web-Projekt:P2.1/SynthRW2.vhdl
Abb. 2.12. Beschreibung einer Schaltung mit einem Addierer, einem Vergleicher,
logischen Verknüpfungen und einem Multiplexer
Search WWH ::




Custom Search