This page of the documentation explains the routing of OpenRAM.
- Unrouted
- Leave must-connect metal 3 pins for vdd and gnd within the array
- Grid
- Connect in a metal 3 and 4 grid
- Blockage aware
- Can encounter DRC errors with off-grid pins
- Works with commercial tools but not so well with OpenRoad
- Work in Progress: Hanan Grid / Steiner Tree:
- Route tree on Hanan metal 3 and 4 grid instead of full grid
- Blockage aware
- All power pins are brought to M3 and routed as a grid on M3/M4
- Considers blockages of M3/M4 by control and data signals
- Considers wide/long metal spacing rules
- 1st: Route vertical and horizontal grids (blockage aware, allow connection to correct supply)
- 2nd: Check direct overlaps of power pins
- 3rd: Single direction probes to connect
- 4th: A* maze router
- SRAMs typically try to use minimal layers of metal
- Primarily used to connect decoders, input/output circuitry, or control logic
- Wish list
- Minimize number of tracks
- Must consider impact on floorplan
Credit: Chen & Chang, EDA Handbook, Chapter 12, Global and detailed routing | Sense amp to data flop connection |