Architecture Description Language (ADL)
An Architecture Description Language (ADL) is a formal specification language used to describe the structure and behavior of processor architectures. ADLs enable designers to specify desired processor functionalities, from which various models and tools can be derived automatically.
Role in Processor Modeling
In the context of functional validation of pipelined processors, an FSM model can be generated from an ADL specification. The ADL specification is used to define desired functionalities of a processor using states and their transition functions. The resulting FSM model can then be used to generate test programs based on FSM coverage metrics, supporting design validation at different levels of abstraction including specification and implementation.
Related Languages and Approaches
The term "Architecture Description Language" has been applied to multiple distinct language families across different domains:
- Processor ADLs — Used to specify processor architecture and generate functional models such as FSMs, as well as related tools like instruction-set simulators (ISSs).
- Software ADLs (e.g., ArchWare ADL) — Used to specify active software architectures, combining concepts such as a π-calculus based communication and expression language for specifying executable architectures, hyper-code as an underlying representation of system execution, a decomposition operator to break up and introspect on executing systems, and structural reflection for creating new components and binding them into running systems.
Applications
ADLs have been used as a basis for:
- Generating FSM models for functional validation and test generation
- Generating full-system CPU simulators (ISS) from formal or pseudo-formal descriptions
- Generating tests for decoders and formal specifications (e.g., in Coq)
- Specifying dynamic, updatable, and evolvable software architectures