Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
intro_example:start [2020/06/19 11:38] – [Basic circuits] rajit | intro_example:start [2025/05/22 10:01] (current) – [Organizing your design] rajit | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== ACT By Example ====== | ====== 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 " | + | 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 " |
- | ===== Basic circuits | + | ACT supports the description of circuits |
- | - A simple [[inverter|inverter]], | + | ===== Circuit examples ===== |
- | - More [[gates|combinational gates]], and simulating with [[http:// | + | |
- | - Creating [[namespace|libraries and namespaces]] | + | |
- | - [[bestpractices|Best practices]] for organizing a complex project | + | |
- | - Array, [[loops|loops]], | + | |
- | - Tracking [[dependencies|dependencies]] between ACT files | + | |
- | - Parameterized design using [[templates|templates]] | + | |
- | ===== Simple asynchronous | + | ACT can describe |
+ | are described as message-passing programs in the [[language: | ||
- | ====== Circuit design ====== | + | ACT provides an integrated simulator |
- | - [[configtut|Configuration]] file | + | |
- | - Specifying transistor | + | |
- | | + | |
+ | * First-in first-out (FIFO) [[intro_example: | ||
+ | *An [[intro_example: | ||
+ | * A simple [[inverter|inverter]] in PRS, along with a simulation using [[tools: | ||
+ | * More [[gates|combinational gates]] in PRS, and simulating with [[http:// | ||
+ | * A [[templates|parameterized adder]] using templates | ||
+ | * Dependent [[template_deps|templates]] | ||
+ | * Using [[standard_sim|standard testing environments]] | ||
+ | * More on [[connection_info|connections]] and how they work | ||
+ | * [[loops|Loops]] and selections | ||
+ | *Other ways to write the [[intro_example: | ||
+ | * [[assertions|Assertions]] in parameterized definitions | ||
+ | * [[name_mangling|Expanded names]] in ACT | ||
+ | * Using [[.pure_struct|pure structures]] | ||
+ | * Defining [[.operators|operators]] | ||
+ | |||
+ | ===== Organizing your design ===== | ||
+ | |||
+ | Any complex design contains a large number of circuit elements, and the design is typically | ||
+ | hierarchical with multiple levels of hierarchy. ACT provides the notion of [[language: | ||
+ | |||
+ | * Creating [[namespace|libraries and namespaces]] | ||
+ | * Organizing your [[files|files]] | ||
+ | * Tracking [[dependencies|dependencies]] between ACT files | ||
+ | |||
+ | |||
+ | ===== Low-level circuit design and SPICE simulation ===== | ||
+ | |||
+ | So far we have learned how to describe a circuit in ACT, simulate using actsim, prsim and irsim. Now, we will move on to the next stage i.e. designing CMOS circuits from ACT description. The process of designing circuit often starts with creating a spice netlist to simulate transistor-level circuit behavior. In order to generate a spice netlist, ACT requires some technology-dependent information and information to understand designer’s intent. We use configuration files to provide such information. For more information on configuration files, see [[config: | ||
+ | |||
+ | The configuration files are saved in '' | ||
+ | |||
+ | * Specifying transistor [[sizing|sizes]] for CMOS implementation | ||
+ | * Generating spice [[netlist|netlist]] and simulation with [[https:// | ||
+ | * [[name_mangling|Name mangling]] in ACT | ||
+ | ===== External tools ===== | ||
+ | |||
+ | ACT can export circuits into industry-standard formats like SPICE, Verilog netlists, and LEF/DEF. This functionality can be used to export designs from ACT into commercial tools. | ||
+ | |||
+ | * Importing asynchronous circuits into [[cadence_import|Cadence Virtuoso]]. | ||