Hardware Reference
In-Depth Information
6.3 VHDL im Detail
6.3.1 Imperative Beschreibungsmittel
Lösung zu Aufgabe 3.1
A1: Nicht zulässig. Addition einer Variablen vom Typ real mit einer ganz-
zahligen Konstante.
A2: Zulässig, Wert false.
A3: Nicht zulässig. Vergleich einer Variablen vom Typ real mit einer ganz-
zahligen Konstanten.
A4: Zulässig. Zuerst wird der Wert von r mit dem ganzzahligen Wert von i
potenziert und dann mit 0,5 multipliziert. Das an r zugewiesene Ergebnis
ist 32.0 und hat den Typ real.
Lösung zu Aufgabe 3.2
Für den Anweisungsteil genügt eine Fallunterscheidung, in der für jeden Einga-
bewert der Bitvektorwert für das darzustellende Zeichen zurückgegeben wird:
function seg7(x:std_logic_vector( 2 downto 0 )) return
std_logic_vector is
begin
case x is
when "000" => return "0111111" ;
when "001" => return "1110011" ;
when "010" => return "0111110" ;
when "011" => return "1110001" ;
when others => return "0000000" ;
end case ;
end function ;
)
WEB-Projekt:P3.1/Lsg_pack.vhdl
Lösung zu Aufgabe 3.3
Die Funktion benötigt eine lokale Zählvariable mit dem Rückgabetyp na-
tural und dem Anfangswert »0«, die in einer Schleife über den gesamten
Indexbereich des Bitvektors, wenn das Bit »1« ist, um eins hochgezählt wird:
function count1(x:std_logic_vector) return natural is
variable i:natural:= 0 ;
begin
for idx in x'range loop
if x(idx)= '1' then
i := i+ 1 ;
end if ;
end loop ;
return i;
end function ;
)
WEB-Projekt:P3.1/Lsg_pack.vhdl
 
Search WWH ::




Custom Search