On 14 Feb., 18:51, Hannes <"h.mcchoc"@gmx.de> wrote:
> Thank you,
>
> regards
>
> Hannes
>
> On 02/14/2011 05:43 PM, HT-Lab wrote:
>
> > VHDL2008 supports reduction operators,
>
> > b<= OR a;
>
> > Hans
> >www.ht-lab.com
>
> > "Hannes" *wrote in messagenews:...
> > Hello,
>
> > I am relatively new to VHDL.
>
> > I search for a command to realize a Boolean OR operation on all bits of
> > a std_logic_vector in a compact way.
>
> > example:
>
> > signal a : std_logic vector (3 downto 0);
> > signal b : std_logic;
>
> > b <= a(0) or a(1) or a(2) or a(3);
>
> > this solution works fine with four bits, but with larger vectors it is
> > not very comfortable.
> > Do somebody have an idea?
>
> > Regards
>
> > Hannes
>
>
Hi,
nice tip for the future, when all tools finally support VHDL 2008.
For now, you can find reduce-functions in std_logic_misc.
e.g.
function AND_REDUCE(ARG: STD_LOGIC_VECTOR) return UX01;
function NAND_REDUCE(ARG: STD_LOGIC_VECTOR) return UX01;
function OR_REDUCE(ARG: STD_LOGIC_VECTOR) return UX01;
function NOR_REDUCE(ARG: STD_LOGIC_VECTOR) return UX01;
function XOR_REDUCE(ARG: STD_LOGIC_VECTOR) return UX01;
function XNOR_REDUCE(ARG: STD_LOGIC_VECTOR) return UX01;
function AND_REDUCE(ARG: STD_ULOGIC_VECTOR) return UX01;
function NAND_REDUCE(ARG: STD_ULOGIC_VECTOR) return UX01;
function OR_REDUCE(ARG: STD_ULOGIC_VECTOR) return UX01;
function NOR_REDUCE(ARG: STD_ULOGIC_VECTOR) return UX01;
function XOR_REDUCE(ARG: STD_ULOGIC_VECTOR) return UX01;
function XNOR_REDUCE(ARG: STD_ULOGIC_VECTOR) return UX01;
Have a nice synthesis
Eilert