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

The sites ensemble encapsulates the site class from Vivado's Tcl data structure. More...

Functions

 test args
 
 get args
 
 get_used
 
 iterate args
 
 unique ?include_alternate_only_sites?
 
 is_alternate_type site ?type?
 
 has_alternate_types site
 
 get_alternate_types site
 
 get_types ?sites?
 
 get_type site
 
 set_type sites ?type?
 
 get_routing_muxes site
 
 get_info site ?info?
 
 compatible_with objs
 
 get_site_wire_sinks source
 
 get_route_throughs source
 

Detailed Description

The sites ensemble encapsulates the site class from Vivado's Tcl data structure.

Function Documentation

◆ compatible_with()

tincr::sites::compatible_with   objs  

Get the sites that the given objects can be placed on. Valid objects include lib_cell and cell objects.

Parameters
objsThe list of objects.
Returns
A list of site objects that one or more of the listed objects can be placed on.

◆ get_alternate_types()

tincr::sites::get_alternate_types   site  

Get the alternate types of a site.

Parameters
Thesite object.
Returns
A Tcl list of the site's alternate types as strings.

◆ get_info()

tincr::sites::get_info   site ?info?  

Get information about a site object that can be found by parsing its name.

Parameters
siteThe site object.
infoWhat information to get about the site. Valid values include "tile", "x", or "y".
Returns
The requested information about the site.

◆ get_routing_muxes()

tincr::sites::get_routing_muxes   site  

Get a list of the routing bels (site muxes) of a site. Unfortunately, site muxes cannot be returned as first-class Tcl objects. No Vivado Tcl command can get handles to the mux objects. In Vivado 2013.2 and earlier, the command internal::get_rbels returns routing bels of a site. The only way to get handles to the routing bels in later versions of Vivado seems to be by clicking on them in the GUI and calling get_selected_objects.

Parameters
siteThe site object.
Returns
A list of all the muxes in the specified site, including routing bels, logical bel muxes, and LUTs.

◆ get_site_wire_sinks()

tincr::sites::get_site_wire_sinks   source  

Get the sink objects of a source object within a site. This command allows the user to obtain routing information within a site. Because this information cannot be generated using Vivado, a primitive definition file is required.

Parameters
sourceThe source object. Valid objects include bel_pins, site_pins, or site_pips.
Returns
A list of bel_pin, site_pin, and/or site_pip objects that are sinks of the site wire sourced by source.

◆ get_type()

tincr::sites::get_type   site  

Get a site's type. This will return the current type of a site instanced by an alternate type.

Parameters
siteThe site object.
Returns
The current type of the site as a string.

◆ get_types()

tincr::sites::get_types   ?sites?  

Get a list of all site types in the current device or for a set of site objects. This returned list will be a subset of the list of all possible site types returned by the Vivado command: list_property_value SITE_TYPE -class site.

Parameters
sitesThe Tcl list of site objects as a set. If empty, all sites in the device will be used.
Returns
A sorted list of all site types present in the sites provide or the current device. This is presented as a list of strings.

◆ get_used()

tincr::sites::get_used

Get a list of the sites that are used in the current design. This finds used sites by iterating over the design's cells. For small designs on large devices, this runs faster than the equivalent Vivado command get_sites -filter IS_USED. However, this command will run more slowly than the Vivado command on dense, complex designs.

◆ has_alternate_types()

tincr::sites::has_alternate_types   site  

Determine whether or not a site alternate types.

Parameters
siteThe site object.
Returns
True (1) if the site has alternate types, false (0) otherwise.

◆ is_alternate_type()

tincr::sites::is_alternate_type   site ?type?  

Determine whether the site type of a site is an alternate site type.

Parameters
siteThe site object.
typeThe site type as a string. Defaults to site's current type.
Returns
True (1) if the given site type is one of site's alternate types, false (0) otherwise.

◆ iterate()

tincr::sites::iterate   args  

Iterate through each site object on the device and each of its possible type configurations, while executing some piece of code across all of these combinations. TODO Fix the args to this proc.

◆ set_type()

tincr::sites::set_type   sites ?type?  

Set one or more sites' type.

Parameters
sitesThe site object or list of site objects whose type is to be set.
typeThe site type to set the given site(s) to.
Returns
The list of sites whose type has successfully been changed.

◆ unique()

tincr::sites::unique   ?include_alternate_only_sites?  

Creates a dictionary that maps a site type to a physical site location on the current device. This function chooses default site locations over alternate site locations, and chooses a different site location for alternate types if possible. If include_alternate_only_sites is specified then the site types that are only alternate types are also returned.

Returns
If include_alternate_only_sites == 0:
A dictionary that maps a site type to a site location

If include_alternate_only_sites == 1:
A list with two elements:
(1) The first element is a dictionary that maps a site type to a site location
(2) A set of site types that are only alternate site types