Describe the operation of the component
Consist of two parts :
- Declarative part -- includes necessary declarations
- e.g. type declarations, signal declarations, component declarations, subprogram declarations
- Statement part -- includes statements that describe organization and/or functional operation of component
- e.g. concurrent signal assignment statements, process statements, component instantiation statements
ARCHITECTURE half_adder_d OF half_adder IS
SIGNAL xor_res : BIT; -- architecture declarative part
BEGIN -- begins architecture statement part
carry <= enable AND (x AND y);
result <= enable AND xor_res;
The architecture body describes the operation of the component. There can be many different architectures described for each entity. However, for each instantiation of the entity, one of the possibly several architectures must be selected.
In the above example, the architecture body starts with the keyword ARCHITECTURE followed by the name of the architecture (e.g. half_adder_d above) and the name of the entity with which the architecture is associated. The keyword BEGIN marks the beginning of the architecture statement part which may include concurrent signal assignment statements and processes. Any signals that are used internally in the architecture description but are not found in the entity's ports are declared in the architecture’s declarative part before the BEGIN statement of the architecture body. The keyword END marks the end of the architecture body.