Bastian Koppelmann
9749c522d1
tech: Make power_grid configurable
...
this is the first step to allow engineers, porting technologies, more room
for routing their handmade cells.
For now, we don't allow the specification of power_grids where the lower layer
prefers to be routed vertically. This is due to the router not
connecting some pins properly in that case.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-28 12:06:34 +01:00
Bastian Koppelmann
2c610036b2
router/supply_grid_router: Print init time to the user
...
this can take considerable amount of time, so the user knows that
useful work is done.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-03 12:24:14 +01:00
Bastian Koppelmann
c0c89e465a
vector: Implement hash cache for vector3d and vector
...
this gives us a small runtime improvement in the router.
For FreePDK45 word_size=8, num_words=256
Improved
*** Maze routing supplies: 89.8 seconds
** Routing: 279.3 seconds
Non-improved
*** Maze routing supplies: 105.1 seconds
** Routing: 293.5 seconds
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-03 12:16:10 +01:00
Matthew Guthaus
131f4bda4a
Add layer-purpose GDS support. Various PEP8 fixes.
2019-11-14 18:17:20 +00:00
Matthew Guthaus
8d158e9eb5
Fix lpp change
2019-11-08 15:45:25 +00:00
Matthew Guthaus
0dea153919
PEP8 formatting
2019-11-07 16:33:13 +00:00
Matt Guthaus
560d768010
Fix syntax error in router
2019-08-22 13:46:32 -07:00
Matt Guthaus
6e044b776f
Merge branch 'pep8_cleanup' into dev
2019-06-14 08:47:10 -07:00
Matt Guthaus
a234b0af88
Fix space before comment
2019-06-14 08:43:41 -07:00
mrg
7b8c2cac30
Starting single layer power router.
2019-06-03 15:28:55 -07:00
mrg
bd4d965e37
Begin single layer supply router
2019-06-03 15:27:37 -07:00
Matt Guthaus
0f03553689
Update copyright to correct years.
2019-05-06 06:50:15 -07:00
Matt Guthaus
3f9a987e51
Update copyright. Add header to all OpenRAM files.
2019-04-26 12:33:53 -07:00
Matt Guthaus
7f5e6dd6f8
Fix unconnected supply pin bug in supply router.
...
Simplified some of the supply router pin groups so that it assumes
each group is fully connected. When computing enclosures of the
pins on the routing grid, it will remove disconnected enclosure
shapes to keep things connected.
2019-04-24 10:54:22 -07:00
Matt Guthaus
66c703d932
Simplify router code to clean it up a bit.
2019-04-22 15:30:35 -07:00
Matt Guthaus
ec1fb087b5
Check membership of keys without using keys() list
2019-01-30 13:02:34 -08:00
Matt Guthaus
74fbe8fe63
Convert source and target lists to sets for faster contains check.
2019-01-30 11:15:47 -08:00
Matt Guthaus
aaf028cacf
Optimize hpwl runtime. Fix error in via cost when L shape.
2019-01-30 08:49:47 -08:00
Matt Guthaus
6f171ad147
Added router timing code. Commented combine adjacent pins due to run-time complexity
2018-12-07 13:54:18 -08:00
Matt Guthaus
5ed9904855
Cast dict_values to a list for pin_groups
2018-12-07 13:02:50 -08:00
Matt Guthaus
dfb2cf3cbd
Change analyze_pins to a heuristic algorithm less than O(n^2)
2018-12-07 12:41:32 -08:00
Matt Guthaus
537e0689fb
Add combine adjacent pins back
2018-12-06 14:29:06 -08:00
Matt Guthaus
c51752d245
Provide more stats in -v output
2018-12-06 14:11:15 -08:00
Matt Guthaus
b72382b400
Fix offset bug with negative vertical supply rails
2018-12-06 11:58:19 -08:00
Matt Guthaus
fa3bf2915a
Remove commented code
2018-12-05 09:56:19 -08:00
Matt Guthaus
0c0a23e6eb
Cleanup code. Add time breakdown for SRAM creation.
2018-12-05 09:51:17 -08:00
Matt Guthaus
d95b34caf2
Round output to look pretty
2018-12-04 17:08:47 -08:00
Matt Guthaus
e750d446dc
Fix syntax error. Enable skipped test.
2018-12-04 17:08:22 -08:00
Matt Guthaus
126d4a8d10
Fix instersection bug. Improve primary and secondary pin algo.
2018-12-04 16:53:04 -08:00
Matt Guthaus
7ce75398a8
Change warning to info
2018-12-04 09:42:47 -08:00
Matt Guthaus
7fce6f06ca
Expand grids to maximal pin before removing blockages
2018-12-04 09:35:40 -08:00
Matt Guthaus
389bb91af4
Simplifying supply router to single grid track
2018-12-04 08:41:57 -08:00
Matt Guthaus
c6f03e70d4
Convert supply to wider DRC rules
2018-12-03 11:09:17 -08:00
Matt Guthaus
b8299565eb
Use grid furthest from blockages when blocked pin. Enclose multiple connectors.
2018-11-19 17:32:55 -08:00
Matt Guthaus
2694ee1a4c
Add all insufficient grids that overlap the pin at all
2018-11-19 15:43:19 -08:00
Matt Guthaus
6a7d721562
Add new bbox routine for pin enclosures
2018-11-19 09:28:29 -08:00
Matt Guthaus
3cfefa784f
Fix run-time bug in combine adjacent pins for supply router
2018-11-14 17:06:12 -08:00
Matt Guthaus
18d874a96a
Fix error in iterative implementation of combine_classes
2018-11-14 10:05:04 -08:00
Matt Guthaus
4ebb8a26c4
Disable debug statements.
2018-11-13 17:43:08 -08:00
Matt Guthaus
ddb4cabfe1
Change recursive equivalence class detection to iterative.
2018-11-13 17:42:06 -08:00
Matt Guthaus
de61630962
Expand blocked pins to neighbor grid cells.
2018-11-09 14:25:10 -08:00
Matt Guthaus
c5b408ae2d
Add router output message
2018-11-09 11:10:40 -08:00
Matt Guthaus
8f3fa0e2f6
Fix blocked pin debug output.
2018-11-09 08:52:05 -08:00
Matt Guthaus
f04e76a54f
Allow multiple must-connect pins with the same label.
2018-11-07 13:05:13 -08:00
Matt Guthaus
1fe767343e
Reimplement gdsMill pin functions so they are run once when a GDS is loaded. Get pins is now a table lookup.
2018-11-07 11:31:44 -08:00
Matt Guthaus
5ecfa88d2a
Pad the routing grid by a few tracks to add an extra rail
2018-11-02 17:35:35 -07:00
Matt Guthaus
a3666d82ab
Reduce verbosity of level 1 debug.
2018-11-02 17:30:28 -07:00
Matt Guthaus
ad1d3a3c78
Use default grid costs again.
2018-11-02 16:04:56 -07:00
Matt Guthaus
74c3de2812
Remove diagonal routing bug. Cleanup.
2018-11-02 14:57:40 -07:00
Matt Guthaus
4d30f214da
Add expanded blockages for paths an enclosures to handle wide metal spacing rules.
2018-11-02 11:11:32 -07:00