Design Technology
- Design technology involves converting desired system functionality into an implementation.
- The implementation requires optimization of design metrics.
- Variations of a top-down design process are illustrated in Figure.
- The designer refines the system through several abstraction levels.
- At the system level, the designer describes the desired functionality in C language; this is called as system specification.
- The designer converts system specification into behavioral specifications by giving it to general or single purpose processors.
- The designer refines these specifications into register-transfer (RT) specifications by converting behavior on general-purpose processors to assembly code.
- By converting behavior on single-purpose processors to a connection of register-transfer components and state machines.
- The designer then refines the register-transfer-level specification of a single-purpose processor into a logic specification consisting of Boolean equations.

Compilation/Synthesis
- It lets a designer specify desired functionality in an abstract manner.
- It automatically generates lower-level implementation details.
- Describing a system at high abstraction levels can improve productivity.
- A logic synthesis tool converts Boolean expressions into a connection of logic gates (called a net list).
- A register-transfer (RT) synthesis tool converts finite-state machines and register-transfers into a datapath of RT components and a controller of Boolean equations.
- A behavioral synthesis tool converts a sequential program into finite-state machines and register transfers.
- A software compiler converts a sequential program to assembly code, which is register-transfer code.
- Finally, a system synthesis tool converts an abstract system specification into a set of sequential programs on general and single-purpose processors.
- The RT and behavioral synthesis tools has enabled a view of the design process for single-purpose and general-purpose processors.
- The design for single-purpose processors-“hardware design”.
- The design for general-purpose processor-“software design.”
- In the past, the design processes were:
- Software designers wrote sequential programs, while hardware designers connected components.
- But today, synthesis tools have converted the hardware design process essentially into one of writing sequential programs.
- This develops synthesis tools and simulators that enable the co-development of systems using both hardware and software.
- The choice of hardware versus software for a particular function is simply a tradeoff among various design metrics, like performance, power, size, NRE cost, and especially flexibility.
Libraries/IP
- Libraries involve re-use of pre-existing implementations.
- It improves productivity of existing implementations.
- A logic level library may consist of layouts for gates and cells.
- An RT-level library may consist of layouts for RT components, like registers, multiplexers, decoders and functional units.
- A behavioral-level library may consist of bus interfaces, display controllers, and even generalpurpose processors (cores).
- A system-level library might consist of complete systems with operating systems and programs.
Test/Verification
Test/Verification involves ensuring that functionality is correct.
- At the logic level, gatelevel simulators provide output signal timing waveforms given input signal waveforms.
- At the RT-level, hardware description language (HDL) simulators execute RT-level descriptions and provide output waveforms given input waveforms.
- At the behavioral level, HDL simulators simulate sequential programs, to enable hardware/software co-verification.
- At the system level, a model simulators/checkers simulates the initial system specification to verify correctness and completeness of the specification.
