J'écris un petit morceau de code pour prendre une entrée de 32 bits et sortir 2 bits à la fois. Je crois que j'ai des problèmes de boucle infinis de la boucle while, basés sur des tentatives de simulation. Tout me semble juste, comparé à d'autres exemples de boucles que j'ai regardé. Toute idée de ce que je pourrais faire mal?VHDL boucle infinie
library ieee;
use ieee.std_logic_1164.all;
entity regA is
port(mpcnd: in std_logic_vector(31 downto 0);
clk: in std_logic;
twobits: out std_logic_vector(1 downto 0));
end regA;
architecture behavior of regA is
begin
process
variable count: integer;
begin
count := 0;
while (count < 32) loop
if rising_edge(clk) then
twobits(0) <= mpcnd(count);
twobits(1) <= mpcnd(count+1);
count := count + 2;
end if;
end loop;
end process;
end behavior;
Oh okay. Je n'avais pas réalisé que j'avais besoin d'une liste de sensibilité. Merci! – user2113607
Et 'wait until rising_edge (clk)' est certainement synthétisable par certains outils! Je n'ai pas testé ce style global de processus mais je pense que le réécrire comme une boucle FOR serait nécessaire pour la synthèse. –