I'm practicing VHDL, and I have a fundamental question about "simple" statements which do not require a process.
I would like to know the difference between
c <= a and b;
Where the statement is not inside a process, just written after the architecture begin, and
process(a,b)
begin
c <= a and b;
end process;
Will these results produce the same thing? Ty :)
Yes, the two descriptions are equivalent.
The concurrent signal assignment
c <= a and bis evaluated at each update of any of the argument (aorb), and the process will also evaluate each time any of the arguments in the sensitivity list is updated (aorb).In the simple example it not required to use a
process, but for more complex expressions, theprocesshas the advantage that control structures likeifandforcan be used, which is not directly possible in a concurrent signal assignment. Also, for sequential logic aprocessis required.