Hardware Reference
In-Depth Information
variable idx2:natural;
begin
for idx in x'range loop
if x(idx)= '1' then z(idx2) := ( 0 => '1' , others => '0' );
else z(idx2) := ( others => '0' ); end if ; idx2 := idx2+ 1 ;
end loop ;
for idx in 0 to xl-2 loop
z(idx+xl) := z( 2 *idx)+z( 2 *idx+ 1 );
end loop ;
return z(z'high);
end function ;
)WEB-Projekt:P3.4/AfgCount1_pack.vhdl
c) Datenflussgraphen für N = 7:
Kettenstrukturzu BaumstrukturzurAufgabenteilb
Aufgabenteila
z 0
z 1
x 0
x 1
x 2
x 3
x 4
x 5
x 6
z 7
z 10
x 0
x 1
x 2
x 3
2
2
z 2
2 z 12
z 8
y
2
z 3
3
z 11
2
3
z 4
z 9
3
z 5
3
2
dreiBit
3
z 6
x 4
x 5
x 6
x i
z i lokaleVariable
R¨uckgabewert
Eingabewerte
3
3
einBit
y
2
zweiBit
y
Die erforderlichen Bitbreiten der Zwischenergebnisse resultieren aus der
Regel, dass 2 N - das ist die Anzahl der darstellbaren Werte - größer oder
gleich der Anzahl der aufsummierten Bits sein muss.
Lösung zu Aufgabe 3.15
Die Suchmethode wird durch eine Schleife simuliert, in der mit der kleinsten
Adresse beginnend die Inhalte aller Speicherplätze nacheinander mit dem ge-
suchten Wert verglichen werden. Bei der ersten Übereinstimmung erfolgt ein
Rücksprung mit der aktuellen Adresse und hit = 1. Wenn das Schleifenende
erreicht wird, erfolgt der Rücksprung mit hit = 0 und dem Adresswert null:
function Suche(Mem: tMem; x: tDaten) return tSuchergebnis is
begin
for idx in Mem'low to Mem'high loop
if Mem(idx)=x then
return (hit=> '1' , adr=>to_tUnsigned(idx, tAdr'length));
end if ;
end loop ;
return (hit=> '0' , adr=>( others => '0' );
end function ;
 
Search WWH ::




Custom Search