Я хочу или биты вектора вместе. Скажем, у меня есть вектор, который я назвал, example(23 downto 0)
и я хочу перевести все биты в другой вектор, есть ли способ сделать это, не включающий переход example(0) or example(1) or ...example(23)
?
11
or_result <= '0' when input=X"00000000" else '1';
Измените число нулей, чтобы они соответствовали длине рассматриваемого вектора.result <= '0' when (example=(example'range=>'0')) else '1';
Ответы:
or_reduce
это то, что вы хотите, и это доступно вstd_logic_misc
. Поддерживается A и X для FPGA.источник
and_reduce
другой полезный.В Verilog есть удобный «оператор редукции», который делает именно то, что вы просите:
|example[23:0]
дает результат ИЛИ для обработки всех битовexample
вектора.К сожалению, VHDL не имеет этого оператора. Согласно comp.lang.vhdl FAQ , хотя
источник