Skip to main content

tile_channel_demand

Function tile_channel_demand 

Source
pub fn tile_channel_demand(cell: &LoopCell) -> usize
Expand description

How many operand channels the switchbox must route into ONE tile for cell.

A global input or a constant operand is TAPPED at the tile for free (inputs fan out at no cost); every other operand is another cell’s output and has to arrive on one of the tile’s two routed channels — its north or its west. Two ports that read the SAME producer share one channel, which is why clamp’s If r is greater than 1000 (the comparison’s left operand and the else arm are both r) needs ONE channel and routes, while pick’s If bit is 1 (a computed predicate over two computed arms) needs THREE and does not.