Ich möchte die Bits eines Vektors zusammen ODER-verknüpfen. Angenommen, ich habe einen Vektor namens example(23 downto 0)
und möchte alle Bits in einen anderen Vektor ODER verknüpfen. Gibt es eine Möglichkeit, dies zu tun, bei der es nicht darum geht, zu gehen example(0) or example(1) or ...example(23)
?
11
or_result <= '0' when input=X"00000000" else '1';
Ändern Sie die Anzahl der Nullen entsprechend der Länge des betreffenden Vektors.result <= '0' when (example=(example'range=>'0')) else '1';
Antworten:
or_reduce
ist, was Sie wollen, und es ist verfügbar instd_logic_misc
. Unterstützt von A und X für FPGAs.quelle
and_reduce
ist der andere nützliche.Verilog verfügt über einen praktischen "Reduktionsoperator", der genau das tut, wonach Sie fragen: Er
|example[23:0]
gibt das Ergebnis der ODER-Verknüpfung aller Bits derexample
Vektors an.Leider hat VHDL diesen Operator nicht. Nach dem comp.lang.vhdl FAQ , obwohl
quelle