|
Message
From: Michael Hordijk<hoffbrinkle@h...>
Date: Thu Apr 21 16:46:28 CEST 2005
Subject: [oc] Re: Operations within a vector
"Roberto Ammendola" <roberto.ammendola@r...> wrote in message news:426684A9.7060303@r...... > David Brochart wrote: > > >variable global_b : std_logic; > >... > >global_b := '0'; > >for i in PARAMETER downto 0 loop > > for j in VECTOR_SIZE downto 0 loop > > global_b := global_b or b(i, j); > > end loop; > >end loop; > > thanks David, that's cool. > I just wonder if there is a concurrent way to do it. But I am afraid > that i am searching for something that (V)HDL can handle only in a > sequential statement like above. And anyway I don't think my synthetizer > will encounter many troubles to fit it in the timing requirements...
The above code is "concurrent," as in there is no notion of a clock anywhere. Wrapping it a function, you can call the function in a concurrent signal assignment. Putting it process that is sensistive to the appropriate will make it a concurrent process. Any decent sythesizer should have any trouble with the for loop. Remember:
a <= b;
is no different than:
process is begin a <= b; wait on b; end process;
or:
process (b) is begin a <= b; end process;
or any of the other dozens of ways it could be coded up.
- hoffer
|
 |