DirkDiggler
01.05.2006, 22:56
Hallo,
habe seit diesem Semester VHDL, jetzt hab ich mir mal ne alte Klausur
(http://www.8ung.at/gerschi/studikram/Prog_Bausteine/ws2002_2003.pdf)
von unserem Prof angeschaut und da kam mir dass kalte Grausen weil ich
nicht weiß wie ich seine Aufgaben lösen soll.
Es fängt schon bei der 1. Aufg an:
entity Quersumme is
generic (n: integer := 16);
port (y: in Bit_vector(n-1 downto 0);
z: out integer range 0 to n
);
end Quersumme;
architecture Behavior1 of Quersumme is
subtype BitCount is integer range 0 to n;
begin
QS: process(y)
variable Tmp : BitCount := 0;
begin
for i in 0 to n-1 loop
if y(i) = '1' then
Tmp := Tmp + 1;
next;
end if;
end loop;
z <= Tmp;
end process;
end behavior1;
Dass Problem liegt glaub ich bei der If-Schleife, dir wird zu oft
durchlaufen.
Falls jemand ne Lösung und ein Programm für VHDL-Dummies weiß wäre ich
dankbar wenn er was posted.
Danke
habe seit diesem Semester VHDL, jetzt hab ich mir mal ne alte Klausur
(http://www.8ung.at/gerschi/studikram/Prog_Bausteine/ws2002_2003.pdf)
von unserem Prof angeschaut und da kam mir dass kalte Grausen weil ich
nicht weiß wie ich seine Aufgaben lösen soll.
Es fängt schon bei der 1. Aufg an:
entity Quersumme is
generic (n: integer := 16);
port (y: in Bit_vector(n-1 downto 0);
z: out integer range 0 to n
);
end Quersumme;
architecture Behavior1 of Quersumme is
subtype BitCount is integer range 0 to n;
begin
QS: process(y)
variable Tmp : BitCount := 0;
begin
for i in 0 to n-1 loop
if y(i) = '1' then
Tmp := Tmp + 1;
next;
end if;
end loop;
z <= Tmp;
end process;
end behavior1;
Dass Problem liegt glaub ich bei der If-Schleife, dir wird zu oft
durchlaufen.
Falls jemand ne Lösung und ein Programm für VHDL-Dummies weiß wäre ich
dankbar wenn er was posted.
Danke