In VHDL zwei std_logic_vector hinzufügen, wenn ich ein std_logic_vector gemäß folgenden Erklärung habe:bester und schnellster Weg für in VHDL
signal RAM_ADDR : STD_LOGIC_VECTOR (2 downto 0) := (others => '0');
Wenn ich versuche, diese Adresse in einer Schleife zu erhöhen, mit dem ‚+‘ Operator gemäß folgende:
for i in 0 to 7 loop
RAM_RW <= '1';
wait until KEY_NUM'event;
RAM_RW <= '0';
RAM_ADDR <= RAM_ADDR + "1";
end loop;
ich stehe den folgenden Fehler:
Error (10327): VHDL error at X.vhd(40): can't determine definition of operator ""+"" -- found 0 possible definitions
können Sie das sein st und schnell Weg, um es zu lösen (vielleicht ohne eine andere Art von Daten wie Integer verwenden)?
Bis jetzt ich die folgenden (sehr schlecht) Lösung bin mit:
case RAM_ADDR is
when "000" =>
RAM_ADDR <= "001";
when "001" =>
RAM_ADDR <= "010";
when "010" =>
RAM_ADDR <= "011";
when "011" =>
RAM_ADDR <= "100";
when "100" =>
RAM_ADDR <= "101";
when "101" =>
RAM_ADDR <= "110";
when "110" =>
RAM_ADDR <= "111";
when "111" =>
RAM_ADDR <= "000";
when others =>
RAM_ADDR <= "000";
end case;
Vielen Dank im Voraus,
Gibt es auch ein gutes Ergebnis in Bezug auf die Leistung (Timing)? – pittuzzo
Wenn Sie einen 3-Bit-Zähler beschreiben, sollten die verwendeten Datentypen keinen Einfluss auf die Leistung haben. –