Tincr  0.0
A Tcl-based CAD Tool Framework for Xilinx's Vivado Design Suite
Functions
tincr::cells Namespace Reference

The cells ensemble encapsulates the cell class from Vivado's Tcl data structure. More...

Functions

 test args
 
 test_proc proc args
 
 new name?lib_cell?
 
 get args
 
 get_name cell
 
 get_type cell
 
 get_primitives
 
 is_placed cell
 
 is_placement_legal cell bel
 
 compatible_with objs
 
 place cell location
 
 unplace cell
 
 duplicate ref_cell name
 
 insert cell net?sinks??inpin??outpin??downhill_net_name?
 

Detailed Description

The cells ensemble encapsulates the cell class from Vivado's Tcl data structure.

Function Documentation

tincr::cells::compatible_with   objs  

Get the cells in the current design that are compatible for placement on or within the given objects.

Parameters
objsThe 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).
tincr::cells::duplicate   ref_cell name  

Duplicate a cell.

Parameters
ref_cellThe cell to copy.
nameThe name of the new cell.
Returns
The newly created duplicate cell object.
tincr::cells::get   args  

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).

tincr::cells::get_name   cell  

Get the name of a cell.

Parameters
cellThecell object.
Returns
The name of the cell.
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.
tincr::cells::get_type   cell  

Get the cell's type. In this case, a cell's type is the library cell it references.

Parameters
cellThe cell object.
Returns
The lib_cell object that this cell references, or an empty list if there is none.
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
cellThe cell that will be inserted into the net.
netThe net that the cell will be inserted into.
sinksThe 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.
inpinThe 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.
outpinThe 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_nameSpecifies a new name for the net downhill of the inserted cell.
tincr::cells::is_placed   cell  

Is this cell placed?

Parameters
cellThe cell object.
Returns
TRUE (1) if cell is placed, FALSE (0) otherwise.
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, the placement is considered valid.

Parameters
cellThe cell to be placed.
belThe location the cell is to be placed on.
Returns
True (1) if the placement is valid, false (0) otherwise.
tincr::cells::new   name ?lib_cell?  

Create a new cell.

Parameters
nameThe name of the new cell.
lib_cellThe 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.
tincr::cells::place   cell location  

Place a cell.

Parameters
cellThe cell object to be placed.
locationThe location object to place the cell on or in. Legal locations include bel and site objects.
tincr::cells::test   args  

Executes all unit tests for every proc in the cells ensemble.

Parameters
argsThe configuration arguments that will be passed to the tcltest unit testing suite.
tincr::cells::test_proc   proc args  

Executes all unit tests for a particular proc in the cells ensemble.

Parameters
procThe proc to run the unit tests for.
argsThe configuration arguments that will be passed to the tcltest unit testing suite.
tincr::cells::unplace   cell  

Unplace a cell.

Parameters
cellThe cell object to be unplaced.
Returns
The bel object that the cell was placed on.