Je veux OU les bits d'un vecteur ensemble. Donc, disons que j'ai un vecteur appelé example(23 downto 0)
et que je veux OU tous les bits dans un autre vecteur, y a-t-il un moyen de le faire qui n'implique pas d'aller example(0) or example(1) or ...example(23)
?
11
or_result <= '0' when input=X"00000000" else '1';
Modifiez le nombre de zéros pour correspondre à la longueur du vecteur en question.result <= '0' when (example=(example'range=>'0')) else '1';
Réponses:
or_reduce
est ce que vous voulez, et il est disponible enstd_logic_misc
. Pris en charge par A et X pour les FPGA.la source
and_reduce
est l'autre utile.Verilog a un "opérateur de réduction" pratique qui fait exactement ce que vous demandez:
|example[23:0]
donne le résultat de OU sur tous les bits duexample
vecteur.Malheureusement, VHDL n'a pas cet opérateur. Cependant, selon la FAQ comp.lang.vhdl
la source