Matthew Guthaus
8e151553e4
Update contact types.
...
Use preferred directions in tech files.
Programmatically generate based on interconnect stacks.
2019-12-17 23:45:07 +00:00
Matthew Guthaus
fc4685c7f7
Cleanup.
2019-12-17 23:07:01 +00:00
Matt Guthaus
c025ce6356
Add li to preferred direction
2019-12-17 14:06:23 -08:00
Matt Guthaus
24546461ad
Fix over-writing of active spacing rule.
2019-12-17 11:23:59 -08:00
Matt Guthaus
ed28b4983b
Clean up and generalize layer rules.
...
Convert metalN to mN.
Generalize helper constants in modules for
space, width, enclose, etc.
Use layer stacks whever possible.
Try to remove drc() calls in liu of helper constants.
2019-12-17 11:03:36 -08:00
Matt Guthaus
a79d03fef4
Remove poly contact
2019-12-16 17:18:49 -08:00
Matt Guthaus
e143a6033f
Use layer stacks from tech file in design class and throughout
2019-12-13 14:13:41 -08:00
Matt Guthaus
e048ada23c
Abstract basic DRC checks
2019-12-11 17:56:55 -08:00
Matt Guthaus
f9a66e86b4
Add npc option to contact
2019-12-11 09:09:59 -08:00
Matt Guthaus
4a1b10ff0d
Remove extra cast
2019-12-05 21:33:13 -08:00
Matthew Guthaus
5af22b79e2
Only add boundary for if there's a DRC stdc layer
2019-12-06 02:17:58 +00:00
Matt Guthaus
53c72c6054
Merge branch 'tech_migration' of github.com:VLSIDA/PrivateRAM into tech_migration
2019-12-05 15:41:56 -08:00
Matt Guthaus
d150b165de
Merge branch 'tech_migration' of github.com:VLSIDA/PrivateRAM into tech_migration
2019-12-05 15:38:29 -08:00
Matt Guthaus
b1d8a35aa7
Add contact variation
2019-12-05 15:38:25 -08:00
Matthew Guthaus
3deeaf7164
Decrease verbosity of boundary layer
2019-12-05 23:33:23 +00:00
Matthew Guthaus
7397f110c5
Add bbox for special DRC rule boundary
2019-12-05 23:14:25 +00:00
Matt Guthaus
69bb245f28
Updates to gdsMill/tech layers
...
Create active and poly contact types.
Define standard cell boundary option.
DataType and PurposeLayer are the same. Text must have type 0.
Remove vector from vlsiLayout. More debug in reader.
2019-12-04 16:12:53 -08:00
Matt Guthaus
909321326d
Ignore unused layers
2019-11-26 13:21:29 -08:00
Matthew Guthaus
c4cf8134fe
Undo changes for config expansion. Change unit tests to use OPENRAM_HOME.
2019-11-15 18:47:59 +00:00
Matthew Guthaus
131f4bda4a
Add layer-purpose GDS support. Various PEP8 fixes.
2019-11-14 18:17:20 +00:00
Matthew Guthaus
32f1cde897
PEP8 formatting
2019-11-07 16:48:37 +00:00
Matt Guthaus
38213d998f
Add separate layer and purpose pairs to tech layers.
2019-10-25 10:03:25 -07:00
mrg
d583695959
Remove some flake8 errors/warnings.
2019-10-02 23:26:02 +00:00
Matt Guthaus
289d3b3988
Feedthru port edits.
...
Comment about write driver size for write through to work, but
disable write through in functional simulation.
Provide warning in Verilog about write throughs.
2019-09-27 14:18:49 -07:00
Matt Guthaus
4c3b171b72
Share nominal temperature and voltage. Nominal instead of typical.
2019-09-04 16:53:58 -07:00
jsowash
01bdea23ae
Merge branch 'add_wmask' of https://github.com/VLSIDA/PrivateRAM into add_wmask
2019-09-03 11:50:57 -07:00
jsowash
b5ca417b26
Added fix for column mux lib generation.:
2019-09-03 11:50:39 -07:00
Matt Guthaus
69c5608b53
Allow gds to be written with supplies off. Fix extraction bug with new options.
2019-09-03 11:23:35 -07:00
Matt Guthaus
7fe9e5704d
Convert vcg and nets to ordered dict
2019-08-29 16:06:34 -07:00
Matt Guthaus
ee2456f433
Merge branch 'add_wmask' into dev
2019-08-22 15:01:41 -07:00
Matt Guthaus
bdf29c3a26
Fix non-preferred route width again. This time it is likely right.
2019-08-22 13:57:14 -07:00
Matt Guthaus
afaa946f9c
Fix width of non-preferred trunk wire
2019-08-22 12:03:38 -07:00
Matt Guthaus
2ffdfb18a4
Fix trunks less than a pitch in channel route
2019-08-21 17:11:02 -07:00
Matt Guthaus
9ada9a7dfa
Fix pitch in channel router to support M3/M4.
2019-08-21 15:32:49 -07:00
Matt Guthaus
9f54afbf2c
Fix capitalization in verilog golden files
2019-08-21 14:29:57 -07:00
Matt Guthaus
d0f04405a6
Convert capital names to lower case for consistency
2019-08-21 13:45:34 -07:00
Hunter Nichols
1d22d39667
Uncommented tests that use model delays. Fixed issue in sense amp cin.
2019-08-08 18:26:12 -07:00
Hunter Nichols
fc1cba099c
Made all cin function relate to farads and all input_load relate to relative units.
2019-08-08 01:57:04 -07:00
Hunter Nichols
6860d3258e
Added graph functions to compute analytical delay based on graph path.
2019-08-07 01:50:48 -07:00
Matt Guthaus
0c5cd2ced9
Merge branch 'dev' into rbl_revamp
2019-07-26 18:01:43 -07:00
Matt Guthaus
0bb41b8a5d
Fix duplicate paths for timing checks
2019-07-25 13:25:58 -07:00
Matt Guthaus
3df8abd38c
Clean up. Split class into own file.
2019-07-24 08:15:10 -07:00
jsowash
ad0af54a9f
Removed dupliction of addr_size.
2019-07-22 13:18:52 -07:00
jsowash
0a5461201a
Change num_wmask to num_wmasks and write_size = None not word_size if wmask not used.
2019-07-19 14:58:37 -07:00
mrg
e2602dd79b
Add comments for pins. Fix noconn in dummy pbitcell.
2019-07-16 17:30:31 -07:00
mrg
37fcf3bf37
Move classes to individual file.
2019-07-16 15:18:04 -07:00
jsowash
5258016c9f
Changed location of port for din_reg.
2019-07-06 12:27:24 -07:00
jsowash
6fe78fe04a
Removed begin end for Verilog without wmask.
2019-07-06 11:29:34 -07:00
jsowash
24bfaa3b76
Added write_size to test 16 and added a newline to Verilog with no wmask for test 25.
2019-07-05 15:55:03 -07:00
jsowash
ad9193ad5a
Verified 1rw mask writing and changed verilog.py accordingly.
2019-07-05 15:08:59 -07:00
jsowash
f29631695c
Finished merge
2019-07-05 11:43:31 -07:00
mrg
c0f9cdbc12
Create port address module
2019-07-05 09:03:52 -07:00
jsowash
02a0cd71ac
fixed merge conflict
2019-07-04 11:14:32 -07:00
jsowash
125112b562
Added wmask flip flop. Need work on placement still.
2019-07-04 10:34:14 -07:00
mrg
8b0b2e2817
Merge branch 'dev' into rbl_revamp
2019-07-03 14:05:28 -07:00
Hunter Nichols
4e08e2da87
Merged and fixed conflicts with dev
2019-06-25 16:55:50 -07:00
Hunter Nichols
4f3340e973
Cleaned up graph additions to characterizer.
2019-06-25 16:37:35 -07:00
jsowash
3bd69d2759
Added functionality to express polygons in LEF files.
2019-06-25 09:20:00 -07:00
Matt
d22d7de195
Reapply jsowash update without spice model file
2019-06-24 08:59:58 -07:00
mrg
4523a7b9f6
Replica bitcell array working
2019-06-19 16:03:21 -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
bd4d965e37
Begin single layer supply router
2019-06-03 15:27:37 -07:00
mrg
fc12ea24e9
Add boundary to every module and pgate for visual debug.
2019-06-03 15:27:37 -07:00
mrg
1268a7927b
Pbitcell updates.
...
Fix module offset error.
Add boundary for debugging.
Line wrap code.
2019-06-03 15:27:37 -07:00
Matt Guthaus
7cca6b4f69
Add back scn3me_subm support
...
Add back scn3me_subm tech files
Update cells to be DRC clean with rule 5.5.b
Allow magic for FreePDK45 but not debugged.
Revert to older Magic tech file for SCN3ME_SUBM
2019-06-03 15:27:37 -07:00
Hunter Nichols
ad229b1504
Altered indexing of objects in SRAM factory to remove duplications of items using OPTS names. Added smarter bitline name checking.
2019-05-28 16:55:09 -07:00
Hunter Nichols
e2d1f7ab0a
Added smarter name checking for the characterizer.
2019-05-27 13:08:59 -07:00
Hunter Nichols
d08181455c
Added multiport bitcell support for storage node checks
2019-05-20 22:50:03 -07:00
Hunter Nichols
099bc4e258
Added bitcell check to storage nodes.
2019-05-20 18:35:52 -07:00
Hunter Nichols
d8617acff2
Merged with dev
2019-05-15 18:48:00 -07:00
Hunter Nichols
178d3df5f5
Added graph to characterizer to get net names and perform s_en checks. Graph not working with column mux.
2019-05-14 14:44:49 -07:00
mrg
a5ed9b56cd
Optional m4 in design class
2019-05-08 17:51:38 -07:00
Hunter Nichols
d54074d68e
Made timing graph more gate-level. Changed edges to be defined by inputs/ouputs and name based.
2019-05-07 00:52:27 -07:00
Matt Guthaus
0f03553689
Update copyright to correct years.
2019-05-06 06:50:15 -07:00
Hunter Nichols
5bfc42fdbb
Added quality improvements to graph: improved naming, auto vdd/gnd removal
2019-04-29 23:57:25 -07:00
Matt Guthaus
3f9a987e51
Update copyright. Add header to all OpenRAM files.
2019-04-26 12:33:53 -07:00
Matt Guthaus
05ad4285af
Cleanup pgate code.
...
Moved create_netlist and create_layout to the pgate class
from which everything is derived. Modified all pgates
to have consistent debug output and order of init function.
2019-04-26 12:30:42 -07:00
Hunter Nichols
f35385f42a
Cleaned up names, added exclusions to narrow paths for analysis.
2019-04-24 23:51:09 -07:00
Hunter Nichols
e292767166
Added graph creation and functions in base class and lower level modules.
2019-04-24 14:23:22 -07:00
Hunter Nichols
4f28295e20
Added initial graph for correct naming
2019-04-19 01:27:06 -07:00
Matt Guthaus
25bc3a66ed
Add far left option for contact placement in pgates.
2019-04-17 13:41:35 -07:00
Matt Guthaus
a35bf29bdd
Improve print output for debugging layout objects.
2019-04-17 13:41:17 -07:00
Matt Guthaus
be20408fb2
Rewrite add_contact to use layer directions.
2019-04-15 18:00:36 -07:00
Hunter Nichols
c1411f4227
Applied quick corner estimation to analytical delay.
2019-04-09 12:26:54 -07:00
Matt Guthaus
df4e2fead8
Return empty set instead of a list.
2019-04-01 15:59:57 -07:00
Matt Guthaus
5f37677225
Convert pin map to a set for faster membership.
2019-04-01 15:45:44 -07:00
Matt Guthaus
74f904a509
Cleanup options for front-end. Improve info output.
2019-04-01 10:35:17 -07:00
Matt Guthaus
c4c844a8a2
Remove duplicate module name checking since we use the factory
2019-03-06 14:14:46 -08:00
Hunter Nichols
80a325fe32
Added corner information for analytical power estimation.
2019-03-04 19:27:53 -08:00
Hunter Nichols
0e96648211
Added linear corner factors in analytical delay model.
2019-03-04 00:42:18 -08:00
Matt Guthaus
6c9ae1c659
Remove temp names in DRC/LVS. Extract unique doesn't actually extract.
2019-02-24 07:26:21 -08:00
Matt Guthaus
d043c72277
Fix temp name error in openram.py
2019-02-21 11:16:21 -08:00
Matt Guthaus
09d6a63861
Change path to wire_path for Anaconda package conflict
2019-01-25 15:07:56 -08:00
Matt Guthaus
091b4e4c62
Add size commments to spize. Change pdriver stage effort.
2019-01-23 17:27:15 -08:00
Matt Guthaus
7a152ea13d
Move sram_factory to root dir
2019-01-16 17:06:29 -08:00
Matt Guthaus
9ecfaf16ea
Add the factory class
2019-01-16 17:04:28 -08:00
Matt Guthaus
91636be642
Convert all contacts to use the sram_factory
2019-01-16 16:56:06 -08:00
Matt Guthaus
a418431a42
First draft of sram_factory code
2019-01-16 16:15:38 -08:00
Matt Guthaus
20b869f8e1
Remove tabs
2019-01-11 14:16:57 -08:00
Matt Guthaus
5de7ff3773
Updated Verilog to have multiport. Added 1rw,1rw/1r Verilog testbench.
2019-01-11 14:15:16 -08:00
Jesse Cirimelli-Low
b6e7ddd023
Merge branch 'dev' into datasheet_gen
2018-12-04 16:27:04 -08:00
Matt Guthaus
126d4a8d10
Fix instersection bug. Improve primary and secondary pin algo.
2018-12-04 16:53:04 -08:00
Jesse Cirimelli-Low
9501b99df7
merged branch wtih dev
2018-12-03 09:47:34 -08:00
Matt Guthaus
90d1fa7c43
Bitcell supply routing fixes.
...
Flatten and simplify 1rw 1r bitcell.
Move bitcell vias to M3 if rotation is limited.
Simplify replica bitcell vdd routing.
2018-11-30 12:32:13 -08:00
Matt Guthaus
7e054a51e2
Some techs don't need m1 power pins
2018-11-29 18:47:38 -08:00
Matt Guthaus
a7be60529f
Do not rotate vias in horizontal channel routes
2018-11-29 13:57:40 -08:00
Matt Guthaus
4df862d8af
Convert channel router to take netlist of pins rather than names.
2018-11-29 12:12:10 -08:00
Jesse Cirimelli-Low
1942ef33ac
Merge branch 'dev' into datasheet_gen
2018-11-20 11:23:42 -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
20d4e390f6
Add bounding box of connector for when there are multiple connectors
2018-11-19 15:45:07 -08:00
Matt Guthaus
6a7d721562
Add new bbox routine for pin enclosures
2018-11-19 09:28:29 -08:00
Matt Guthaus
8f28f4fde5
Don't always add all 3 types of contorl. Add write and read only port lists.
2018-11-16 15:03:12 -08:00
Matt Guthaus
b13d938ea8
Add m3m4 short hand in design class
2018-11-16 14:10:49 -08:00
Matt Guthaus
4997a20511
Must set library cell flag for netlist only mode as well
2018-11-16 13:37:17 -08:00
Matt Guthaus
ca750b698a
Uniquify bitcell array
2018-11-16 12:52:22 -08:00
Matt Guthaus
e040fd12f9
Bitcell and bitcell array can be named the same.
2018-11-16 12:00:23 -08:00
Matt Guthaus
5e0eb609da
Check for single top-level structure in vlsiLayout. Don't allow dff_inv and dff_buf to have same names.
2018-11-16 11:48:41 -08:00
Jesse Cirimelli-Low
59c0421804
merge dev into datasheet_gen; fixed merge conflict in hierarchy_design.py
2018-11-15 10:45:33 -08:00
Matt Guthaus
ff0a7851b7
Fix error when DRC is disabled so it doesn't initialize.
2018-11-13 17:41:32 -08:00
Matt Guthaus
ce74827f24
Add new option to enable inline checks at each level of hierarchy. Default is off.
2018-11-13 16:51:19 -08:00
Matt Guthaus
732f35a362
Change channel router to route from bottom up to simplify code.
2018-11-11 12:25:53 -08:00
Matt Guthaus
791d74f63a
Fix wrong exception handling that depended on order. Replaced with if/else instead.
2018-11-11 12:02:42 -08:00
Jesse Cirimelli-Low
4227a7886a
Merge branch 'dev' into datasheet_gen
2018-11-11 07:27:42 -08:00
Jesse Cirimelli-Low
91a63fb5c2
Merge branch 'dev'
2018-11-11 07:24:03 -08:00
Jesse Cirimelli-Low
62f8d26ec6
Merge branch 'dev' into datasheet_gen
2018-11-10 10:58:35 -08:00
Matt Guthaus
de61630962
Expand blocked pins to neighbor grid cells.
2018-11-09 14:25:10 -08:00
Jesse Cirimelli-Low
30bffdf1b4
Merge branch 'dev' into datasheet_gen
2018-11-08 19:26:00 -08:00
Matt Guthaus
31eff6f24e
Merge branch 'dev' into multiport_layout
2018-11-08 18:00:28 -08:00
Matt Guthaus
fd5cd675ac
Horizontal increments top down.
2018-11-08 17:01:57 -08:00
Matt Guthaus
e28978180f
Vertical channel routes go from left right. Horizontal go bottom up.
2018-11-08 16:49:02 -08:00
Matt Guthaus
7b10e3bfec
Convert port index lists to three simple lists.
2018-11-08 12:19:40 -08:00
Michael Timothy Grimes
7c3375fd4b
Merge branch 'dev' of https://github.com/VLSIDA/PrivateRAM into multiport
2018-11-08 09:59:52 -08:00
Matt Guthaus
f04e76a54f
Allow multiple must-connect pins with the same label.
2018-11-07 13:05:13 -08:00
Matt Guthaus
8d753b5ac7
Primitive cells only keep the largest pin shape.
2018-11-07 11:58:31 -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
Jesse Cirimelli-Low
781bd13cc1
Merge branch 'dev' into datasheet_gen
2018-11-07 10:08:45 -08:00
Michael Timothy Grimes
3c9821991b
Merge branch 'dev' of https://github.com/VLSIDA/PrivateRAM into multiport
2018-11-05 08:56:19 -08:00
Matt Guthaus
74c3de2812
Remove diagonal routing bug. Cleanup.
2018-11-02 14:57:40 -07:00
Matt Guthaus
866eaa8b02
Add debug message when routes are diagonal.
2018-11-02 11:50:28 -07:00
Jesse Cirimelli-Low
3fa1d5522e
added DRC/LVS error count to datasheet
2018-11-01 14:02:33 -07:00
Matt Guthaus
b24c8a42a1
Remove redundant pins in pin_group constructor. Clean up some code and comments.
2018-11-01 11:31:24 -07:00
Michael Timothy Grimes
dc96d86082
Optimizations to pbitcell spacings
2018-11-01 07:58:20 -07:00
Matt Guthaus
c511d886bf
Added new enclosure connector algorithm using edge sorting.
2018-10-31 15:35:39 -07:00
Matt Guthaus
fc45242ccb
Allow contains to contain copy. Add connectors when pin doesn't overlap grids.
2018-10-30 17:41:29 -07:00
Matt Guthaus
6990773ea1
Add error check requiring non-zero area pin layouts.
2018-10-29 10:32:42 -07:00
Matt Guthaus
0107e1c050
Reduce verbosity of utils
2018-10-26 13:02:31 -07:00
Matt Guthaus
7d74d34c53
Fix pin_layout contains bug
2018-10-26 10:40:43 -07:00
Matt Guthaus
94e5050513
Move overlap functions to pin_layout
2018-10-24 16:13:07 -07:00
Matt Guthaus
dc73e8cb60
Odd bug that instances were not properly rotated.
2018-10-24 16:12:27 -07:00
Hunter Nichols
a711a5823d
Merged dev and fix conflicts in geometry.py
2018-10-24 10:52:22 -07:00
Hunter Nichols
53cb4e7f5e
Fixed lib files to be syntactically correct with multiport. Fixed issue in geometry.py that prevented netlist_only option from working.
2018-10-22 23:33:01 -07:00
Hunter Nichols
62439bdac6
Fixed merge conflicts with sram.py
2018-10-22 17:29:14 -07:00
Hunter Nichols
4f08062268
Added custom 1rw+1r bitcell. Testing are currently failing.
2018-10-22 17:02:21 -07:00
Michael Timothy Grimes
cda2e93cd7
Adding fix to netlist_only mode in geometry.py. Uncommenting functional tests and running both tests in netlist_only mode.
2018-10-22 09:17:03 -07:00
Matt Guthaus
0aad61892b
Supply router working except for off by one rail via error
2018-10-19 14:21:03 -07:00
Matt Guthaus
4bf1e206e2
Merge branch 'dev' into supply_routing
2018-10-17 09:47:18 -07:00
Matt Guthaus
e2cfd382b9
Fix print check regression
2018-10-15 13:23:31 -07:00
Michael Timothy Grimes
c8c70401ae
Redesign of pbitcell for newer process technolgies.
2018-10-15 06:29:51 -07:00
Matt Guthaus
ce8c2d983d
Update all drc usages to call function type
2018-10-12 14:37:51 -07:00
Matt Guthaus
4932d83afc
Add design rules classes for complex design rules
2018-10-12 09:44:36 -07:00
Matt Guthaus
9bb1c2bbcf
Fix Future Warning for real
2018-10-10 15:58:16 -07:00
Matt Guthaus
fa4dd8881c
Fix Future warnings comparison to None
2018-10-10 15:47:14 -07:00
Matt Guthaus
6bbf66d55b
Rewrote pin enclosure code to better address off grid pins.
...
Include only maximal pin enclosure shapes.
Add smallest area connector for off grid pins.
Fix decoder to use add_power_pin code.
Change permissions.
2018-10-10 15:15:58 -07:00
Matt Guthaus
a2b1d025ab
Merge multiport
2018-10-08 11:45:50 -07:00
Matt Guthaus
3244e01ca1
Add copy power pin function
2018-10-08 09:56:39 -07:00
Michael Timothy Grimes
6ef1a3c755
Improvements to functional test. Now will read or write in a random sequence, using randomly generated words and addresses, and using random ports in the multiported cases. Functional test still has some bugs that are being worked out so it will sometimes fail and sometimes not fail.
2018-10-08 06:34:36 -07:00
Matt Guthaus
8499983cc2
Add supply router to top-level SRAM. Change get_pins to elegantly fail.
2018-10-06 08:30:38 -07:00
Matt Guthaus
985d04d4b5
Cleanup of router.
...
Made offsets in geometry snap to grid.
Changed gds_write to use list for visited flag.
Rewrite self.gds each call in case of any changes.
2018-10-04 14:04:29 -07:00
Michael Timothy Grimes
34d8a19871
Adding simulation.py for common functions between functional and delay tests. Updating functional test.
2018-10-04 09:29:44 -07:00
Michael Timothy Grimes
a71486e22f
Adding mutliport constants to design.py to reduce the need for copied code across multiple modules.
2018-09-28 00:11:39 -07:00
Matt Guthaus
9b0142d6b9
Comment debug for possible performance issue
2018-09-24 11:44:32 -07:00
Matt Guthaus
87502374c5
DRC clean supply grid routing on control logic.
2018-09-20 16:00:13 -07:00
Matt Guthaus
fd9ffe30d6
Add layer width options to route object
...
Modify router to use track-width routes.
2018-09-18 15:12:53 -07:00
Matt Guthaus
8d2804b9cb
Supply router working except:
...
Off grid pins. Some pins do now span enough of the routing track and must be patched.
Route track width. Instead of minimum width route, it should be the track width.
2018-09-18 12:57:39 -07:00
Matt Guthaus
60cceab50a
Merge branch 'dev' into supply_routing
2018-09-17 11:34:31 -07:00
Matt Guthaus
a3c2b4384a
Improve comments. Simplify function interface for channel route.
2018-09-11 15:53:12 -07:00
Matt Guthaus
3587f90e94
Fix copy pasta error in create vertical channel route
2018-09-11 14:47:55 -07:00
Matt Guthaus
5e34233479
Finish new VCG testing.
...
Reversed VCG graph edge directions.
Channel tracks get added left to right or top down like
normal left edge algorithm examples.
2018-09-11 14:24:13 -07:00
Matt Guthaus
fcc4a75295
Create VCG using nets as nodes rather than pins.
2018-09-11 13:28:28 -07:00
Matt Guthaus
69261a0dc1
Routing and connecting rails with vias done.
...
Refactored grid path class.
Added direction enum.
Does not route multi-track width wires in signal router.
2018-09-07 14:46:58 -07:00
Matt Guthaus
c2c17a33d2
Horizontal and vertical grid wires done.
2018-09-06 14:30:59 -07:00
Matt Guthaus
cd987479b8
Updates to supply routing.
...
Rename astar_grid to signal_grid to parallel supply routing.
Wave expansion for supply rails.
Pin addition for supply rails.
2018-09-06 11:54:14 -07:00
Matt Guthaus
b1c63a6c62
Add inflate blockages and remove pins from blockages.
2018-09-05 11:06:17 -07:00
Matt Guthaus
0f87ba742f
Add back LEF blockages. Remove "absolute" flags from GDS output
2018-09-05 09:28:43 -07:00
Matt Guthaus
8ffdcdf277
Fixed bit shift amount error. Removed rotate flag for Calibre.
2018-09-04 17:27:50 -07:00
Matt Guthaus
5395f21be9
Remove unique id in contact that was used for debugging
2018-09-04 16:40:52 -07:00
Matt Guthaus
9d40cd4a03
Remove verbose print statement in add_power_pin
2018-09-04 16:39:13 -07:00
Matt Guthaus
378993ca22
Found rotate bug in transformCoordinate. Cleaned up transFlags.
2018-09-04 16:35:40 -07:00
Matt Guthaus
73289a6090
Clean up GdsMill. Fix rotate bug I introduced in transFlags!
2018-08-29 15:34:45 -07:00
Matt Guthaus
27bb1d2ee7
Rewrite blockage routines in router. Clean up GdsMill code.
2018-08-29 15:34:45 -07:00
Matt Guthaus
6220ea6d47
Update router to work with pin_layout structure.
2018-08-29 15:34:45 -07:00
Matt Guthaus
e17c69be3e
Clean up new code for add_modules, add_pins and netlist/layouts.
2018-08-28 10:24:09 -07:00
Matt Guthaus
6401cbf2a6
Move place function to instance class rather than hierarchy.
2018-08-27 17:25:39 -07:00
Matt Guthaus
8664f7a0b8
Converted all modules to not run create_layout when netlist_only
...
mode is enabled.
2018-08-27 16:42:48 -07:00
Matt Guthaus
0daad338e4
All modules have split netlist/layout.
2018-08-27 11:13:34 -07:00
Matt Guthaus
138a70fc23
Add place_inst routine.
...
Separate create netlist and layout in some modules.
2018-08-27 10:42:40 -07:00
Matt Guthaus
e3f2ee8a7e
Fix VCG error in channel route.
...
Note, the channel routing algorithm still does not handle
horizontal conflicts or cyclic vertical conflicts!
2018-08-15 14:19:04 -07:00
Matt Guthaus
34736b7b3f
Remove carriage returns form python files
2018-08-07 09:44:01 -07:00
Matt Guthaus
c0d5f781cf
Not sure how VCG channel constraint got removed. Fixed this bug before...
2018-07-27 15:15:40 -07:00
Matt Guthaus
dd7069dd98
Remove print statement
2018-07-25 15:51:48 -07:00
Matt Guthaus
d6df215718
Always use m2_pitch as default for channel for via spacing rules
2018-07-25 15:47:11 -07:00
Matt Guthaus
6d71c3f790
Fix bug to remove pin from conflicts in addition to graph keys
2018-07-25 15:36:16 -07:00
Matt Guthaus
7c254d540d
Change channel route api to use pin maps instead of an insteads for cases where there are multiple instances that have the pins (e.g. decoders)
2018-07-25 11:37:06 -07:00
Matt Guthaus
f7a2766c29
First draft of naive channel route in hierarchy_layout. It doesn't implement horizontal conflicts or try to minimize the number of channels.
2018-07-25 11:13:30 -07:00
Matt Guthaus
48d3b25b74
Rotate the output pins of the control logic. Need to fix this permanently.
2018-07-24 14:26:01 -07:00
Matt Guthaus
45a53ed089
Rotate via in center for freepdk
2018-07-19 14:01:48 -07:00
Matt Guthaus
51958814a0
Fixing power via problems in freepdk45
2018-07-19 10:23:08 -07:00
Matt Guthaus
e82f97cce1
Add create_bus and connect_bus api
2018-07-17 14:23:29 -07:00
Matt Guthaus
ac22b1145f
Convert bank to use create_bus routines.
...
Modify control logic to have correct offset in SRAM.
2018-07-16 14:13:41 -07:00
Matt Guthaus
77e786ae5e
Fix bug in recomputing boundary with a new offset
2018-07-16 13:46:12 -07:00
Matt Guthaus
3bbb604504
Add new power supplies to delay chain
2018-07-16 10:19:52 -07:00
Matt Guthaus
f3ae29fe0b
Getting single bank to work reliably. Removed tri_gate from bank
...
for now. Will add it in multibank arrays only. Not needed for
separate DIN and DOUT ports.
2018-07-13 14:45:46 -07:00
Matt Guthaus
c6503dd771
Modify unit tests to reset options during init_openram so
...
that they don't use old parameters after a failure.
2018-07-10 16:39:32 -07:00
Matt Guthaus
d95a1925d4
Refactor banked SRAM into multiple files and dynamically load in SRAM
2018-07-10 14:17:09 -07:00
Matt Guthaus
f5855ee68a
Fix analytical power of contact with new hierarchy_design level introduced.
2018-07-10 10:17:23 -07:00
Matt Guthaus
25cf57ede5
Push create bus functions down into layout class.
2018-07-10 10:06:59 -07:00
Matt Guthaus
9d5e5086a1
Add new extra design class with additional hierarchy for shared design rules
2018-07-09 15:43:26 -07:00
Matt Guthaus
94db2052dd
Consolidate metal pitch rules to new design class
2018-07-09 15:42:46 -07:00
Matt Guthaus
2833b706c7
Fix duplicate name check for some modules by checking if name is a substring. Allows pbitcell to pass.
2018-06-29 09:23:23 -07:00
Matt Guthaus
f34c4eb7dc
Convert entire OpenRAM to use python3. Works with Python 3.6.
...
Major changes:
Remove mpmath library and use numpy instead.
Convert bytes to new bytearrays.
Fix class name check for duplicate gds instances.
Add explicit integer conversion from floats.
Fix importlib reload from importlib library
Fix new key/index syntax issues.
Fix filter and map conversion to lists.
Fix deprecation warnings.
Fix Circuits vs Netlist in Magic LVS results.
Fix file closing warnings.
2018-05-14 16:15:45 -07:00
Matt Guthaus
97c08bce95
Add dffs to control logic. Rename layout pin segment/rect functions for consistency. Redo gnd/vdd pins in control.
...
Shift s_en buffers even with other cells.
2018-03-23 08:14:09 -07:00
Matt Guthaus
5bf915a232
Detect via size for power ring.
2018-03-23 08:13:28 -07:00
Matt Guthaus
ed2fa10caa
Use LSB for column mux.
...
Detect via size for power ring.
2018-03-23 08:13:20 -07:00
Matt Guthaus
bab92fcf38
Rework hierarchical decoder to not be folded. Remove address from central bank bus and access via side pins now. Eight way column mux now works.
2018-03-23 08:13:20 -07:00
Matt Guthaus
1f81b24e96
Single bank passing DRC and LVS again.
...
Unfold hierarchical decoder to improve routability.
2018-03-23 08:13:10 -07:00
Matt Guthaus
b867e163a6
Move label pins to center like layout pins.
...
Rework of control logic with vertical poly. Passes DRC/LVS.
Single bank passing DRC.
2018-03-23 08:12:59 -07:00
Matt Guthaus
ed8eaed54f
Reworking control logic for veritcal poly. Rewrote delay line. Rewrote buffered-DFF array.
2018-03-23 08:12:47 -07:00
Matt Guthaus
242a1a68e0
Fix duplicate instance gds output bug that only showed up in Magic extraction. Every time we saved a GDS, additional instances were put in the GDS file. Most extraction tools ignored this, but Magic actually extracted duplicates.
2018-03-02 18:05:46 -08:00
Matt Guthaus
7293eb33bc
Merge branch 'dev' of https://github.com/mguthaus/OpenRAM into dev
2018-03-02 10:30:16 -08:00
Matt Guthaus
2b839d34a3
Get rid of netgen error of undefined dlatch. Fix sp_read to find correct subckt name and pins.
2018-02-27 08:59:46 -08:00
Hunter Nichols
d0e6dc9ce7
First version of analytical power models. Still huge room for improvement. Analytical power printed with 1 verbose level.
2018-02-26 16:32:28 -08:00
Hunter Nichols
62ad30e741
Added initial version of analytical power esitmation. Loops through instances but power estimate is not accurate.
2018-02-22 19:35:54 -08:00
Hunter Nichols
beb7dad9bc
Added corner paramters to power functions. This commit does not compile (sorry)
2018-02-22 00:15:55 -08:00
Hunter Nichols
d4a0f48d4f
Added power calculations for inverter. Still testing.
2018-02-21 19:51:21 -08:00
Hunter Nichols
179a27b0e3
Added some power functions.
2018-02-20 18:22:23 -08:00
Matt Guthaus
d19867e64c
Move utils to base.
2018-02-09 10:42:23 -08:00
Matt Guthaus
84c798d9e4
Move last few modules to base dir
2018-02-09 10:29:37 -08:00
Matt Guthaus
15747b4759
Merge branch 'dev' of github.com:mguthaus/OpenRAM into dev
2018-02-09 10:25:28 -08:00
Matt Guthaus
7100d6f904
Organize top-level files into subdirs.
2018-02-09 10:25:24 -08:00