As a result, we can rewrite the architecture section of the above code as below: Since these statements are evaluated at the same time, we call them concurrent statements.
This type of code is quite different from what we have learned in basic computer programming where the lines of code are executed one after the other.
These physical components are operating simultaneously. The moment they are powered, they will “concurrently” fulfill their functionality.
Note that while, in practice, the AND gate has a delay to produce a valid output, this does not mean that the OR gate will stop its functionality and wait until the output of the AND gate is produced.
After giving some examples, we will briefly compare these two types of signal assignment statements.
Please see my article introducing the concept of VHDL if you're not familiar with it.
The following figure illustrates the difference between concurrent and sequential statements.
Now let's take a look at two concurrent signal assignment statements in VHDL: “the selected signal assignment statement” and “the conditional signal assignment statement”.
For example, consider the following MATLAB code: While the VHDL code describing Figure 1 was executed concurrently, the above MATLAB code is evaluated sequentially (i.e., one line after the other).
VHDL supports both the concurrent statements and the sequential ones.