Chcę razem OR bitów wektora. Powiedzmy, że mam wektor o nazwie example(23 downto 0)
i chcę OR wszystkie bity do innego wektora, czy jest jakiś sposób na to, który nie wymaga przejścia example(0) or example(1) or ...example(23)
?
11
or_result <= '0' when input=X"00000000" else '1';
Zmień liczbę zer, aby dopasować długość danego wektora.result <= '0' when (example=(example'range=>'0')) else '1';
Odpowiedzi:
or_reduce
jest tym, czego chcesz i jest dostępny wstd_logic_misc
. Obsługiwane zarówno przez A, jak i X dla układów FPGA.źródło
and_reduce
jest drugim przydatnym.Verilog ma wygodny „operator redukcji”, który robi dokładnie to, o co prosisz:
|example[23:0]
daje wynik OR'owania wszystkich bitówexample
wektora.Niestety VHDL nie ma tego operatora. Jednak zgodnie z comp.lang.vhdl FAQ
źródło