Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tools:v2act [2025/07/25 15:42] – [Standard import mode] rajit | tools:v2act [2025/07/25 16:22] (current) – [Async import mode] rajit | ||
|---|---|---|---|
| Line 15: | Line 15: | ||
| </ | </ | ||
| + | The input Verilog netlist is assumed to be a collection of gate-level instances from a cell library. For error checking, '' | ||
| ===== Standard import mode ===== | ===== Standard import mode ===== | ||
| - | This is the normal usage for '' | + | This is the normal usage for '' |
| - | the Verilog netlist is assumed to be a collection of gate-level instances from a cell library. For error checking, '' | + | |
| <file verilog test.v> | <file verilog test.v> | ||
| Line 63: | Line 63: | ||
| </ | </ | ||
| + | A few comments: | ||
| + | * Note that the instance names remain unchanged, as do port names and other signal names. | ||
| + | * The inverter is qualified by the cell library namespace. | ||
| + | * By default '' | ||
| + | If you don't have a complete cell definition but would still like to convert the Verilog netlist into ACT, just the declaration of each cell will suffice: | ||
| + | <code act> | ||
| + | namespace cell { | ||
| + | defcell INVX2 (bool? A; bool! Y); | ||
| + | } | ||
| + | </ | ||
| + | ('' | ||
| - | ===== Async import mode ===== | + | The '' |
| + | < | ||
| + | $ lib2act.py < osu018_stdcells.lib | ||
| + | </ | ||
| + | where '' | ||
| + | < | ||
| + | export defcell AND2X1 (bool? A, B; bool! Y); | ||
| + | export defcell AND2X2 (bool? A, B; bool! Y); | ||
| + | export defcell AOI21X1 (bool? A, B, C; bool! Y); | ||
| + | export defcell AOI22X1 (bool? A, B, C, D; bool! Y); | ||
| + | export defcell BUFX2 (bool? A; bool! Y); | ||
| + | export defcell BUFX4 (bool? A; bool! Y); | ||
| + | export defcell CLKBUF1 (bool? A; bool! Y); | ||
| + | export defcell CLKBUF2 (bool? A; bool! Y); | ||
| + | export defcell CLKBUF3 (bool? A; bool! Y); | ||
| + | export defcell DFFNEGX1 (bool? CLK, D; bool! Q); | ||
| + | export defcell DFFPOSX1 (bool? CLK, D; bool! Q); | ||
| + | export defcell DFFSR (bool? CLK, D, R, S; bool! Q); | ||
| + | export defcell FAX1 (bool? A, B, C; bool! YC, YS); | ||
| + | export defcell HAX1 (bool? A, B; bool! YC, YS); | ||
| + | export defcell INVX1 (bool? A; bool! Y); | ||
| + | export defcell INVX2 (bool? A; bool! Y); | ||
| + | export defcell INVX4 (bool? A; bool! Y); | ||
| + | export defcell INVX8 (bool? A; bool! Y); | ||
| + | export defcell LATCH (bool? CLK, D; bool! Q); | ||
| + | export defcell MUX2X1 (bool? A, B, S; bool! Y); | ||
| + | export defcell NAND2X1 (bool? A, B; bool! Y); | ||
| + | export defcell NAND3X1 (bool? A, B, C; bool! Y); | ||
| + | export defcell NOR2X1 (bool? A, B; bool! Y); | ||
| + | export defcell NOR3X1 (bool? A, B, C; bool! Y); | ||
| + | export defcell OAI21X1 (bool? A, B, C; bool! Y); | ||
| + | export defcell OAI22X1 (bool? A, B, C, D; bool! Y); | ||
| + | export defcell OR2X1 (bool? A, B; bool! Y); | ||
| + | export defcell OR2X2 (bool? A, B; bool! Y); | ||
| + | export defcell TBUFX1 (bool? A, EN; bool! Y); | ||
| + | export defcell TBUFX2 (bool? A, EN; bool! Y); | ||
| + | export defcell XNOR2X1 (bool? A, B; bool! Y); | ||
| + | export defcell XOR2X1 (bool? A, B; bool! Y); | ||
| + | </ | ||
| - | In this usage, the clocked design in the Verilog netlist is converted to a gate-level pipelined asynchronous implementation. To activate this mode, use the '' | + | ===== Async import |
| + | In this usage, the clocked design in the Verilog netlist is converted to a gate-level pipelined asynchronous implementation. To activate this mode, use the '' | ||
| + | * The '' | ||
| + | * Signal fanout is replaced by an explicit templated channel '' | ||
| + | * The clock signal is eliminated from flip-flops. The assumption is that the asynchronous version of the flip-flop is an initial token buffer, which is in the asynchronous cell library. The name of the clock signal can be specified using the '' | ||
| + | Apart from these changes, the rest of the conversion proceeds in a similar fashion as the normal mode. | ||