ACT By Example

ACT is a hardware description language that has been influenced more by programming languages developed for software rather than hardware. The key difference between ACT and normal software programming languages is that when “variables” are created, those correspond to hardware components. The other key difference is that ACT can be viewed as a linking language, where circuits can be linked through connections between their I/O ports. ACT supports the description of circuits are multiple levels of abstraction in a unified framework. Details of the language can be found in the detailed language description. The examples linked below are a gentler introduction to various language features, and may be easier to follow than the language description itself.

Behavioral design

  1. First-in first-out buffer

Gate-level design

  1. A simple inverter, along with a simulation using prsim.
  2. More combinational gates, and simulating with irsim
    1. Best practices for organizing a complex project
  3. Array, loops, and selection
  4. Tracking dependencies between ACT files
  5. Parameterized design using templates

Simple asynchronous circuits

  1. Importing asynchronous circuits into Cadence Virtuoso.

Circuit design

  1. Specifying transistor sizes for CMOS implementation
  2. Generating spice netlist and simulation with Xyce