Commit Graph

193 Commits

Author SHA1 Message Date
mrg be79789097 Return empty string instead of None when no grid type 2021-01-06 09:41:13 -08:00
mrg 72dc1c58da Initialize queue only in init_queue function 2021-01-06 09:40:49 -08:00
mrg ec6f0f1873 Escape route to any side 2021-01-06 09:40:32 -08:00
mrg b22d2a76a7 Make clear source/target option instead of general setter (bug to remove source/target fixed) 2021-01-06 09:39:50 -08:00
mrg d61fcb3be3 Fix lpp erase bug in removing router annotations 2021-01-06 09:39:01 -08:00
mrg 82178bcf89 Change info from exit to escape 2021-01-04 11:52:02 -08:00
mrg c89e156bfe Separate add pins and route pins so pins can block supply router. 2020-12-23 10:49:47 -08:00
mrg 96c75d7c4b Remove outdated unit tests for router 2020-12-23 07:42:36 -08:00
mrg 94b1e729ab Don't add vias when placing dff array 2020-12-22 17:08:53 -08:00
mrg 286ac635d6 Escape router changes.
Rename exit router to escape router.
Perform supply and signal escape routing after channel and other routing.
2020-12-22 16:35:05 -08:00
mrg 52119fe3b3 Cleanup exit route. Pins are on perimeter mostly. 2020-12-22 15:56:51 -08:00
mrg ae1c889235 Updates to IO signal router.
Route signals to perimeter using maze router.
Move IO pins without perimeter pins to M3 using add_io_pin (like add_power_pin).
2020-12-22 09:39:58 -08:00
mrg 348001b1c8 Supply tree uses signal grid. PEP8 cleanup. 2020-12-21 13:51:50 -08:00
mrg 3c08dfcca5 Enable single pin for vdd/gnd after supply router 2020-12-18 11:09:10 -08:00
mrg c0ab0af201 Retry routes with expanding detour allowed. 2020-12-17 11:39:17 -08:00
mrg 11384ef926 Improve output messaging of tree router 2020-12-16 16:57:40 -08:00
mrg 2b0f8bf263 Don't exit with error when source is target for maze router 2020-12-16 16:57:29 -08:00
mrg d5ed45dadf Make default router tree router 2020-12-16 16:42:19 -08:00
mrg 2c76a2680f Adjust openram options.
Remove option -d (dontpurge) and replace with keeptemp
Add option -d (debug) to drop into pdb.
Add option -k (--keeptemp) to keep temp files
2020-11-05 13:12:26 -08:00
mrg da721a677d Remove EOL whitespace globally 2020-11-03 06:29:17 -08:00
mrg cbf9c48504 Names in skiptests changed. Reduce grid router verbosity. 2020-10-23 09:22:59 -07:00
mrg b7c66d7e07 Changes to simplify metal preferred directions and pitches.
Changes to allow decoder height to be a 2x multiple of bitcell height.
Split of control logic tests.
Fixed track spacing in SRAM and channel router
PEP8 cleanup.
2020-05-10 11:32:45 -07:00
mrg dd73afc983 Changes to allow decoder height to be a 2x multiple of bitcell height.
Convert to use li layer in pgates.
Fix multifinger devices with li layers.
Simplify wordline driver input routing.
Fix power pin direction option update.
PEP8 cleanup
Changes to simplify metal preferred directions and pitches.
Split of control logic tests.
2020-05-10 06:56:22 -07:00
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