Eu quero OU os bits de um vetor juntos. Então, digamos que eu tenha um vetor chamado example(23 downto 0)
e que eu queira OU todos os bits em outro vetor, existe alguma maneira de fazer isso que não envolva ir example(0) or example(1) or ...example(23)
?
11
or_result <= '0' when input=X"00000000" else '1';
Altere o número de zeros para corresponder ao comprimento do vetor em questão.result <= '0' when (example=(example'range=>'0')) else '1';
Respostas:
or_reduce
é o que você deseja e está disponível emstd_logic_misc
. Suportado por A e X para FPGAs.fonte
and_reduce
é o outro útil.O Verilog possui um "operador de redução" conveniente que faz exatamente o que você está solicitando:
|example[23:0]
fornece o resultado de OR'ing de todos os bits doexample
vetor.Infelizmente o VHDL não possui esse operador. De acordo com a FAQ do comp.lang.vhdl , embora
fonte