Par souci de cohérence et de facilité de maintenance, je voudrais faire certaines constantes en utilisant des instructions séquentielles, par ex. en cours.Comment utiliser des instructions séquentielles (par exemple, un processus) pour obtenir une valeur constante sans attendre?
J'ai défini une plage en utilisant:
subtype FIELD is natural range 3 downto 0;
Un processus qui rend la valeur pourrait alors ressembler à:
process is
begin
reg <= (others => '0');
reg(FIELD) <= (others => '1');
wait; -- Error in Xilinx ISE
end process;
Cependant, la wait
n'est pas accepté par l'outil de synthèse Xilinx ISE. L'une des façons est bien sûr d'utiliser un signal non utilisé dans une liste de processus, comme une horloge, mais c'est une sorte de moche.
Le style concurrent serait comme:
reg <= (FIELD => (others => '1'), others => '0');
Mais champ ne peut pas être utilisé comme ça dans VHDL.
Existe-t-il un moyen de créer des constantes en utilisant des instructions séquentielles, mais où le wait
n'est pas requis dans un process
?
Vous n'avez pas besoin d'un processus pour affecter une valeur constante à un signal. Faites-le directement dans l'architecture. –
Oui, je suis conscient de cela, mais je préfère utiliser la même structure pour générer le contenu du registre même s'il contient une valeur constante, donc je peux ensuite mettre à jour vers une sortie non constante dans la même structure. – EquipDev