Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
asic:cells:start [2025/07/31 13:02] – [Using an existing cell library] rajitasic:cells:start [2025/07/31 13:11] (current) – [Using an existing cell library] rajit
Line 144: Line 144:
 } }
 </code> </code>
-should be mapped to a ''NAND2X1'' cell in your cell library and you'd rather not explicitly instantiate the cell, then as a work-around you can do the following:+should be mapped to a ''library_NAND2X1'' cell in your cell library and you'd rather not explicitly instantiate the cell, then as a work-around you can do the following:
  
-<b>Step 1: create a dummy cell that matches this rule.</b> In this example, that would look like this:+**Step 1: create a dummy cell that matches this rule.** In this example, that would look like this:
 <code act> <code act>
 namespace cell { namespace cell {
Line 157: Line 157:
     }     }
 } }
 +
 } }
 </code> </code>
 +
 +Running the cell mapper will use your own cell. Note that you must follow the naming convention for cells used by ACT: (i) the cell name begins with ''g''; and (ii) the input and output port names are ''in'' and ''out'' (the default names; you can override this in the ACT [[config:netlist|netlist configuration]]).
 +
 +**Step 2: swap in your actual cell.**  At this point you can replace the cell with the one from your library as follows.
 +
 +<code act>
 +namespace cell {
 +
 +defcell gmycell0 (bool? in[2]; bool! out)
 +{
 +   library_NAND2X1 n(in[0],in[1],out);
 +}
 +
 +}
 +</code>
 +where ''library_NAND2X1'' is your library cell.  In this example, the assumption is that the order of ports in the library cell corresponds to ''in[0]'', ''in[1]'', and ''out''.
 +
 +
 +