Unterlagen zu Versuch 2
Unterlagen zu Versuch 2
Unterlagen zu Versuch 2
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Praktikum <strong>zu</strong> RgS 2 <strong>Versuch</strong>2: VHDL-VERHALTENSBESCHREIBUNG<br />
Im VHDL Modell wollen wir nun <strong>zu</strong>r Multiplikation auf einen Bitvektor für den Operanden übergehen.<br />
Dies wurde uns oben bereits im C-Programm etwas näher gebracht. Den Bitzähler n für die gesetzen<br />
Bits wollen wir <strong>zu</strong>nächst als Integer-Typ belassen. Unser Modell ist also so noch nicht vollständig synthetisierbar!<br />
Der Test des niedrigstwertigen Bits im Datenwort mit dem Wert 1 zeigt hier die Bitfauflösung<br />
mit dem Bitvektor (d and "00000001"). Interessant und wichtig für die weiteren Betrachtungen ist die<br />
Schiebeoperation, die hier durch die Zuweisung d := ’0’ & d(7 downto 1); erreicht wird. Das ist nur<br />
<strong>zu</strong> verstehen, wenn man weiß, dass ein Bitvektor eine Zeichenkette ist und der &-Operator Zeichen aneinander<br />
kettet. Hier wird also die neue Zeichenkette d gebildet durch die ’0’, an die das verschobene d<br />
gekettet wird!<br />
entity numbits is<br />
port( inp :in bit_vector(7 downto 0);<br />
num :out integer);<br />
end numbits;<br />
architecture behavior of numbits is<br />
begin<br />
count: process(inp)<br />
variable d : bit _vector(7 downto 0);<br />
variable n, k : integer := 0;<br />
begin<br />
d := inp;<br />
for k in 1 to 8 loop<br />
if (d and "00000001") = "00000001" then<br />
n := n + 1;<br />
end if;<br />
d := '0' & d(7 downto 1);<br />
end loop;<br />
num