====== 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 [[language:start|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 ===== - First-in first-out [[intro_example:chp_fifo|buffer]] ===== Gate-level design ===== - A simple [[inverter|inverter]], along with a simulation using [[tools:prsim|prsim]]. - More [[gates|combinational gates]], and simulating with [[http://opencircuitdesign.com/irsim/|irsim]] - Creating [[namespace|libraries and namespaces]] - [[bestpractices|Best practices]] for organizing a complex project - Array, [[loops|loops]], and selection - Tracking [[dependencies|dependencies]] between ACT files - Parameterized design using [[templates|templates]] ===== Simple asynchronous circuits ===== - Importing asynchronous circuits into [[cadence_import|Cadence Virtuoso]]. ====== Circuit design ====== - [[configtut|Configuration]] file - Specifying transistor [[sizing|sizes]] for CMOS implementation - Generating spice [[netlist|netlist]] and simulation with [[https://xyce.sandia.gov/about_xyce/index.html|Xyce]]