It would not be possible to design modern processors without Computer Aided Design (CAD) tools.

Different CAD Tools can be used for different parts of the full process of designing a processor. For example:

  • Design
  • Simulation
  • Translation
  • Layout
  • Test and Evaluation
  • Analysis A modern Design Framework will integrate multiple CAD tools into a single toolchain.

Simulation

Simulation is an important task for CAD tools, as it is not practically possible to test designs on custom silicon at every stage. There are three primary uses of simulation software:

  • Logic verification - ensure that a given input results in the intended output.
  • Timing closure - measure and analyse the speed of the circuit.
  • Power estimation - Analyse the power requirements and consumption of the circuit.

Simulation Abstraction

There are multiple methods for simulating a design, and different purposes of simulation will require different simulation methods. For example, a simple (and fast) digital simulation is usually adequate for logic verification. However, this is unlikely to be accurate for any timing simulation. For this, an analogue simulation that emulates the behaviour of individual transistors may be more appropriate, and yield more accurate results at the cost of more computing power.

Waveform Viewer

In a given simulation, there are likely to be many inputs and outputs that must be monitored relative to each other. A waveform viewer allows selected signals to be shown together as waves on a navigable timeline.

Hardware Description Languages

Hardware Description Languages (HDL) allow a textual representation of a circuit design. This higher-level representation (compared with schematics) can improve readability and maintainability. The two most commonly used HDLs are VHDL and Verilog.

While this can make hardware design more approachable to people with experience in software development, issues can arise if it is not sufficiently recognised that these textual formats do not represent a sequential program like most programming languages. It is important to recognise parallelism within circuits represented with a HDL.