-
Notifications
You must be signed in to change notification settings - Fork 0
Algorithms
Example is for horizontalConnect, if its verticalConnect everything will still be similar. This algorithm generates enough connections to minimally
algorithm automatic horizontal connections for grid:
input: Left Component - lc, Right Component - rc
output: Connection List - connlist
lcts <- find terminals on the right side of lc
rcts <- find terminal on the left side of rc
n_lcts <- size of lcts collection
n_rcts <- size of rcts collection
if n_lcts < n_rcts then
small <- lcts
big <- rcts
smalln <- n_lcts
else
small <- rcts
big <- lcts
smalln <- n_rcts
endif
loop i = 1 .. smalln
add new connection between lc and rc into connlist
end loop
This algorithm specifies how the design files should be generated by going through the different features and depth it will be.
NOTE - This algorithm only works for XY_NEGATIVE
features.
foreach logical_layer:
create hashmap<depth, [features]>
foreach component in logical_layer:
put features into hashmap based on depth
end
foreach connection in logical_layer:
put feature into bashmap based on depth
end
foreach depth in hashmap:
create n output svg/eps/DXF
end
end
There are couple of constraints that need to be taken into account when doing this layout:
- No non-planar connections with these designs
- Connections limited to a max of 4 per component
We also need to figure out how to account for fixed (multi-terminals) from a single component, that will happen in the cases where a tree might span out components to a nodepath. That means that some destinations would be fixed and we need to figure out a decent way to account for those paths. The question sort of becomes, how do we account for these 2 cases:
- Fixed target points
- How expand/compact the layouts
The orthogonal layout algorithm will have to do these two things based on how we decide to do layouts.
NOTE: This also means that we need to persist the layout constraints throughout the physical design algorithm and even beyond (Serialization is necessary).