Saya ingin ATAU potongan-potongan vektor bersama-sama. Jadi katakanlah saya memiliki vektor yang disebut example(23 downto 0)
dan saya ingin ATAU semua bit ke vektor lain, apakah ada cara untuk melakukan ini yang tidak melibatkan pergi example(0) or example(1) or ...example(23)
?
11
or_result <= '0' when input=X"00000000" else '1';
Ubah jumlah nol untuk mencocokkan panjang vektor yang dimaksud.result <= '0' when (example=(example'range=>'0')) else '1';
Jawaban:
or_reduce
adalah apa yang Anda inginkan, dan tersedia distd_logic_misc
. Didukung oleh A dan X untuk FPGA.sumber
and_reduce
adalah yang bermanfaat lainnya.Verilog memiliki "operator reduksi" yang praktis yang melakukan persis seperti yang Anda minta:
|example[23:0]
memberikan hasil ATAU semua bit dariexample
vektor.Sayangnya VHDL tidak memiliki operator ini. Menurut comp.lang.vhdl FAQ , meskipun
sumber