VHDL covers two programming domains: the concurrent domain and the sequential domain. In other words, VHDL can be used to describe some activities that occur simultaneously and other activities that must occur in a defined order.
The concurrent domain is the VHDL architecture, containing signal assignments, component instances (covered in Chapter 10) and processes. All of these execute simultaneously.
The sequential domain of VHDL exists within a process. It is analogous to the domain of conventional programming languages. Sequential VHDL is difficult to interpret as hardware, since hardware is inherently concurrent. The interpretation is in fact a conversion from the sequential code to a concurrent equivalent. In general, this is a very difficult (indeed, impossible) task, so is only made possible by imposing rules on coding style, and this is exactly how synthesisers work. It is essential that these rules are followed if sequential VHDL is to be synthesisable. Nevertheless, sequential VHDL is very powerful to the user and leads to simpler, clearer models. It is therefore essential to master the use of sequential VHDL to make the most of synthesis. This chapter covers this sequential domain.
A process is a series of sequential statements that must be executed in order. At this level, VHDL is like many software programming languages.
The main difference between a process and a software program is that a process runs repeatedly throughout ...