Routing Render

cb_renderer

class spydrnet_physical.util.cb_renderer(name, gsb_xml, scale=40, spacing=None)[source]

This class renders the conenction box information

Methods:

extract_info()

report_ipins()

Reports IPIN information

extract_info() None[source]
Table 1 Channel Variables

ipin_l

IPIN (Output) Pin toward left direction

ipin_l_len

Number of output pins towards left direction

report_ipins()[source]

Reports IPIN information

Parameters

pMap (Pin map information if position needs to modified {pin_label: location}) – example: {‘top_1’: 2, ‘left_1’: 1 }

sb_renderer

class spydrnet_physical.util.sb_renderer(name, gsb_xml, scale=40, spacing=None)[source]

Renders the switch box information from GSB (Generic Switch Box) file

Methods:

extract_info()

Extracts all parameters

report_connectivity([pin_map, in_pin, ...])

Report connectivity of each driver mux

extract_info() None[source]

Extracts all parameters

Table 2 Channel Variables

chan_out

All output channels

chanx_[l/r]_in

Horizontal left and right incoming channels

chany_[t/b]_in

Vertical top and bottom incoming channels

opin_l[l/r/t/b]

Incoming grid output channels

report_connectivity(pin_map={}, in_pin=None, out_pin=None, filter_direct=False)[source]

Report connectivity of each driver mux

Parameters
  • filter_direct (bool) (Skips printing of direct feedtrhough connections)

  • in_pin

  • out_pin

RoutingRender

class spydrnet_physical.util.RoutingRender(name, gsb_xml, scale=40, spacing=None)[source]

This class illustrates the FPGA switch box and connection box based on the given GSB xml files.

General Variables

Parameters
  • self.name – Name of the module

  • self.scale – General scale for rendering connectivity

  • self.spacing – Margin beetween each section

  • self.root – Parsed XML Root element

Table 3 Channel Variables

self.chanx

Unique list of elements horizontal channels

self.chanx_l

Unique list of elements left incoming chanx channels

self.chanx_l_len

length of chanx_l

self.chanx_r

Unique list of elements right incoming chanx channels

self.chanx_r_len

length of chanx_r

self.chanx_l_drivers

New generated left outgoing channels with feedthrough

self.chanx_l_ft

Left outgoing channels with feedthrough

self.chanx_l_out_map

Mapping of ft/driver index with offset on the left side

self.ipin_l

Unique list of elements outgoing from connection box on left side

self.ipin_l_len

Length of ipin_l

self.opin_l

Unique list of elements incoming from left side

self.opin_l_len

Length of opin_l

self.opin_l_t

Unique list of elements incoming from left top side

self.opin_l_t_len

Length of opin_l_t

self.opin_l_b

Unique list of elements incoming from left bottom side

self.opin_l_b_len

Length of opin_l_b

__init__(name, gsb_xml, scale=40, spacing=None) None[source]

Initialise the rendering class

Parameters
  • name (str) – Name of the connection box

  • gsb_xml (str) – XML file path to read

Methods:

update_dimensions(scale, spacing)

Updates scale and spacing dimensions

report_incoming_channels(side)

This prints incoming channels in the given switch box from the given direction index, Mux, ChanX, Chany, OPIN_L, OPIN_R, OPIN_T, OPIN_B

report_outgoing_channels(side)

This prints the channel information of given switch box for a given direction channels

extract_info()

Extracts insformation from provided general switch box file

get_stats([print_header, noprint])

Prints switch box statistics

save([filename, viewbox])

Save SVG file

render_connection_box(side[, pinmap, ...])

Render connections box in SVG format

render_switch_pattern()

Create SVG object rendering all the switchs from switch box

add_partitions()

This function creates initial floorplan for rendering switch boxes

update_dimensions(scale, spacing)[source]

Updates scale and spacing dimensions

report_incoming_channels(side)[source]

This prints incoming channels in the given switch box from the given direction index, Mux, ChanX, Chany, OPIN_L, OPIN_R, OPIN_T, OPIN_B

report_outgoing_channels(side)[source]

This prints the channel information of given switch box for a given direction channels

extract_info()[source]

Extracts insformation from provided general switch box file

get_stats(print_header=False, noprint=False)[source]

Prints switch box statistics

save(filename=None, viewbox=None)[source]

Save SVG file

render_connection_box(side, pinmap=None, channel_map=None, filename=None)[source]

Render connections box in SVG format

render_switch_pattern()[source]

Create SVG object rendering all the switchs from switch box

add_partitions()[source]
This function creates initial floorplan for rendering switch boxes

┌───────────────────────────────┐ │ │ │ ┌───────────────────────────┐ │ │ │ │ │ │ │ ┌──────────────────────┐ │ │ │ │ │ │ │ │ │ │ │ ┌──────────────────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │Channel_CrossOver │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └──────────────────┘ │ │ │ │ │ │ Driver_Channels_1 │ │ │ │ │ └──────────────────────┘ │ │ │ │ Driver_Channels_2 │ │ │ └───────────────────────────┘ │ │ OPINs_1 │ └───────────────────────────────┘

Channel_CrossOver and Driver_Channels_1 section always exists. Driver_Channels_2 on specific site can be skipped if there are no channels drivers in that direction