emit-interns / MAGICAL

Machine Generated Analog IC Layout
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Fix routing after scaling bounding box #2

Open Brianzhengca opened 4 months ago

Brianzhengca commented 4 months ago

Me and Aditi are gonna be working on this one

inkitori commented 4 months ago

Running it on Comp seems to route successfully but when it's run on ADC1 it breaks at "AcsMgr::computeAcs Start Access Points Generation"

DrGridAstar::run        Route net net020, Sym: 1, SelfSym: 0, StrictDRC: 1 
DrGridAstar::run        Route net net020, Sym: 0, SelfSym: 0, StrictDRC: 1 
DrGridAstar::run        Route net net028, Sym: 1, SelfSym: 0, StrictDRC: 1 
DrGridAstar::run        Route net net028, Sym: 0, SelfSym: 0, StrictDRC: 1 
DrGridAstar::run        Route net SUM_N, Sym: 1, SelfSym: 0, StrictDRC: 1 
DrGridAstar::run        ERROR: Route net SUM_N failed!
DrGridAstar::run        Route net SUM_N, Sym: 1, SelfSym: 0, StrictDRC: 0 
DrGridAstar::run        ERROR: Route net SUM_N failed!
python3: /tmp/pip-req-build-rsalgwvt/src/dr/drGridRoute.cpp:90: bool ANAROUTE::DrGridRoute::runNRR(auto:5&, bool, ANAROUTE::Int_t) [with auto:3 = __gnu_pbds::priority_queue<ANAROUTE::Net*, ANAROUTE::DrGridRoute::SignalNetCmp, __gnu_pbds::pairing_heap_tag, std::allocator<char> >; ANAROUTE::Int_t = int]: Assertion `bSuccess' failed.```

Also the placer output looks a bit weird when it's ran on ADC1. It doesn't really look symmetrical and it looks like it tries wiring? I checked the layers of the "wires" too and they're the M1 M2 layers which I'm pretty sure are used for wiring. Maybe it's also just because it tries doing routing for the subcircuits before wiring the entire circuit together.

image

Last thing is that I tried opening Comp in KLayout and measuring some distances and they seemed to be kind of weird. I used bounding boxes of (-9, -9) and (9, 9) so the expected distances should be around 18 but I was measuring distances of 17 image My guess is that it isn't really a problem and that it's not that the distances between the edges of the circuits have to be 18 but it's just that the distances between the center of the devices are 18.

inkitori commented 4 months ago

I looked into it a bit more and the wiring seems to be expected for ADC1. Subckt route files are still generated normally so I think MAGICAL isn't failing on all the routing and probably successfully generates routing for each individual subckt before placing all of the subckts together, but fails routing all the subckts together which is why we see routing in the place file