Hardware Reference
In-Depth Information
Lösung zu Aufgabe 2.3
Die Zähloperationen benötigen das Package »Tuc.Numeric_Synth«. Die Ad-
dition und die Subtraktion der Konstanten eins werden mit dem »+«- und
den »«-Operator, die Multiplexer durch zwei Fallunterscheidungen und das
Register durch eine Signalzuweisung im Abtastprozess beschrieben. Im Fall
E = 1 wird nichts an
und sonst für R = 0 der Werty+ 1 und für R = 1
der Werty1 zugewiesen. Die vorzeichenbehaftete Konstante mit dem Wert
eins ist, wie man bei der Simulation bemerken wird, nicht der 1-Bit-Vektor
»1«, sondern der 2-Bit-Vektor »01«. Da am Register der negierte Takt T
angeschlossen ist, muss die Übernahme mit der fallenden Taktflanke erfolgen.
y
signal
y: tSigned
(
7
downto
0
);
signal
R, E, I, T:std_logic;
...
process
(T, I)
begin
if
I=
'1'
then
y <=
"00000000"
;
elsif
falling_edge(T)
then
if
E=
'1'
then
if
R=
'1'
then
y <= y-
"01"
;
else
y <= y+
"01"
;
end if
;
end if
;
end if
;
end process
;
)
WEB-Projekt:P2.1/AfgSynthVRZ.vhdl
Lösung zu Aufgabe 2.4
Die beiden Register »Reg1« und »Reg2« sollten nicht zu einem Prozess zusam-
mengefasst werden, weil sie nicht gemeinsam initialisiert werden. Das Gatter
»G« lässt sich mit als Teil des Abtastprozesses von »Reg2« beschreiben.
signal
T, I, x, x_del, y:
std_logic;
...
Reg1:
process
(T)
begin
if
rising_edge(T)
then
x_del <= x;
end if
;
end process
;
Reg2:
process
(T, I)
begin
if
I=
'1'
then
y <=
'0'
;
elsif
rising_edge(T)
then
y <= y
xnor
x_del;
end if
;
end process
;
)
WEB-Projekt:P2.1/AfgSeriParit.vhdl
Lösung zu Aufgabe 2.5
Die Übergangsfunktion ist im Beispiel gleich der Ausgabefunktion. Die ein-
fachste Beschreibung ist ein kombinatorischer Prozess für die Berechnung des
Folgezustands, seine nebenläufige Zuweisung an das Ausgabesignal und seine
Abtastung in einem Abtastprozess. Für die Nachbildung einer Tabellenfunk-
tion empfiehlt sich eine Auswahlanweisung mit je einem Auswahlfall für jeden
Ausgabewert: