Bastian Koppelmann
64bf93e4e5
bank: Connect instances by their individual bl/br names
...
each module should be able to state how their bl/br lines are named. Here we
always connect port_data with the bitcell_array, so port_data needs function
that return the names of bl/br.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-02-12 15:00:50 +01:00
Jesse Cirimelli-Low
a23f72d5a3
Merge branch 'dev' of https://github.com/VLSIDA/PrivateRAM into dev
2020-02-12 06:54:03 +00:00
Jesse Cirimelli-Low
aedbc5f968
merge custom cell and module properties
2020-02-12 04:09:40 +00:00
mrg
5928a93772
Merge branch 'dev' into tech_migration
2020-02-10 22:42:50 +00:00
mrg
0ef06ec1e1
Fix dff_buf width in netlist_only mode
2020-02-10 20:06:34 +00:00
mrg
6bf33a980f
Add conservative well spacing between library FF and our pgates.
2020-02-10 19:28:30 +00:00
jcirimel
27eced1fbe
netlist_only done
2020-02-09 23:51:01 -08:00
jcirimel
7038fad930
s8 gdsless netlist only working up to pdriver
2020-02-09 23:10:33 -08:00
jcirimel
b212b3e85a
s8 gdsless netlist only working up to dff array
2020-02-09 21:37:09 -08:00
mrg
2ff058f5d5
PEP8 Cleanup and reverse pitch offset of col addr routing
2020-02-06 22:59:30 +00:00
mrg
f0ecf385e8
Nwell fixes in pgates.
...
Fix minor PEP8 format fixes.
Fix nwell to be 55% of cell height.
Move contact in hierarchical decoder for DRC error.
2020-02-06 16:20:09 +00:00
Jesse Cirimelli-Low
3a06141030
add simple sram sizing for netlist only
2020-02-06 12:10:49 +00:00
jcirimel
7cb3091140
Merge branch 'dev' of https://github.com/VLSIDA/PrivateRAM into custom_mod
2020-02-04 23:40:54 -08:00
jcirimel
ed11145ca4
add custom module file, make dff clk pin dynamic
2020-02-04 23:35:06 -08:00
Jesse Cirimelli-Low
6cf20a0353
add technology based module customization
2020-01-30 19:44:24 +00:00
mrg
400cf0333a
Pgates are 8 M1 high by default. Port data is bitcell height.
2020-01-30 03:34:04 +00:00
mrg
0880c393fd
Fix base bitcell syntax error. Remove some unused imports.
2020-01-30 01:58:30 +00:00
mrg
79391b84da
Cleanup and rename vias.
2020-01-30 01:45:33 +00:00
Matt Guthaus
3147b99ce0
Merge remote-tracking branch 'bkoppelmann/bit-sym' into dev
2020-01-29 11:24:09 -08:00
Bastian Koppelmann
b5701af864
column_mux: Allow y axis mirroring
...
since the bitlines alternate in the bitcell array we also need to mirror
the port_data elements.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-28 15:51:39 +01:00
Bastian Koppelmann
ed66fca031
write_driver/sense_amp/precharge arrays: Allow y axis mirroring
...
since the bitlines alternate in the bitcell array we also need to mirror
the port_data elements.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-28 15:51:39 +01:00
Bastian Koppelmann
dd1afe0313
Bitcell arrays: Allow mirroring on the y axis
...
this allows for bitcells that need to be mirrored on the y axis, like
thin cells. However, the portdata elements also need to be mirrored on
the y axis. Otherwise the router will fail horribly when connecting
bitlines.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-28 15:51:21 +01:00
Bastian Koppelmann
df9f351a91
Add custom cell properties to technologies
...
this is technology specific database to store data about the custom
design cells. For now it only contains on which axis the bitcells are
mirrored. This is a first step to support thin cells that need to be
mirrored on the x and y axis.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-28 15:46:14 +01:00
Bastian Koppelmann
90a4a72bba
modules: Use add_power_pin API for all modules
...
sense_amp_array, write_driver_array, and single_column_mux were the only offenders.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-28 11:47:49 +01:00
Bastian Koppelmann
3fb2b9c1c3
Bitcell arrays: Create abstract base class
...
a lot of functions of dummy- and bitcell-array are either copy-pasted or
have just slight differences. Merge all of those into an abstract base
class such that we don't have too much duplicate code.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-28 10:59:58 +01:00
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
jcirimel
f0958b0b11
squashed update of pex progress due to timezone error
2019-12-18 03:03:13 -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
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
Aditi Sinha
5b3846e1e5
Changed replica bitcell array to work with bank tests for non power of two rows
2019-12-08 13:24:39 +00: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
Matt Guthaus
5452ed69e7
Always have a precharge.
2019-07-25 10:31:39 -07:00
Matt Guthaus
fb60b51c72
Add check bits. Clean up logic. Move read/write bit check to next cycle.
2019-07-24 16:57:04 -07:00
jsowash
c8bbee884b
Removed layout related rw port's special pen.
2019-07-24 16:01:12 -07:00
jsowash
3bcb79d9d5
Removed code for RW ports to not precharge on writes. Previously, the entire bitline was written where part was an old value and part was the wmask value.
2019-07-24 15:01:20 -07:00
Matt Guthaus
3df8abd38c
Clean up. Split class into own file.
2019-07-24 08:15:10 -07:00
Matt Guthaus
07401fc6ea
Make control bus routing offset consistent
2019-07-23 09:39:28 -07:00
jsowash
2b29e505e0
Reversed order of wmask bits in functional.py since python lists go left to right. Made # of en bits equal to num_masks.
2019-07-22 12:44:35 -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
jsowash
45cb159d7f
Connected wmask in the spice netlist.
2019-07-19 13:17:55 -07:00
jsowash
082decba18
Temporarily made the functional tests write/read only all 0's or 1's
2019-07-18 15:26:38 -07:00
jsowash
5f37067da7
Turned write_mask_array into write_mask_and_array with flip flops from sram_base
2019-07-18 15:24:41 -07:00
Matt Guthaus
864639d96e
Remove old replica bitline.
2019-07-18 15:19:40 -07:00
jsowash
720739a192
Skipping test 22_sram_wmask_func_test and changed a typo of write_driver to write_mask
2019-07-17 11:04:17 -07:00
Hunter Nichols
9696401f34
Added graph exclusions to replica column to reduce s_en paths.
2019-07-16 23:47:34 -07:00
mrg
8ca656959b
Change direction of RBL bitline pins
2019-07-16 15:09:46 -07:00
mrg
b546ecce2c
Check 2 ports only for layout.
2019-07-16 14:11:54 -07:00
mrg
12fa36317e
Cleanup unit test. Fix s_en control bug for r-only.
2019-07-16 13:51:31 -07:00
mrg
2f55911604
Simplify column decoder placement.
2019-07-16 11:55:25 -07:00
mrg
bea07c2319
SRAM with RBL integration in array.
2019-07-16 09:04:58 -07:00
jsowash
ea2f786dcf
Redefined write_size inrecompute_sizes() to take the new word_size()
2019-07-15 14:41:26 -07:00
mrg
e550d6ff10
Port name maps between bank and replica array working.
2019-07-15 11:29:29 -07:00
mrg
2271946eef
Fix replica array pin names
2019-07-12 14:39:56 -07:00
mrg
d72691f6c2
Make mirror optional argument
2019-07-12 11:14:47 -07:00
mrg
a189b325ed
Merge remote-tracking branch 'origin/dev' into rbl_revamp
2019-07-12 11:10:07 -07:00
mrg
17d144b5b5
Clean up multiport test options to be consistent.
2019-07-12 10:39:55 -07:00
jsowash
dfa2b29b8f
Begin adding wmask netlist and spice tests.
2019-07-12 10:34:29 -07:00
mrg
043018e8ba
Functional tests working with new RBL.
2019-07-12 08:42:36 -07:00
mrg
0b13225913
Single banks working with new RBL
2019-07-11 14:47:27 -07:00
mrg
b841fd7ce3
Replica bitcell array with arbitrary RBLs working
2019-07-10 15:56:51 -07:00
mrg
9dab0be737
Single bank working with replica array.
2019-07-05 13:44:29 -07:00
mrg
b9d993c88b
Add dummy bitcell module.
...
Modify bitcell logic to guess if bitcell is not "bitcell"
No longer need to specify replica (and dummy) bitcell explicitly
Add support for 1 or 2 port replica array.
2019-07-05 12:58:52 -07:00
jsowash
f29631695c
Finished merge
2019-07-05 11:43:31 -07:00
mrg
f542613d78
Correct wordline_driver enable to en, not en_bar.
2019-07-05 10:31:05 -07:00
mrg
bfe4213fce
Port address added to entire SRAM.
2019-07-05 09:44:42 -07:00
mrg
4c6556f1bc
Add port address module
2019-07-05 09:04:48 -07:00
mrg
c0f9cdbc12
Create port address module
2019-07-05 09:03:52 -07:00
mrg
dd62269e0b
Some cleanup
2019-07-05 08:18:58 -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
3176ae9d50
Fix pnand2 height in bank select. Unsure how it passed before.
2019-07-03 15:12:22 -07:00
Matt Guthaus
0cb86b8ba2
Exclude new precharge in graph build
2019-07-03 14:46:20 -07:00
mrg
8b0b2e2817
Merge branch 'dev' into rbl_revamp
2019-07-03 14:05:28 -07:00
mrg
bc4a3ee2b7
New port_data module works in SCMOS
2019-07-03 13:17:12 -07:00
jsowash
474ac67af5
Added optional write_size and wmask.
2019-07-03 10:14:15 -07:00
mrg
244604fb0d
Data port module working by itself.
2019-07-02 15:35:53 -07:00
mrg
2abe859df1
Fix shared bank offset.
2019-07-01 16:29:59 -07:00
jsowash
67c6cdf3bb
Fixed error where word_size was compared to num_words and added write_size to control_logic.py
2019-07-01 15:51:40 -07:00
jsowash
242771f710
Merge branch 'dev' into add_wmask
2019-06-28 15:44:27 -07:00
jsowash
1f76afd294
Begin wmask functionality. Added wmask to verilog file and config parameters.
2019-06-28 15:43:09 -07:00
Hunter Nichols
ce7e320505
Undid change to add bitcell as input to array mod.
2019-06-25 18:26:13 -07:00
Hunter Nichols
4e08e2da87
Merged and fixed conflicts with dev
2019-06-25 16:55:50 -07:00
Hunter Nichols
33c17ac41c
Moved manual delay chain declarations from tech files to options.
2019-06-25 15:45:02 -07:00
mrg
4523a7b9f6
Replica bitcell array working
2019-06-19 16:03:21 -07:00
Hunter Nichols
2b07db33c8
Added bitcell as input to array, but there are DRC errors now.
2019-06-17 15:31:16 -07:00
mrg
d35f180609
Add dummy row
2019-06-14 15:05:14 -07:00
mrg
3c3456596a
Add replica row with dummy cells.
2019-06-14 14:38:55 -07:00
mrg
b67f06a65a
Add replica column for inclusion in replica bitcell array
2019-06-14 12:15:16 -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
fc12ea24e9
Add boundary to every module and pgate for visual debug.
2019-06-03 15:27:37 -07:00
mrg
301f032619
Remove +1 to induce error.
2019-05-31 10:55:17 -07:00
mrg
d789f93743
Add debug runner during individual tests.
2019-05-31 10:51:42 -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
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
a80698918b
Fixed test issues, removed all bitcells not relevant for timing graph.
2019-05-15 17:17:26 -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
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
Matt Guthaus
3f9a987e51
Update copyright. Add header to all OpenRAM files.
2019-04-26 12:33:53 -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
Matt Guthaus
be20408fb2
Rewrite add_contact to use layer directions.
2019-04-15 18:00:36 -07:00
Hunter Nichols
a500d7ee3d
Adjusted bitcell analytical delays for multiport cells.
2019-04-09 02:49:52 -07:00
Hunter Nichols
25c034f85d
Added more accurate bitline delay capacitance estimations
2019-04-09 01:56:32 -07:00
Hunter Nichols
edac60d2a8
Merged with dev and fixed conflicts.
2019-04-03 16:45:01 -07:00
Hunter Nichols
cc5b347f42
Added analyical model test which compares measured delay to model delay.
2019-04-03 16:26:20 -07:00
Hunter Nichols
f6eefc1728
Added updated analytical characterization with combined models
2019-04-02 01:09:31 -07:00
Matt Guthaus
09a429aef7
Update unit tests to all use the sram_factory
2019-03-06 14:12:24 -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
Hunter Nichols
8c1fe253d5
Added variable fanouts to delay testing.
2019-02-13 22:24:58 -08:00
Hunter Nichols
56e79c050b
Changed test values to fix tests.
2019-02-06 15:27:29 -08:00
Hunter Nichols
01c8405d12
Fix bitline measurement delays and adjusted default delay chain for column mux srams
2019-02-06 00:46:25 -08:00
Hunter Nichols
5f01a52113
Fixed some delay model bugs.
2019-02-05 21:15:12 -08:00
Hunter Nichols
12723adb0c
Modified some testing and initial delay chain sizes.
2019-02-04 23:38:26 -08:00
Hunter Nichols
8d7823e4dd
Added delay ratio comparisons between model and measurements
2019-01-31 00:26:27 -08:00
Hunter Nichols
45fceb1f4e
Added word per row to sram config with a default arguement to fix test.
2019-01-30 11:43:47 -08:00
Hunter Nichols
d1218778b1
Fixed merge conflicts
2019-01-28 22:33:08 -08:00
Matt Guthaus
d77bba3af2
Fix clock fanout to include internal FF. Update delays in golden tests.
2019-01-28 08:48:32 -08:00
Matt Guthaus
881c449c7c
Fix error in offset computation for right drivers
2019-01-28 07:53:36 -08:00
Matt Guthaus
c4438584fe
Move jog for wl to mid-cells rather than mid-pins.
2019-01-27 12:59:02 -08:00
Matt Guthaus
0c3baa5172
Added some comments to the spice files.
2019-01-25 15:00:00 -08:00
Matt Guthaus
1afd4341bd
Update stage effort of clk_buf_driver
2019-01-25 14:22:37 -08:00
Matt Guthaus
6f32bac1a2
Use rx of last pdriver instance after placing instances
2019-01-25 14:17:37 -08:00
Matt Guthaus
614aa54f17
Move clkbuf output lower to avoid dff outputs
2019-01-25 14:03:52 -08:00
Matt Guthaus
ddf734891a
Fix pdriver width error
2019-01-25 10:26:31 -08:00
Matt Guthaus
8f56953af0
Convert wordline driver to use sized pdriver
2019-01-24 10:20:23 -08:00
Hunter Nichols
ee03b4ecb8
Added some data variation checking
2019-01-24 09:25:09 -08:00
Matt Guthaus
091b4e4c62
Add size commments to spize. Change pdriver stage effort.
2019-01-23 17:27:15 -08:00
Matt Guthaus
8a85d3141a
Fix polarity problem.
2019-01-23 13:08:43 -08:00
Matt Guthaus
d64d262d78
Fix pdriver instantiation. Change sizes based on word_size.
2019-01-23 12:51:28 -08:00
Matt Guthaus
b58fd03083
Change pbuf/pinv to pdriver in control logic.
2019-01-23 12:03:52 -08:00
Matt Guthaus
a418431a42
First draft of sram_factory code
2019-01-16 16:15:38 -08:00
Hunter Nichols
272267358f
Moved all bitline delay measurements to delay class. Added measurements to check delay model.
2019-01-03 05:51:28 -08:00
Hunter Nichols
51b1bd46da
Added option to use delay chain size defined in tech.py
2018-12-14 18:02:19 -08:00
Hunter Nichols
97fc37aec1
Added checks for the bitline voltage at sense amp enable 50%.
2018-12-12 23:59:32 -08:00
Hunter Nichols
0a26e40022
Attempts to fix failing tests. Random seed differences between mada and pipeline.
2018-12-12 13:12:26 -08:00
Hunter Nichols
4d84731c34
Edited heuristic delay chain and delay model to account for read port differences.
2018-12-07 15:39:53 -08:00
Hunter Nichols
1e87a0efd2
Re-added new width 1rw,1r bitcells with flattened gds.
2018-12-05 20:43:10 -08:00
Hunter Nichols
ea55bda493
Changed s_en delay calculation based recent control logic changes.
2018-12-05 17:10:11 -08:00
Hunter Nichols
722bc907c4
Merged with dev. Fixed conflicts in tests.
2018-12-02 23:09:00 -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
0af4263edb
Remove extra rotated vias in bitcell array to simplify power routing
2018-11-29 18:13:15 -08:00
Matt Guthaus
33a7683473
Remove used gated_clk instead of cs for read-only control logic.
2018-11-29 16:28:37 -08:00
Matt Guthaus
3c4d559308
Fixed syntax error referring to column mux
2018-11-29 13:29:16 -08:00
Matt Guthaus
3d3f54aa86
Add col addr line spacing for col addr decoder
2018-11-29 13:22:48 -08:00
Matt Guthaus
4df862d8af
Convert channel router to take netlist of pins rather than names.
2018-11-29 12:12:10 -08:00
Matt Guthaus
7054d0881a
Fix col address dff spacing from bank.
2018-11-29 09:54:29 -08:00
Matt Guthaus
02a67f9867
Missing gap in port 1 col decoder
2018-11-28 18:07:31 -08:00
Matt Guthaus
d041a498f3
Fix height of port 1 control bus. Adjust column decoder names.
2018-11-28 17:48:25 -08:00
Matt Guthaus
a2a9cea37e
Make column decoder same height as control to control and supply overlaps
2018-11-28 16:59:58 -08:00
Matt Guthaus
d99dcd33e2
Fix SRAM level control routing errors.
2018-11-28 15:30:52 -08:00
Matt Guthaus
143e4ed7f9
Change hierchical decoder output order to match changes to netlist.
2018-11-28 14:09:45 -08:00
Matt Guthaus
b5b691b73d
Fix missing via in clk input of control
2018-11-28 13:20:39 -08:00
Matt Guthaus
2ed8fc1506
pgate inputs and outputs are all on M1 for flexible via placement when using gates.
2018-11-28 12:42:29 -08:00
Matt Guthaus
93904d9f2d
Control logic passes DRC/LVS in SCMOS
2018-11-28 11:02:24 -08:00
Matt Guthaus
410115e830
Modify dff_buf to stagger Q and Qb outputs.
2018-11-28 10:43:11 -08:00
Matt Guthaus
25611fcbc1
Remove dff_inv since we can just use dff_buf
2018-11-28 10:42:22 -08:00
Matt Guthaus
ea6abfadb7
Stagger outputs of dff_buf
2018-11-28 09:48:16 -08:00
Matt Guthaus
c43a140b5e
All control routed and DRC clean. LVS errors.
2018-11-27 17:18:03 -08:00
Matt Guthaus
c45f990413
Change en to en_bar in precharge. Fix logic for inverted p_en_bar.
2018-11-27 14:17:55 -08:00
Matt Guthaus
bf31126679
Correct decoder output numbers to follow address order
2018-11-27 12:03:13 -08:00
Matt Guthaus
b912f289a6
Remove extra X in instance names
2018-11-27 12:02:53 -08:00
Matt Guthaus
2237af0463
Merge branch 'multiport_control_fix' of ssh://scone/home/mrg/openram into multiport_control_fix
2018-11-26 18:01:34 -08:00
Matt Guthaus
cf23eacd0e
Add wl_en
2018-11-26 18:00:59 -08:00
Matt Guthaus
21759d59b4
Remove inverter in wordline driver
2018-11-26 16:41:31 -08:00
Matt Guthaus
9e0b31d685
Make pand2 and pbuf derive pgate. Initial DRC wrong layout.
2018-11-26 16:19:18 -08:00
Matt Guthaus
dd79fc560b
Corretct modules for add_inst
2018-11-26 15:35:29 -08:00
Matt Guthaus
b440031855
Add netlist only mode to new pgates
2018-11-26 15:29:42 -08:00
Hunter Nichols
67977bab3e
Fixed port issue in bank. Changed golden data due to netlist change.
2018-11-20 11:39:14 -08:00
Hunter Nichols
62cbbca852
Merged, fixed conflict bt matching control logic creation to dev.
2018-11-19 22:20:20 -08:00
Hunter Nichols
2f29ad5510
Disabled resizing based on rise/fall delays. It creates delay chains which cannot be routed.
2018-11-19 22:13:58 -08:00
Hunter Nichols
e8f1c19af6
Merge branch 'dev' into multiport_characterization
2018-11-19 15:42:48 -08:00
Matt Guthaus
a47509de26
Move via away from cell edges
2018-11-19 15:42:22 -08:00
Hunter Nichols
a55d907d03
High-to-low delays and slews are copied from the low-to-high values to simplify lib file results. FIXME
2018-11-19 15:40:26 -08:00
Matt Guthaus
4630f52de2
Use array ur instead of bank ur to pace row addr dff
2018-11-19 08:41:26 -08:00
Hunter Nichols
d3c47ac976
Made delay measurements less dependent on period.
2018-11-18 23:28:49 -08:00
Matt Guthaus
ba8bec3f67
Two m1 pitches at top of control logic
2018-11-18 09:30:27 -08:00
Matt Guthaus
c677efa217
Fix control logic center location. Fix rail height error in write only control logic.
2018-11-18 09:15:03 -08:00
Hunter Nichols
3716030a23
Added delay chain sizing for rise/fall delays. Disabled to some sizes being having very large fanouts.
2018-11-16 16:57:22 -08:00
Matt Guthaus
047d6ca2ef
Must channel rout the column mux bits since they could overlap
2018-11-16 16:21:31 -08:00
Matt Guthaus
b89c011e41
Add psram 1w/1r test. Fix bl/br port naming errors in bank.
2018-11-16 15:31:22 -08:00
Matt Guthaus
ca750b698a
Uniquify bitcell array
2018-11-16 12:52:22 -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
Matt Guthaus
68ac7e5955
Fix offset of column decoder with new mirroring
2018-11-15 17:27:58 -08:00
Matt Guthaus
712b71c5ca
Mirror port 1 column decoder in X and Y
2018-11-15 15:26:59 -08:00
Matt Guthaus
21d111acfe
Move wordline driver clock line below decoder. Fix port 1 clock route DRC.
2018-11-15 10:30:38 -08:00
Hunter Nichols
6e47de3f9b
Separated relative delay into rise/fall.
2018-11-14 23:34:53 -08:00
Matt Guthaus
3221d3e744
Add initial support and unit tests for 2 port SRAM
2018-11-14 17:05:23 -08:00
Hunter Nichols
e9f6566e59
Fixed merge conflict, moved control logic mod instantiation, removed some commented out code.
2018-11-14 13:53:27 -08:00
Hunter Nichols
8b6a28b6fd
Changed scmos bitcell 1rw,1r to have same tx widths as pbitcell.
2018-11-13 22:24:18 -08:00
Matt Guthaus
01ceedb348
Only check number of ports when doing layout.
2018-11-13 16:42:25 -08:00
Matt Guthaus
aa779a7f82
Initial two port bank in SCMOS
2018-11-13 16:05:22 -08:00
Hunter Nichols
bad55cfd05
Merged with dev. Fixed merge conflict.
2018-11-09 17:18:19 -08:00
Hunter Nichols
ea1a1c7705
Added delay chain resizing based on analytical delay.
2018-11-09 17:14:52 -08:00
Hunter Nichols
8957c556db
Added sense amp enable delay calculation.
2018-11-08 23:54:18 -08:00
Hunter Nichols
b8061d3a4e
Added initial code for determining the logical effort delay of the wordline.
2018-11-08 23:54:18 -08:00
Matt Guthaus
71177d0b70
Fixed small bugs with new port index stuff and layout.
2018-11-08 17:40:22 -08:00
Matt Guthaus
d03c9d5294
Fix write bl name list in replica bitline
2018-11-08 17:02:20 -08:00
Matt Guthaus
18fbf30b46
Convert col decoder select routing to channel route.
2018-11-08 16:53:58 -08:00
Matt Guthaus
ef2ed9a92c
Simplify bl and br name lists.
2018-11-08 15:48:49 -08:00
Matt Guthaus
5d733154e9
Refactor bank to allow easier multiport.
2018-11-08 15:18:51 -08:00
Matt Guthaus
7b10e3bfec
Convert port index lists to three simple lists.
2018-11-08 12:19:40 -08:00
Matt Guthaus
929eae4a23
Document why sense amp is 8x isolation transistor
2018-11-07 16:09:50 -08:00
Matt Guthaus
3d2abc0873
Change default col mux size to 2. Add some comments.
2018-11-07 15:43:08 -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
Hunter Nichols
f05865b307
Fixed drc issues with replica bitline test.
2018-11-02 17:16:41 -07:00
Hunter Nichols
b00fc040a3
Added replica 1rw+1r cell python modules. Also added drc/lvs checks in replica bitline, but test is failing due to pin error in freepdk45 and metal spacing error in scmos.
2018-11-01 12:29:49 -07:00
Hunter Nichols
e5dcf5d5b1
Altered bitline with heuristic to have a larger delay chain for larger column muxes. Also have to alter the feasible period for functional tests to pass.
2018-10-30 22:19:26 -07:00
Hunter Nichols
3bb8aa7e55
Fixed import errors with mux analytical delay model.
2018-10-26 17:37:25 -07:00
Hunter Nichols
98a00f985b
Changed the analytical delay model to accept multiport options. Little substance to the values generated.
2018-10-26 00:08:13 -07:00
Hunter Nichols
a711a5823d
Merged dev and fix conflicts in geometry.py
2018-10-24 10:52:22 -07:00
Matt Guthaus
e90f9be6f5
Move replica bitcells to new bitcells subdir
2018-10-24 09:06:29 -07:00
Hunter Nichols
016604f846
Fixed spacing in golden lib files. Added column mux into analytical model.
2018-10-24 00:16:26 -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
Matt Guthaus
7591f25a2e
Merge branch 'dev' into supply_routing
2018-10-20 14:29:19 -07:00
Matt Guthaus
f5e68c5c32
Move power pins in hierarchical decoder to be further. Strap rails instead for redundant vias.
2018-10-20 12:54:12 -07:00
Michael Timothy Grimes
a06a0975db
Removed L shaped routing from gnd contact to wordlines in replica bitline. Corrected slight DRC errors. Optimizations to pbitcell.
2018-10-18 07:05:47 -07:00
Matt Guthaus
4bf1e206e2
Merge branch 'dev' into supply_routing
2018-10-17 09:47:18 -07:00
Matt Guthaus
ce8c2d983d
Update all drc usages to call function type
2018-10-12 14:37:51 -07:00
Matt Guthaus
297ea81060
Change RBL size to 50% of row size.
2018-10-11 10:39:24 -07:00
Matt Guthaus
a094db9077
Merge branch 'multiport' into supply_routing
2018-10-11 09:56:38 -07:00
Matt Guthaus
823cb04b80
Fix metal4 rules in FreePDK45. Multiport still needs updating.
2018-10-11 09:56:15 -07:00
Matt Guthaus
e22e658090
Converted all submodules to use _bit notation instead of [bit]
2018-10-11 09:53:08 -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
Matt Guthaus
bb83e5f1be
Move clk up in dff arrays for supply pin access
2018-10-05 08:18:38 -07:00
Matt Guthaus
68b30d601e
Move bitcells to their own directory in preparation for custom multiport cells.
2018-10-05 08:09:09 -07:00
Michael Timothy Grimes
e258199fa3
Removing we_b signal from write ports since it is redundant.
2018-10-04 09:31:04 -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
Michael Timothy Grimes
19d68f613e
Making changes to bank select for multiport. The height of the nor gate using pbitcell was too short and one of the contacts violated drc. Extended height of nor by drc spacing violation so it could pass in multiport.
2018-09-27 02:01:32 -07:00
Michael Timothy Grimes
1ca0154027
Editting top level netlist for multiport. Now there are multiple control logic modules, one per port. Since diffent ports are driven by different clocks, also separating dff modules, one per port.
2018-09-26 19:10:24 -07:00
Michael Timothy Grimes
648e57d195
Altering bank select for port specific use. Altering bank select test to test different port types. Altering bank for control signal changes.
2018-09-26 14:53:55 -07:00
Michael Timothy Grimes
f1560375fc
Altering control logic for read ports and write ports, by including only read or write specific circuitry. Altering replica bitline layout to support multiport
2018-09-25 20:00:25 -07:00
Michael Timothy Grimes
2641841e4c
Making correction to replica bitline netlist for multiport
2018-09-20 15:21:22 -07:00
Michael Timothy Grimes
fc5f163828
Merge branch 'dev' of https://github.com/VLSIDA/PrivateRAM into multiport
2018-09-18 18:56:15 -07:00
Michael Timothy Grimes
43f5316eed
Correcting format of replica_pbitcell.
2018-09-13 18:51:52 -07:00
Michael Timothy Grimes
332976dd73
s_en will be shared amongst the sense amps of different ports, so I'm removing the distinct s_en signals from several modules.
2018-09-13 18:46:43 -07:00
Michael Timothy Grimes
5fd484ee5a
Replacing replica_pbitcell module with a more effiecient verision. replica_pbitcell is now a wrapper for pbitcell in replica_bitcell mode.
2018-09-13 16:53:24 -07:00
Matt Guthaus
f4389bdd8f
Add extra track spacings in some routes.
2018-09-13 14:12:24 -07:00
Matt Guthaus
3539887ee4
Updating ms_flop removal.
...
Updated characterizer for dff.
Added new setup/hold results for dff instead of ms_flop.
Removed ms_flop references in sram-base.
Fixed syntax errors in SCN3ME tech file.
2018-09-13 11:40:24 -07:00
Matt Guthaus
f8fc7c12b3
Remove ms_flop and replace with dff. Might break setup_hold tests.
2018-09-13 11:02:28 -07:00
Michael Timothy Grimes
e0b9989d85
Adding replica_pbitcell and test for multi-ported purposes. Altering replica bitline and test to accomodate.
2018-09-13 01:42:06 -07:00
Michael Timothy Grimes
7dfd37f79c
Altering control logic for multiport. Netlist changes only.
2018-09-12 00:59:07 -07:00
Michael Timothy Grimes
bfc855b8b1
Merge branch 'dev' of https://github.com/VLSIDA/PrivateRAM into multiport
2018-09-11 17:33:17 -07:00
Hunter Nichols
5dfa8bc2c6
Fixed known typos of the word transition.
2018-09-10 14:27:26 -07:00
Michael Timothy Grimes
0cdd3b99bf
Generalized wl names using bitcell's list_all_wl_names function to accomodate multiport
2018-09-09 22:42:52 -07:00
Michael Timothy Grimes
27427d4192
Bank level layout now works with pbitcell and 1RW. Column mux and array have been altered to accomodate multiport. Multiport changes to wordline driver were removed because they were unnecessary.
2018-09-09 22:06:29 -07:00
Michael Timothy Grimes
252ae1effa
add trailing 0 to web
2018-09-09 15:16:53 -07:00
Michael Timothy Grimes
68c00d7467
Removing din and dout list names in exchange for a read index. Write ports will always be in order (they will not skip numbers. Read ports however will skip the numbers assigned to wirte ports so the index of the read ports must be tracked.
2018-09-09 14:14:26 -07:00
Michael Timothy Grimes
1429b9ab1a
Commiting working version of multi-port that can generate a netlist on the sram level. Changes that will clean up the code are forthcoming.
2018-09-09 14:00:51 -07:00
Michael Timothy Grimes
c91735b23b
Merge branch 'dev' of https://github.com/VLSIDA/PrivateRAM into multiport
2018-09-08 18:56:58 -07:00
Michael Timothy Grimes
1a340c9c85
Merging latest changes from multiport with changes made to pbitcell. Changing select code from other modules and tests to reflect changes made to pbitcell.
2018-09-06 19:36:50 -07:00
Matt Guthaus
378993ca22
Found rotate bug in transformCoordinate. Cleaned up transFlags.
2018-09-04 16:35:40 -07:00
Matt Guthaus
763f1e8dee
Finish renaming replica bitcell and bitline pin names.
2018-09-04 14:03:15 -07:00
Matt Guthaus
6963a1092f
Make bitcell width/height not static. Update modules to use it for pbitcell.
2018-09-04 11:55:22 -07:00
Matt Guthaus
19c0e1638b
Merge remote-tracking branch 'origin/multiport' into multiport
2018-09-04 10:47:55 -07:00
Matt Guthaus
a346bddd88
Cleanup some items with new sram_config. Update unit tests accordingly.
2018-09-04 10:47:24 -07:00
Michael Timothy Grimes
af0756382f
Merging changes and updating multiport syntax across several tests
2018-09-03 19:36:20 -07:00
Michael Timothy Grimes
1e5924d1b7
Adding multiported bank_sel pins
2018-09-03 17:35:00 -07:00
Michael Timothy Grimes
d3441c7ba4
Altering wordline driver to size for any bitcell. Editting multi-port test cases for sense amp array, write driver array, and wordline driver to least number of ports as a better test of spacing betwwen amps/drivers
2018-09-03 17:31:12 -07:00
Michael Timothy Grimes
f3cca7eea0
Altering sense amp array and write driver array so spacing between amps/drivers accomodates multiport. Also altering sense amp array and write driver array tests to include multiport cases.
2018-08-31 23:28:06 -07:00
Matt Guthaus
c3bd54696f
Merge branch 'dev' into multiport
2018-08-31 12:56:25 -07:00
Matt Guthaus
563ff77d44
Add sram_config class. Rename port variables for better description.
2018-08-31 12:03:28 -07:00
Matt Guthaus
93a6247f26
Unrotate vias in delay chain
2018-08-29 17:21:53 -07:00
Matt Guthaus
27bb1d2ee7
Rewrite blockage routines in router. Clean up GdsMill code.
2018-08-29 15:34:45 -07:00
Matt Guthaus
5386b7a0f4
Initial refactor of signal and supply router classes.
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
19d46f5954
Finalized separation of netlist/layout creation.
2018-08-27 14:18:32 -07:00
Matt Guthaus
0daad338e4
All modules have split netlist/layout.
2018-08-27 11:13:34 -07:00
Matt Guthaus
87f539f3a8
Separate netlist/layout for flop and precharge array.
2018-08-27 10:54:21 -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
Michael Timothy Grimes
8c73a26daa
Changing function names in bitcell and pbitcell to better reflect what values they're returning. Editting function calls in bitcell_array and bank accordingly.
2018-08-26 14:37:17 -07:00
Michael Timothy Grimes
8e3dc332f3
changed control signal names in bank select to accommodate multi-port changes in bank
2018-08-19 00:00:42 -07:00
Michael Timothy Grimes
19ca0d6c2a
Changing control logic names to match naming scheme for multi-port. din[0] to din0[0], s_en to s_en0, addr[0] to addr0[0], etc. Sram level should pass unit tests for single port but will not currently pass for multi-port
2018-08-18 16:51:21 -07:00
Michael Timothy Grimes
0f8da1510e
Reverting pin name changes of precharge cell and array back to 'bl' and 'br'. Also clarifying bl and br init parameters to reflect that they refer to the bitcell lines.
2018-08-18 15:27:07 -07:00
Michael Timothy Grimes
e4a94e8597
Merging changes to bank. Bank has been altered to accommodate multiport. Single port still passes unit test, though some control signal names have been changed to have a following 0 (e.g. s_en to s_en0). Multiport does not pass drc yet, but can accurately generate a spice netlist.
2018-08-15 04:00:48 -07:00
Michael Timothy Grimes
e592d95146
Altered bank to accommodate multiport. Single port still works, though some of the control signal names have been changes to have a following 0 (e.g. s_en to s_en0). Multiport does not pass drc yet, but can generate an accurate spice netlist.
2018-08-15 03:36:40 -07:00
Michael Timothy Grimes
040340b49f
editted naming convention on precharge to accommodate multiport
2018-08-15 02:14:45 -07:00
Michael Timothy Grimes
8d97862f6e
altered precharge array and precharge unit tests to accommodate multiport
2018-08-15 00:55:23 -07:00
Matt Guthaus
3420b1002c
Connect data and column DFF clocks in 1 bank.
2018-08-14 10:09:41 -07:00
Matt Guthaus
5ff49d322d
bank_sel_bar only used for clk now
2018-08-13 15:14:52 -07:00
Matt Guthaus
f7f318d72e
Remove tri_en signals from bank control logic.
2018-08-13 14:47:03 -07:00
Matt Guthaus
49bee6a96e
Remove OEB signal since we split DIN/DOUT ports
2018-08-13 14:09:49 -07:00
Matt Guthaus
34736b7b3f
Remove carriage returns form python files
2018-08-07 09:44:01 -07:00
Michael Timothy Grimes
c2a9e91dba
Merge branch 'dev' of https://github.com/VLSIDA/PrivateRAM into multiport
2018-08-05 19:53:28 -07:00
Michael Timothy Grimes
ecd4612167
altered bitcell, pbitcell, and bitcell array modules to accomodate additional bitline reference functions
2018-08-05 19:43:59 -07:00
Matt Guthaus
01cbc71a2a
Limit sizes for dff_buf too. Add comments about restriction.
2018-07-27 08:17:50 -07:00
Matt Guthaus
b541efe959
Fix wide gnd rail spacing to inverter NMOS by adding size limit to pinv.
2018-07-27 07:23:18 -07:00
Matt Guthaus
e827c1b8c7
Make pinvbuf have unique names for GDS compliance.
...
Add back gating of w_en since write should happen in second half
or else we will have write and precharge simultaneously active.
2018-07-26 11:40:40 -07:00
Matt Guthaus
00a87d57ab
Modified pinvbuf to have a stage effort of 4 for driving the
...
clock bar to wordline enable.
Fixed comments in stimulus file to have right cycle numbers.
Removed clock gating on we signal since clock gating is already
done on the WL signals. It is redundant.
2018-07-26 11:28:48 -07:00
Matt Guthaus
b7525a14c2
Change DIN to DOUT in characterizer. Spacing dff flops down by m2 not m1 pitch.
2018-07-25 15:50:49 -07:00
Matt Guthaus
a4bfbe3545
Move dff_array pins to center of rail
2018-07-25 15:08:04 -07:00
Matt Guthaus
44f0e4a1de
Fix new offset coordinate syntax error
2018-07-25 13:47:36 -07:00
Matt Guthaus
16a084fde1
Add vdd/gnd at right end of rails. Rename some signals for clarity.
2018-07-24 14:15:11 -07:00
Matt Guthaus
aa2ea26db3
Convert control module to use hierarchy bus API
2018-07-24 10:35:07 -07:00
Matt Guthaus
b50f57ea3a
Remove control logic supply rails and replace with M3 supply pins
2018-07-24 10:12:54 -07:00
Matt Guthaus
45a53ed089
Rotate via in center for freepdk
2018-07-19 14:01:48 -07:00
Matt Guthaus
4c3bd0e42b
Move WL gnd contacts outside the cell for simplicity
2018-07-19 13:38:45 -07:00
Matt Guthaus
beee8229d1
Revert change. Add gnd pin to right on bitline load.
2018-07-19 13:26:12 -07:00
Matt Guthaus
ea53066966
Align RBL inverter with first load inverter in delay chain to aid supply connections
2018-07-19 11:02:13 -07:00
Matt Guthaus
311ab97bfc
Fix s_en stages to be even per Kevin's bug report. Assert minimum fanout to ensure vdd/gnd connections.
2018-07-19 10:51:20 -07:00
Matt Guthaus
128dfd5830
Add internal vdd/gnd connections for delay chain
2018-07-19 10:37:47 -07:00
Matt Guthaus
51958814a0
Fixing power via problems in freepdk45
2018-07-19 10:23:08 -07:00
Matt Guthaus
3f57853969
Use lower case names except for leaf cells and top level
2018-07-18 15:10:57 -07:00
Matt Guthaus
f43d4cc98f
Fix routing clk connections of dff arrays
2018-07-18 11:38:58 -07:00
Matt Guthaus
b8a3bc9b1a
Space hier decoder input connections along rails to avoid conflicts
2018-07-18 10:21:58 -07:00
Matt Guthaus
ef60b02a81
Add vdd/gnd pins to dff_array
2018-07-17 15:01:31 -07:00
Matt Guthaus
6133d54684
Fix spacing between adjacent decoders
2018-07-17 15:01:16 -07:00
Matt Guthaus
ffc866ef78
Single bank working except for channel routing error in 4-way case.
2018-07-17 14:40:04 -07:00
Matt Guthaus
7a69fc1bca
Add col addr routing and data routing
2018-07-17 14:24:44 -07:00
Matt Guthaus
0175c88a16
Convert predecodes to use create_bus api
2018-07-17 14:23:06 -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
afcc3563ae
Add new supplies to RBL and control logic
2018-07-16 12:58:15 -07:00
Matt Guthaus
93e830e800
Add new supplies to replica bitline
2018-07-16 10:49:43 -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
25cf57ede5
Push create bus functions down into layout class.
2018-07-10 10:06:59 -07:00
Matt Guthaus
98f1914e9f
Fix width of decoder with new input bus. Bank tests work again.
2018-07-10 09:31:41 -07:00
Matt Guthaus
94db2052dd
Consolidate metal pitch rules to new design class
2018-07-09 15:42:46 -07:00
Matt Guthaus
2e5d60ae87
Fix input height error for input rail pins
2018-07-09 14:45:27 -07:00
Matt Guthaus
e60d157310
Add input pin rails to hierarchical decoder for easier connections at SRAM level.
2018-07-09 13:16:38 -07:00
Matt Guthaus
af84742c19
Simplify m2 pitch calculation
2018-07-09 09:57:57 -07:00
Matt Guthaus
cc815f4c33
Fix sense amp spacing after modifying index to be increment by one.
2018-06-29 15:30:17 -07:00
Matt Guthaus
99fe3b87fe
Remove temp file. Fixing indexing of sense amp outputs.
2018-06-29 15:22:58 -07:00
Michael Timothy Grimes
e19a422696
simplfying calculations in pbitcell and changing pbitcell_array_test to check different port combinations
2018-05-31 17:39:51 -07:00
Michael Timothy Grimes
8f131ddb2f
commiting changes from most recent pull from dev
2018-05-22 17:30:51 -07:00
Michael Timothy Grimes
766042fe69
changed case of handmade bitcell pins from upper case to lower case. Made changes in other modules that are affected by this case. Only for SCMOS for this commit
2018-05-22 14:16:51 -07:00
Michael Timothy Grimes
5e4d4bf6cd
resolved conflicts with bitcell_array after PrivateRAM merge
2018-05-22 14:12:14 -07:00
Michael Timothy Grimes
b5df0cc30a
Merging branch with PrivateRAM dev
2018-05-18 15:15:31 -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
0e35937da5
Commit local changes. Forgot what the status is.
2018-05-11 09:15:29 -07:00
Michael Timothy Grimes
3971835f24
changed pbitcell_array tests in regards to addition of read/write ports in pbitcell
2018-05-10 09:40:43 -07:00
Matt Guthaus
875eb94a34
Move bank select below row decoder, col mux, or col decoder.
2018-04-23 12:17:16 -07:00
Matt Guthaus
e04f53dc27
Rotate via
2018-04-23 09:18:34 -07:00
Matt Guthaus
269d553857
Move sense amp to tri gate routing to M3... not ideal.
2018-04-23 09:14:18 -07:00
Matt Guthaus
cd502895c4
Undoing last change.
2018-04-23 08:48:50 -07:00
Matt Guthaus
8ce3809cad
Divide index
2018-04-20 17:09:15 -07:00
Matt Guthaus
ed76a784d2
Remove power rails and ring.
2018-04-20 15:51:19 -07:00
Matt Guthaus
19a957a57c
Fix unattached label on sense amp out by changing layer.
2018-04-20 15:48:38 -07:00
Matt Guthaus
d734c05b71
Fix missing vdd pins and fix routing between sense amp, bitcell array and column mux.
2018-04-20 15:47:21 -07:00
Matt Guthaus
929122b6dc
Change default to scmos. Refactor add column mux.
2018-04-20 12:52:41 -07:00
Matt Guthaus
c75eafe085
Fix some errors
2018-04-18 09:37:33 -07:00
Matt Guthaus
63a8f7c653
Remove m2 from write driver
2018-04-16 16:15:35 -07:00
Matt Guthaus
bb1ec63c4f
Removed msf data flop from bank
2018-04-16 16:03:46 -07:00