The cells
ensemble encapsulates the cell
class from Vivado's Tcl data structure.
More...
The cells
ensemble encapsulates the cell
class from Vivado's Tcl data structure.
◆ compatible_with()
tincr::cells::compatible_with |
|
|
objs |
|
|
| |
Get the cells in the current design that are compatible for placement on or within the given objects.
- Parameters
-
objs | The object or list of objects. Legal objects include bel , site , and tile objects. |
- Returns
- A list of cells in the current design that may be placed on or within the given object(s).
◆ delete()
tincr::cells::delete |
|
|
cell |
|
|
| |
Delete a cell.
- Parameters
-
◆ duplicate()
tincr::cells::duplicate |
|
|
ref_cell name |
|
|
| |
Duplicate a cell.
- Parameters
-
ref_cell | The cell to copy. |
name | The name of the new cell. |
- Returns
- The newly created duplicate cell object.
◆ get()
Queries Vivado's object database for a list of cell
objects that fit the given criteria. This is mostly a wrapper function for Vivado's get_cells
command, though it does add additional features (such as getting the cells of a cell).
◆ get_configurable_properties()
tincr::cells::get_configurable_properties |
|
|
cell |
|
|
| |
Creates and returns a list of properties on the specified cell object that are configurable. TODO: cache this information
- Parameters
-
- Returns
- A set of reconfigurable properties on that cell
◆ get_input_pins()
tincr::cells::get_input_pins |
|
|
cell |
|
|
| |
Get a cell's input pins.
- Parameters
-
- Returns
- The input pins of
cell
.
◆ get_lut_eqn()
tincr::cells::get_lut_eqn |
|
|
cell |
|
|
| |
Get the LUT's equation in sum-of-products form.
- Parameters
-
cell | The cells whose equation you wish to retrieve. |
- Returns
- The LUT's equation in sum-of-products form.
◆ get_name()
tincr::cells::get_name |
|
|
cell |
|
|
| |
Get the name of a cell.
- Parameters
-
- Returns
- The name of the cell.
◆ get_output_pins()
tincr::cells::get_output_pins |
|
|
cell |
|
|
| |
Get a cell's output pins.
- Parameters
-
- Returns
- The output pins of
cell
.
◆ get_primitives()
tincr::cells::get_primitives |
Get all primitive (leaf) cells in the design. A primitive cell maps directly to a BEL on the FPGA.
- Returns
- A list of all primitive (leaf)
cell
objects in the current design.
◆ get_type()
tincr::cells::get_type |
|
|
cell |
|
|
| |
Get the cell's type. In this case, a cell's type is the library cell it references.
- Parameters
-
- Returns
- The
lib_cell
object that this cell references, or an empty list if there is none.
◆ insert()
tincr::cells::insert |
|
|
cell net ?sinks? ?inpin? ?outpin? ?downhill_net_name? |
|
|
| |
Inserts a cell into the middle of a net. The existing net is disconnected from any sinks on the branch the cell is being inserted into and connected to the input pin on the cell. A new net is created and connected to the output pin on the cell and the sinks of the branch.
- Parameters
-
cell | The cell that will be inserted into the net. |
net | The net that the cell will be inserted into. |
sinks | The list of sinks (pins and/or ports) from the net that the new cell will source. This allows the user to identify which branch of the net the cell should be inserted into. If this parameter is omitted or empty, this value defaults to all of the net's sinks. |
inpin | The input pin on the cell that will be driven by the uphill net. By default, this is the first unused input pin on the cell. |
outpin | The output pin on the cell that will drive the downhill net. By default, this is the first unused output pin on the cell. |
downhill_net_name | Specifies a new name for the net downhill of the inserted cell. |
◆ is_lut()
tincr::cells::is_lut |
|
|
cell |
|
|
| |
Is this cell a LUT?
- Parameters
-
- Returns
- True (1) if
cell
is a LUT, false (0) otherwise.
◆ is_placed()
tincr::cells::is_placed |
|
|
cell |
|
|
| |
Is this cell placed?
- Parameters
-
- Returns
- TRUE (1) if cell is placed, FALSE (0) otherwise.
◆ is_placement_legal()
tincr::cells::is_placement_legal |
|
|
cell bel |
|
|
| |
Is the proposed placement legal? Currently, this function actually places the cell on the given BEL using Vivado's place_cell
command. If no errors are thrown after placement, then the name of the BEL that the cell is actually placed on is compared with the expected BEL placement. If the names are identical the placement is considered valid. Otherwise, the placement is considered invalid. cell
should not be already placed onto a BEL when calling this function.
- Parameters
-
cell | The cell to be placed. |
bel | The location the cell is to be placed on. |
- Returns
- True (1) if the placement is valid, false (0) otherwise.
◆ new()
tincr::cells::new |
|
|
name ?lib_cell? |
|
|
| |
Create a new cell.
- Parameters
-
name | The name of the new cell. |
lib_cell | The name of the library cell this new cell will reference. If this parameter is not provided, or if it is left blank, a black-box cell will be created. |
- Returns
- The newly created cell.
◆ place()
tincr::cells::place |
|
|
cell location |
|
|
| |
Place a cell.
- Parameters
-
cell | The cell object to be placed. |
location | The location object to place the cell on or in. Legal locations include bel and site objects. |
◆ rename()
tincr::cells::rename |
|
|
cell name |
|
|
| |
Rename a cell.
- Parameters
-
The | cell to rename. |
The | new name. |
◆ set_lut_eqn()
tincr::cells::set_lut_eqn |
|
|
cell equation |
|
|
| |
Set the LUT's equation.
- Parameters
-
cell | The cell whose equation you wish to set. |
equation | The equation to set. Use I0, I1, etc. as inputs and O as the output. i.e. O=I0&~I1|(I1*I2). |
◆ test()
Executes all unit tests for every proc in the cells
ensemble.
- Parameters
-
args | The configuration arguments that will be passed to the tcltest unit testing suite. |
◆ test_proc()
tincr::cells::test_proc |
|
|
proc args |
|
|
| |
Executes all unit tests for a particular proc in the cells
ensemble.
- Parameters
-
proc | The proc to run the unit tests for. |
args | The configuration arguments that will be passed to the tcltest unit testing suite. |
◆ tie_unused_pins()
tincr::cells::tie_unused_pins |
|
|
cell |
|
|
| |
Tie up or down the unconnected pins of cells in the open synthesized or implemented design. The command uses an internal process to identify whether a pin should be tied up or down.
- Parameters
-
cell | The cell object whose pins should be tied. |
◆ unplace()
tincr::cells::unplace |
|
|
cell |
|
|
| |
Unplace a cell.
- Parameters
-
cell | The cell object to be unplaced. |
- Returns
- The
bel
object that the cell was placed on.