Eren Dogan
2799c106bd
Divide long code into sub-functions
2023-05-30 13:36:38 -07:00
Eren Dogan
136d4564a2
Use less memory when removing blocked Hanan points
2023-05-30 11:10:34 -07:00
Eren Dogan
9f75e68a92
Simplify Hanan graph generation
2023-05-29 21:49:00 -07:00
Eren Dogan
6079152092
Cleanup Hanan router
2023-05-29 12:43:43 -07:00
Eren Dogan
e1e24f6d06
Rename gridless router
2023-05-29 09:18:55 -07:00
Eren Dogan
533c1c9472
Fix gridless router for tall and fat pins
2023-05-28 21:25:11 -07:00
Eren Dogan
33f1b924a4
Avoid blockages when connecting Hanan points
2023-05-22 18:16:49 -07:00
Eren Dogan
648a631a28
Use Hanan points to generate the routing graph
2023-05-22 13:08:21 -07:00
Eren Dogan
cd339ebbd0
Add A* algorithm for navigation router
2023-05-09 13:23:01 -07:00
Eren Dogan
909ac6ce68
Add initial files for navigation router
2023-05-04 20:51:30 -07:00
Eren Dogan
e5fc25da6f
Update copyright year
2023-01-28 22:56:27 -08:00
Eren Dogan
96e57507bf
Add copyright check to code format test
2022-11-30 14:50:43 -08:00
Eren Dogan
fccdc3c45b
Use library imports globally
2022-11-27 13:01:20 -08:00
mrg
5db470155e
Fix print errors in code format unit test.
2022-07-26 12:20:15 -07:00
Eren Dogan
e3fe8c3229
Remove line ending whitespace
2022-07-22 19:52:38 +03:00
mrg
d92c7a634d
Use packages for imports.
...
Must set PYTHONPATH to include OPENRAM_HOME now.
Reorganizes subdirs as packages.
Rewrites unit tests to use packages.
Update README.md with instructions, dependencies etc.
Update sky130 module imports.
Change tech specific package from modules to custom.
2022-07-13 15:55:57 -07:00
mrg
c8905c410a
Fix case where distance is zero length comparison
2022-05-17 15:49:06 -07:00
mrg
4be075e586
Overlap length can include a rectangle overlap.
2022-05-16 14:57:32 -07:00
mrg
3101643964
Check for no pins and fix closest pin return type
2022-05-13 14:34:26 -07:00
mrg
b6c3580e24
Fix width of replica routes. Don't enclose pins if they overlap sufficiently.
2022-05-09 11:44:46 -07:00
mrg
942ab89754
Remove debug output.
2022-05-02 16:42:04 -07:00
mrg
3e48991acb
Skip partial pins if they are too small to prevent DRC overlap errors.
2022-05-02 16:07:05 -07:00
mrg
b1bb9151c4
Reimplement off grid pins.
...
Long pins aren't accessed on end pins anymore.
Fix problem with multiple non-enclosed space causing blockages.
Add partial pin offgrid enclosure algorithm.
2022-05-02 15:43:14 -07:00
mrg
a8f50f212e
Change track spacing for freepdk45
2022-03-18 16:01:57 -07:00
mrg
2bfc94fcdd
Add unblocking of source and destination pins to router.
2022-03-18 14:44:13 -07:00
mrg
01a73b31e1
Fix power ring routing boundary bug.
2022-03-18 10:32:25 -07:00
mrg
ef733bb7aa
Optional save supply pin centers for summer project
2021-06-23 10:03:38 -07:00
mrg
d6a72aed37
Add 2x1 perimter pins to satisfy minimum area rule.
2021-06-13 15:00:46 -07:00
mrg
1ded978256
Change nwell from gnd to vdd. dnwell space added.
2021-06-01 15:10:55 -07:00
mrg
9e8d39f911
Remove debug gds dump
2021-05-28 13:31:19 -07:00
mrg
77f221d859
Separate supply pin type from route supplies option
2021-05-28 11:55:50 -07:00
mrg
013c5932a0
Valid type is tree not single
2021-05-28 11:26:41 -07:00
mrg
f6587badad
Improve supply routing for ring and side pins
2021-05-28 10:58:30 -07:00
mrg
61221ff4fa
Allow tree type
2021-05-26 17:46:41 -07:00
mrg
8bf37ca708
Connect dnwell taps to gnd
2021-05-26 17:38:09 -07:00
mrg
7736d3b927
Fix updated side pin option
2021-05-26 16:14:46 -07:00
mrg
6de5787e58
Fix offsets for ring
2021-05-26 16:14:16 -07:00
mrg
6493d1a7f4
Add dnwell
2021-05-26 16:14:16 -07:00
mrg
cc91cdf008
Add power ring pin
2021-05-26 16:14:14 -07:00
mrg
453f260ca2
Add commented save npz file for intern
2021-05-06 17:14:27 -07:00
mrg
f48b0b8f41
Add left stripe power routes to tree router as option.
2021-05-05 13:45:12 -07:00
mrg
a0e263b14a
Add vdd/gnd pins to the side.
2021-05-03 15:14:15 -07:00
mrg
a730fd0f10
Use magic for LEF abstract. Fix supply perimter pin.
2021-04-14 10:01:43 -07:00
mrg
229b0059c4
Add perimeter margin to expand pins outside perimeter for OpenRoad router.
2021-04-07 16:08:29 -07:00
mrg
e0024fa79a
Add verbosity to error output
2021-04-07 16:07:56 -07:00
mrg
7e29dd7ff2
Reduce verbosity of routing info
2021-03-31 09:38:06 -07:00
mrg
e144f03b23
Add status for supply routing.
2021-03-24 11:15:59 -07:00
mrg
5ab67214e5
Make sure to add path when source and target
2021-03-01 11:37:42 -08:00
mrg
0c2ed487d9
Redundant check if pin contains another
2021-02-26 11:16:19 -08:00
mrg
2a9b5db6d4
Rewrite enclose grids to be cleaner
2021-02-26 11:14:08 -08:00
mrg
013836bb3d
PEP8 cleanup
2021-02-23 13:33:14 -08:00
mrg
549112fcf8
PEP8 cleanup
2021-02-23 13:32:13 -08:00
mrg
bc8fd4a882
Merge branch 'supply_router' into dev
2021-01-25 11:01:48 -08:00
Matt Guthaus
eebc2a93b6
Remove redundant pins when adding each pin
2021-01-25 09:36:27 -08:00
Matt Guthaus
30fc81a1f0
Update copyright year.
2021-01-22 11:23:28 -08:00
mrg
e8239c5e77
Remove debug print statement
2021-01-15 14:27:54 -08:00
mrg
69fe050bad
Refactor and cleanup router grids.
2021-01-15 13:25:57 -08:00
mrg
683f4214b2
Differentiate pin and other blockages for easier to understand blockage processing.
2021-01-14 15:58:37 -08:00
mrg
e3a888e0f7
Only unblock blockages not grids
2021-01-13 13:57:49 -08:00
mrg
1b31afd773
Use partial grids for enclosure with note
2021-01-13 13:01:55 -08:00
mrg
78966824db
Second iteration try unblocking partial blocked grids.
2021-01-13 12:37:29 -08:00
mrg
7506ba81be
Refactor how blocked_grids work. Must still calculate blockages based on enclosed pins.
2021-01-11 11:12:45 -08:00
mrg
0faa14c0e3
Sort escape pins by distance to perimeter to reduce blockages.
2021-01-07 10:12:02 -08:00
mrg
66ff1fe990
Only unblock source/target instead of all components for cleaner routes
2021-01-06 15:14:56 -08:00
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