mrg
9beb0f4ece
Add separate well design rules.
...
Needed to fix various pgates with wells.
Did some cleanup of these gates as well.
2020-01-23 19:43:41 +00:00
Matt Guthaus
9ad06a7770
Move write mask vias to center to avoid data pins.
2019-12-20 11:48:27 -08:00
Matt Guthaus
82496a66fe
Simplify supply code.
2019-12-20 10:35:57 -08:00
Matt Guthaus
9e8b03d6c2
Merge branch 'dev' into tech_migration
2019-12-19 16:23:22 -08:00
Matt Guthaus
d2461e5011
Supply indexing bug resolved. Recompute width/height basted on insts.
2019-12-19 16:19:21 -08:00
Bastian Koppelmann
1df16eceb6
sram_factory: Give proper priority to overrides
...
modules overridden by the user are the highest priority, then modules
overridden by the technology. If nothing is overriden, use the defaults
from OPTS (if they exist) or use the requested module_type.
This fixes that custom tech_modules could not be used, if they had a default in
OPTS even if the latter was not overridden by the user.
We don't need extra defaults in the tech_modules, as we now only use them,
if they have been overridden by the tech_module.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2019-12-19 15:58:00 +01:00
Bastian Koppelmann
fab963701b
sram_base: Instantiate "dff_array" and "bank" through sram_factory
...
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2019-12-18 17:33:50 +01: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
f30d0b9197
Fix KeyError for bitell types.
2019-12-16 12:04:33 -08:00
Bastian Koppelmann
233ec010ff
modules: Create a class that wraps all the module class names
...
this removes hard coded values from the module instatiations. It also allows
users to override certain modules with their custom cells.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2019-12-16 16:51:38 +01:00
Matt Guthaus
e143a6033f
Use layer stacks from tech file in design class and throughout
2019-12-13 14:13:41 -08:00
Matthew Guthaus
b3b3cf0210
Merge remote-tracking branch 'origin/dev' into tech_migration
2019-11-17 00:15:18 +00:00
Aditi Sinha
2c7aa5d0da
Non-power of 2 address decode tentative
2019-11-15 03:59:57 +00:00
Matthew Guthaus
131f4bda4a
Add layer-purpose GDS support. Various PEP8 fixes.
2019-11-14 18:17:20 +00:00
Matthew Guthaus
a2422cc8d4
Sometimes round down pdriver to fix polarity
2019-11-06 21:51:21 +00:00
Matthew Guthaus
35e65fc6f2
PEP8 wordline driver
2019-11-06 21:19:36 +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
99507ba5c5
Remove rbl_bl_delay_bar from w_en logic inputs.
2019-09-07 23:22:01 -07:00
Matt Guthaus
322af0ec09
Remove sense enable during writes
2019-09-07 20:04:48 -07:00
Matt Guthaus
6bee66f9dc
Forgot to add cs_bar to rw port rails.
2019-09-06 09:29:23 -07:00
Matt Guthaus
969cca28e4
Enable sensing during writes. Need to add dedicated test.
2019-09-06 07:16:50 -07:00
Matt Guthaus
585ce63dff
Removing unused tech parms. Simplifying redundant parms.
2019-09-04 16:08:18 -07:00
jsowash
452cc5e443
Added wmask to lib.py.
2019-09-04 09:29:45 -07:00
jsowash
1a72070f04
Removed LVS error where w_en went over whole AND array in 2 port.
2019-09-03 17:14:31 -07:00
jsowash
dd67490823
Changed routing to allow for 2 write port with write mask.
2019-09-03 14:43:03 -07:00
jsowash
c1906ade3f
Removed A pin's via connection since it's created in the SRAM level and rearranged the SRAM flip flop creation.
2019-08-29 14:48:13 -07:00
jsowash
af3d2af0ec
Merge branch 'dev' into add_wmask
2019-08-29 12:56:11 -07:00
jsowash
f13c8eae8d
Moved column mux ff's to be horizontal with wmask flip flops and adjusted wmask AND array en pin location starting point.
2019-08-29 11:07:42 -07:00
jsowash
5099ff6f6c
Changed A/Z pins to copy_layout_pin and made en (B) pin a single pin.
2019-08-29 09:01:35 -07:00
Matt Guthaus
64fc771fc4
Simplify is not None
2019-08-22 15:02:52 -07:00
Matt Guthaus
ee2456f433
Merge branch 'add_wmask' into dev
2019-08-22 15:01:41 -07:00
jsowash
737e873923
Changed via direction for via1 in flip flops.
2019-08-21 14:49:54 -07:00
Matt Guthaus
9f54afbf2c
Fix capitalization in verilog golden files
2019-08-21 14:29:57 -07:00
jsowash
980760b724
Add preferred direction to via1, routed between supply lines in wmask AND array, and only uses m3 for channel route with a write mask.
2019-08-21 14:02:57 -07:00
Matt Guthaus
d0f04405a6
Convert capital names to lower case for consistency
2019-08-21 13:45:34 -07:00
jsowash
4f01eeb3c1
Combined changes to the pin locations and vias.
2019-08-21 12:36:53 -07:00
jsowash
c2015335b0
Fixed merge issues.
2019-08-21 11:54:22 -07:00
jsowash
4813c01d56
Moved dff's up and moved wmask_AND/wdriver pins left/down, respectively.
2019-08-21 11:50:28 -07:00
Matt Guthaus
b0821a5a0e
Re-add simplified power pins on edges
2019-08-21 11:42:56 -07:00
Matt Guthaus
f281510828
Merge branch 'add_wmask' of github.com:VLSIDA/PrivateRAM into add_wmask
2019-08-21 11:20:42 -07:00
Matt Guthaus
2b7025335c
Use pand2 of correct size. Simplify width checking of AND array.
2019-08-21 11:20:35 -07:00
jsowash
43d45fba98
Moved pwr/gnd pins to the right of the rail.
2019-08-21 10:44:04 -07:00
Matt Guthaus
53d0544291
Minor cleanup and additional assertion checking.
2019-08-21 08:50:12 -07:00
jsowash
71af70a636
Moved pwr/gnd vias and corrected width boundary.
2019-08-20 09:14:23 -07:00
jsowash
316132a33c
Sized inverter for number of driven write drivers.
2019-08-19 13:31:49 -07:00
jsowash
c19bada8df
Performed clean up and added comments.
2019-08-19 08:57:05 -07:00
jsowash
a28c9fed8b
Fixed bug for more than 2 wmasks and changed test to test 4 wmasks.
2019-08-16 14:27:44 -07:00
jsowash
d02ea06ff2
Added method to route between the output of wmask AND array and en of write driver.
2019-08-16 14:12:41 -07:00
jsowash
aaa1e3a614
Added change to route wmask en between driver and AND gates. Need to apply it to all cases.
2019-08-16 10:23:51 -07:00
jsowash
92e0671e15
Removed DRC error with AND array in freepdk45 and moved pin on en_{} pin in port data.
2019-08-15 12:36:17 -07:00
jsowash
858fbb062d
Placed wmask dff and added connections for wmask pins.
2019-08-14 11:45:22 -07:00
jsowash
0d7170eb95
Created wmask AND array en pin to go through to top layer.
2019-08-14 09:59:40 -07:00
jsowash
aa4803f3c4
Increased enable pin's width for larger # of column mux ways.
2019-08-11 15:25:05 -07:00
jsowash
2573b5f48b
Fixed merge conflict.
2019-08-11 14:39:36 -07:00
jsowash
d259efbcda
Connected wdriver_sel between write_mask_and_array and write_driver_array.
2019-08-11 14:33:08 -07:00
Matt Guthaus
e5618b88af
Don't add sense amp to write only port. Fix write_and None define.
2019-08-11 08:46:36 -07:00
Matt Guthaus
6cf7366c56
Gate sen during first half period
2019-08-10 16:30:02 -07:00
Matt Guthaus
8d6a4c74e7
Merge branch 'dev' into control_fix
2019-08-10 13:07:30 -07:00
Matt Guthaus
34d28a19e6
Connect wl_en in all ports to bank.
2019-08-10 12:30:23 -07:00
Matt Guthaus
bac684a82a
Fix control logic routing.
2019-08-10 08:53:02 -07:00
jsowash
d5e331d4f3
Connected en together in write_mask_and_array.
2019-08-09 14:27:53 -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
jsowash
49fffcbc92
Added way to determine length of en pin with wmask in write_driver_array and shortened en to width of driver.
2019-08-08 15:49:23 -07:00
Hunter Nichols
d273c0eef5
Merge branch 'dev' into analytical_cleanup
2019-08-08 13:20:27 -07:00
jsowash
0cfa0ac755
Shortened write driver enable pin so that a write mask can be used without a col mux in layout.
2019-08-08 12:57:32 -07:00
jsowash
59e5441aef
Added write mask to write driver array
2019-08-08 08:46:58 -07:00
Hunter Nichols
3c44ce2df6
Replaced analytical characterization with graph implementation. Removed most analytical delay functions used by old chacterizer.
2019-08-08 02:33:51 -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
Matt Guthaus
d36f14b408
New control logic, netlist only working
2019-08-07 17:14:33 -07:00
jsowash
9409f60237
Merge branch 'dev' into add_wmask
2019-08-07 09:42:55 -07:00
jsowash
abb9af0ea8
Added layout pins for wmask_and_array
2019-08-07 09:33:19 -07:00
jsowash
a6bb410560
Begin implementing a write mask layout as the port data level.
2019-08-07 09:12:21 -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
ae46a464b9
Undo delay changes. Fix bus order for DRC.
2019-08-06 17:17:59 -07:00
Hunter Nichols
2ce7323838
Removed all unused analytical delay functions.
2019-08-06 17:09:25 -07:00
Matt Guthaus
a2f81aeae4
Combine rbl_wl and wl_en. Size p_en_bar slower than wl_en.
2019-08-06 16:29:07 -07:00
Hunter Nichols
2efc0a3983
Merge branch 'dev' into analytical_cleanup
2019-08-06 14:51:30 -07:00
Matt Guthaus
ad35f8745e
Add direction to pins of all modules
2019-08-06 14:14:09 -07:00
Matt Guthaus
4d11de64ac
Additional debug. Smaller psram func tests.
2019-08-05 13:53:14 -07:00
jsowash
a4a72a9639
Merge branch 'dev' into add_wmask
2019-08-01 13:49:52 -07:00
Matt Guthaus
7ba97ee0ba
Fix missing port in control logic
2019-08-01 12:42:51 -07:00
Matt Guthaus
8771ffbfed
Fix bug to add all p_en_bar to banks
2019-08-01 12:28:21 -07:00
Matt Guthaus
ff64e7663e
Add p_en_bar to write ports as well
2019-08-01 12:21:43 -07:00
jsowash
9819b5356e
Merge branch 'dev' into add_wmask
2019-07-31 14:43:48 -07:00
jsowash
774f08da51
Added layout pins to and test for write_mask_and_array.
2019-07-31 14:11:37 -07:00
Hunter Nichols
24b1fa38a0
Added graph fixes to handmade multiport cells.
2019-07-30 20:31:32 -07:00
Matt Guthaus
98878a0a27
Conditionally path exclude
2019-07-27 12:14:00 -07:00
Matt Guthaus
5cb320a4ef
Fix wrong pin error.
2019-07-27 11:44:35 -07:00
Matt Guthaus
468a759d1e
Fixed control problems (probably)
...
Extended functional tests for 15 cycles (slow, but more checking)
Fixed s_en to be gated AFTER the RBL.
2019-07-27 11:09:08 -07:00
Matt Guthaus
52029d8e48
Fix incorrect port_data BL pin name.
2019-07-27 06:11:45 -07:00
Matt Guthaus
179efe4d04
Fix bitline names in merge error
2019-07-26 22:03:50 -07:00
Matt Guthaus
e750ef22f5
Undo some control logic changes.
2019-07-26 21:41:27 -07:00
Matt Guthaus
0c5cd2ced9
Merge branch 'dev' into rbl_revamp
2019-07-26 18:01:43 -07:00
Matt Guthaus
7eea63116f
Control logic LVS clean
2019-07-26 15:50:10 -07:00
Matt Guthaus
dce852d945
Restructure control logic for improved drive and timing.
2019-07-26 14:54:55 -07:00
Hunter Nichols
dc46d07ca3
Removed unused code for input loads
2019-07-26 14:20:47 -07:00
Matt Guthaus
c8c4d05bba
Fix some regression fails.
2019-07-25 14:18:08 -07:00
Matt Guthaus
0bb41b8a5d
Fix duplicate paths for timing checks
2019-07-25 13:25:58 -07:00
jsowash
61ba23706c
Removed comments for rw pen() and added a wmask func test.
2019-07-25 12:24:27 -07:00
Matt Guthaus
80df996720
Modify control logic for new RBL.
2019-07-25 11:19:16 -07:00