OpenRAM
OpenRAM copied to clipboard
Fix routing issue
These changes concentrate on the SRAM
Main features
- Allows reroute based in the original routing algorithms (iterative apporach)
- Introduce io_pin_placer for single-bank-SRAM routing (constructive apporach)
Fixed bugs
- Routing errors when generating SRAM macros
- Illegal overlap of tracks added by the channel router with the address dffs (dual ported) and w_en wire / data dffs
Shortcuts of 2 approaches
Iterative approach
- Channel router changes to M2 stack
- Rip-up & route like structure
Constructive approach
- Channel router changes to M2 stack
- IO pins placed in a constructive way
- Provides bigger pin pads
- Corresponding supply_placer, providing a routing result like the official SKY130 SRAM macros in the SKY130 PDK
Back-ups
Since there are a lot of changes, in case that the merge is not been approved, here's just a note to the issue #236. The reason that the routing will fail in this case is because the track added by the channel router "dive" into the dffs area, which makes the supply router not be able to do the routing due to the track already overlaps the vdd pins at dffs. To address this, just make sure the first track added by the channel router higher than the dff area (for channel at bottom), which could refer to the changes in this request.