mrg
8507881ea8
Merge branch 's8_single_port' into dev
2020-11-18 13:59:43 -08:00
jcirimel
50a0b88ef8
fix typo
2020-11-18 11:02:40 -08:00
jcirimel
520b496611
check for cell prop names list
2020-11-18 10:47:05 -08:00
mrg
305b546ad5
PEP8 cleanup
2020-11-17 16:56:00 -08:00
mrg
02c1fac3b8
Remove partial Verilog output
2020-11-17 16:51:08 -08:00
Hunter Nichols
ac425643a0
Merge branch 'dev' into characterizer_bug_fixes
2020-11-17 13:22:56 -08:00
Hunter Nichols
eaf285639a
Added debug measurements along main delay paths in SRAM. WIP.
2020-11-17 12:43:17 -08:00
mrg
baae28194b
Add custom cell custom port order code. Update setup/hold to use it.
2020-11-17 11:12:59 -08:00
mrg
86799ae3ff
Small bug fixes related to new name mapping.
2020-11-16 13:42:42 -08:00
mrg
1d729e8f02
Move pin name mapping to layout class.
2020-11-16 11:04:03 -08:00
mrg
93e94e26ec
Get vdd/gnd from properties if it is defined.
2020-11-16 10:14:37 -08:00
mrg
e4bc2c4914
Update property settings with getters/setters
2020-11-14 08:08:42 -08:00
mrg
2f994b8c0a
Change custom cells to use set_ports setter
2020-11-14 07:15:27 -08:00
mrg
b4342ac527
More cleanup
2020-11-13 17:29:20 -08:00
mrg
a2b17a271c
Port type order generated on the fly
2020-11-13 16:41:02 -08:00
mrg
01d191da40
clk_pin is redundant in DFFs
2020-11-13 16:23:27 -08:00
mrg
8021430122
Fix pbitcell erros
2020-11-13 15:55:55 -08:00
mrg
c472a94f1e
Rework bitcells.
...
Name them 1port and 2port consistently.
Allow cell overrides to cell_1rw and cell_2rw or other.
Will use 2rw for 1rw/1r, 2rw, 1w/1r, etc.
2020-11-13 10:07:40 -08:00
mrg
cf63499e76
Convert bitcells to 1port and 2port
2020-11-13 08:09:21 -08:00
mrg
198c0faf85
Remove special s8 6t names
2020-11-13 07:45:31 -08:00
mrg
662d4ea724
Merge remote-tracking branch 'private/drclvs' into dev
2020-11-12 16:01:07 -08:00
mrg
9eeab14639
Add comment before pininfo
2020-11-12 14:33:42 -08:00
mrg
190234df58
Add PININFO to outputs too
2020-11-12 12:12:53 -08:00
mrg
d4c4658c77
Clean up invalid routing layer error message
2020-11-12 09:43:08 -08:00
mrg
d3cb22c8c1
Fix pin vs module names issue #26
2020-11-12 09:33:48 -08:00
mrg
03dad01e4c
Use readspice to define ports from sp netlist in Magic extract.
2020-11-10 17:06:24 -08:00
mrg
66633a843b
Add PDK layer names to tech file
2020-11-09 09:10:43 -08:00
mrg
2c76a2680f
Adjust openram options.
...
Remove option -d (dontpurge) and replace with keeptemp
Add option -d (debug) to drop into pdb.
Add option -k (--keeptemp) to keep temp files
2020-11-05 13:12:26 -08:00
Matt Guthaus
844b850b74
Fix typo in 1w_1r bitcell
2020-11-03 17:14:45 -08:00
mrg
1de545fc8e
Fix row and col cap custom names by adding default.
2020-11-03 13:32:15 -08:00
mrg
29ac541b28
Refactor dynamic cell name to utilize base class
2020-11-03 13:18:46 -08:00
mrg
1890385be1
Use custom cells when needed.
2020-11-03 11:58:25 -08:00
mrg
cb3e9517bb
Use cell_properties to override cell names
2020-11-03 07:06:01 -08:00
mrg
da721a677d
Remove EOL whitespace globally
2020-11-03 06:29:17 -08:00
mrg
f9787eb878
Use bitcell_base for all bitcells. Fix missing setup_bitcell call
2020-11-02 17:00:15 -08:00
mrg
fa89b73ef8
PR from mithro + other changable GDS file names
2020-11-02 16:00:16 -08:00
Tim 'mithro' Ansell
95d77119c7
Add caches to GDS related functions in utils.py
...
* Cache the GDS reader.
* Cache the properties (size / pins / etc) measured from the GDS files.
Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-11-02 09:52:00 -08:00
mrg
f6c5f48b4c
Default channel route is true
2020-10-28 10:31:05 -07:00
mrg
acfec369d6
Add ptx cell properties
2020-10-28 09:54:15 -07:00
mrg
611a4155b9
Add initial custom layer properties.
2020-10-27 15:11:04 -07:00
mrg
5bff641c0a
Multiport constants can't be static
2020-10-27 09:28:21 -07:00
mrg
575f504e4b
Remove static method call
2020-10-27 09:26:40 -07:00
mrg
07ef43eaf8
Convert design class data to static
2020-10-27 09:23:11 -07:00
mrg
f23fe07893
Add custom layers without defaults
2020-10-26 16:37:00 -07:00
mrg
b45a7902c0
PEP8 cleanup
2020-10-26 13:13:38 -07:00
mrg
fcb7f42e48
Remove split_wl
2020-10-12 17:27:20 -07:00
mrg
3c2e8754e0
Search all shapes for boundary rather than specify structure
2020-10-08 14:04:19 -07:00
jcirimel
d40c3588ed
no wl for col end
2020-10-08 03:34:16 -07:00
jcirimel
4a1a7e637e
merge in dev
2020-10-07 11:54:07 -07:00
mrg
27d921d2db
Fix run-time bug for duplicate instance check
2020-10-06 16:26:35 -07:00
jcirimel
888646cdf9
merge in wlbuf and begin work on 32kb memory
2020-10-06 05:03:59 -07:00
mrg
b81cdab0d6
Use unique instance names for channel routes.
2020-10-01 07:43:06 -07:00
mrg
bd125e2ed3
Check for duplicate instance names.
2020-10-01 07:17:16 -07:00
mrg
0c280e062a
Fix func test with row/col of 0. PEP8 cleanup. Smaller global test case.
2020-09-29 11:35:58 -07:00
mrg
4b5bbe755f
PEP8 cleanup. Fix cur_slew bug.
2020-09-29 11:13:58 -07:00
mrg
d7e2340e62
Lots of PEP8 cleanup. Refactor path graph to simulation class.
2020-09-29 10:26:31 -07:00
mrg
4a987bef9a
Merge branch 'wlbuffer' into dev
2020-09-28 15:51:45 -07:00
mrg
88731ccd8e
Fix rounding error for wmask with various word_size
2020-09-28 09:53:01 -07:00
jcirimel
7f8edf6d7c
fix replica bitcell col
2020-09-23 00:36:08 -07:00
jcirimel
efdc171b14
make split wl specific to each port
2020-09-23 00:08:34 -07:00
jcirimel
fb6a665514
removed references to technology name
2020-09-22 18:33:03 -07:00
mrg
c7d32089f3
Create RBL wordline buffer with correct polarity.
2020-09-17 14:45:49 -07:00
jcirimel
d22164bd48
single port progess
2020-09-14 18:11:38 -07:00
mrg
71d86f88b0
Merge branch 'dev' into wlbuffer
2020-09-10 13:05:14 -07:00
mrg
8e91ec1770
Add check_pins function
2020-09-08 13:31:50 -07:00
Hunter Nichols
8bcbf005bf
Merge branch 'dev' into characterizer_bug_fixes
2020-09-04 02:25:01 -07:00
Hunter Nichols
13b1d4613c
Moved spice naming checking code from design to the spice base module
2020-08-31 14:36:13 -07:00
mrg
c1c1535210
Merge branch 'wlbuffer' into dev
2020-08-27 15:44:29 -07:00
Hunter Nichols
42f2ff679e
Removed dead code from delay and base module related to characterization
2020-08-27 15:40:41 -07:00
mrg
11a82b7283
Fixed local bitcell array for single and dual port
2020-08-27 14:03:05 -07:00
jcirimel
9cecf367ee
Merge branch 'dev' into pex
2020-08-17 17:49:41 -07:00
jcirimel
714b57d48e
Merge branch 'dev' into pex
2020-08-17 17:48:21 -07:00
mrg
3a692e2846
Comment updates
2020-08-17 14:35:39 -07:00
mrg
30976df48f
Change inheritance inits to use super
2020-08-06 11:33:26 -07:00
jcirimel
df4a231c04
fix merge conflicts
2020-07-21 11:38:34 -07:00
mrg
2ccf3aea3b
Set channel route height and width (of routes, not pins)
2020-07-20 13:25:47 -07:00
mrg
f87b427f76
Add parent to channel route for dumpign debug gds.
2020-07-20 12:03:25 -07:00
mrg
7385decbff
Add channel route cyclic VCG debugging.
2020-07-20 12:02:30 -07:00
mrg
9d5d632d1a
Pins may be below the channel.
2020-07-16 14:23:48 -07:00
mrg
ba3d32fa0c
Starting to implement minimizing channel router (not done)
2020-07-16 13:21:44 -07:00
mrg
e49236f8fc
Default drc and lvs errors is skipped.
2020-07-13 14:08:00 -07:00
mrg
716798baae
Convert all DRC and LVS routines to set member variables for drc_errors and lvs_errors.
2020-07-13 13:01:00 -07:00
mrg
2011974e01
Make drc and lvs errors a member variable. Run only once.
2020-07-13 12:49:24 -07:00
mrg
27166c75f0
Don't remove temp files during regular openram runs.
2020-07-03 07:00:56 -07:00
mrg
c340870ba0
Channel route dout wires as well in read write ports
2020-07-01 14:44:01 -07:00
mrg
3d0f29ff3a
Fix missing via LVS issues. LVS passing for some 20 tests.
2020-07-01 09:22:59 -07:00
mrg
c1fedda575
Modifications for min area metal.
...
Made add_via_stack_center iterative instead of recursive.
Removed add_via_stack (non-center) since it isn't used.
Add min area metal during iterative via insertion.
2020-06-30 15:07:34 -07:00
mrg
8cedeeb3d9
Widen pitch of control bus in bank.
2020-06-30 10:57:41 -07:00
Matt Guthaus
9b939c9a1a
DRC/LVS and errors fixes.
...
Only enact pdb if assert fails in debug.error.
Only run drc/lvs one time in parse_info by saving result.
Cleanup drc/lvs output.
2020-06-30 07:16:05 -07:00
Matt Guthaus
e97644c424
Only do reverse lookup on valid interconnect layers since layer numbers can be shared.
2020-06-29 14:42:24 -07:00
mrg
07d0f3af8e
Only copy end-cap pins to the bank level
2020-06-29 11:46:59 -07:00
mrg
47f541df0e
Fix bugs in channel route.
2020-06-28 16:58:28 -07:00
mrg
709535f90f
Fix right perimeter pin coordinate bug
2020-06-28 14:47:17 -07:00
mrg
bc3de9db05
Pick correct side of pin in channel route.
2020-06-28 14:28:18 -07:00
mrg
94d7000717
Reduce output clutter from gds write
2020-06-26 12:16:54 -07:00
mrg
567675ab31
PEP8 cleanup
2020-06-26 11:47:12 -07:00
mrg
d53abba479
Always route the channel route since it is it's own design.
2020-06-25 17:43:44 -07:00
mrg
f11afaa63d
Refactor channel route to be a design.
2020-06-25 17:30:03 -07:00
mrg
4bc3df8931
Add get_tx_insts and expand add_enclosure
2020-06-24 11:54:36 -07:00
mrg
cddb16dabc
Separate active and poly contact to gate rule
2020-06-24 09:17:39 -07:00
mrg
83001e1ab5
PEP8 formatting
2020-06-23 15:39:26 -07:00
mrg
e849a9b973
Use different LVS libs based on tech and sky130
2020-06-23 14:53:24 -07:00
mrg
031862c749
Add metal enclosure to base case of center via stack.
2020-06-23 11:56:50 -07:00
mrg
54120f8405
Add option for removing subckt/instances of cells for row/col caps
2020-06-22 12:35:37 -07:00
mrg
a13d535945
PEP8 cleanup
2020-06-22 11:33:02 -07:00
mrg
78be9f367a
Add brain-dead router pins to perimeter
2020-06-14 15:52:09 -07:00
mrg
8f1dc7eeea
Include mirror/rotate on translate_all boundary update
2020-06-13 06:50:53 -07:00
mrg
33a32101c9
DRC and LVS fixes for pinv_dec
2020-06-12 15:23:51 -07:00
mrg
443b8fbe23
Change s8 to sky130
2020-06-12 14:23:26 -07:00
mrg
e9780ea599
Add non-preferred directions for channel routes
2020-06-11 15:03:36 -07:00
mrg
7ad2d54a69
Add pin and label purposes
2020-06-11 11:54:51 -07:00
mrg
089331ced3
Add stdc bounding box too
2020-06-11 11:54:16 -07:00
mrg
098219d56c
Add npc enclosure to poly contacts
2020-06-11 11:53:59 -07:00
mrg
5e3332453b
Allow power pins to start on any layer besides m1
2020-06-10 10:15:23 -07:00
mrg
a28e747a02
Fix precharge offset. Move well rules to design class.
2020-06-09 15:28:50 -07:00
mrg
148521c458
Remove stdc layer
2020-06-09 13:48:47 -07:00
mrg
9cc36c6d3a
Bus code converted to pins. Fix layers on control signal routes in bank.
2020-06-08 11:01:14 -07:00
mrg
2fcecb7227
Variable zjog. 512 port address test. s8 port address working.
2020-06-04 16:01:32 -07:00
Joey Kunzler
7a602b75a4
keep dev routing changes to hierarchy_layout
2020-06-03 12:54:15 -07:00
Joey Kunzler
84021c9ccb
merge conflict 2 - port data
2020-06-02 16:32:08 -07:00
Joey Kunzler
001bf1b827
merge conflict - port data
2020-06-02 14:15:39 -07:00
mrg
620604603c
Fixed offset jogs
2020-06-02 10:08:37 -07:00
Joey Kunzler
b39579c109
temp drc fix for regression tests
2020-06-01 20:55:15 -07:00
mrg
4a67f7dc71
Thin-cell decoder changes.
...
Add hard decoder gates (nand, inv, pnan)
Add conditions for routing using LI layer in s8.
Generalize bus layers for decoders.
Move custom cells to own directory.
Fixed via directions, etc.
Add 4x16 hierarchical decoder and test case
2020-05-29 10:36:07 -07:00
Joey Kunzler
9a6b38b67e
merge conflict
2020-05-26 16:03:36 -07:00
mrg
848241a3ad
PEP8 cleanup
2020-05-11 16:22:17 -07:00
mrg
b7c66d7e07
Changes to simplify metal preferred directions and pitches.
...
Changes to allow decoder height to be a 2x multiple of bitcell height.
Split of control logic tests.
Fixed track spacing in SRAM and channel router
PEP8 cleanup.
2020-05-10 11:32:45 -07:00
mrg
dd73afc983
Changes to allow decoder height to be a 2x multiple of bitcell height.
...
Convert to use li layer in pgates.
Fix multifinger devices with li layers.
Simplify wordline driver input routing.
Fix power pin direction option update.
PEP8 cleanup
Changes to simplify metal preferred directions and pitches.
Split of control logic tests.
2020-05-10 06:56:22 -07:00
Joey Kunzler
e642b8521b
increase col_mux bitline spacing to fix cyclic vcg
2020-05-06 13:02:33 -07:00
Joey Kunzler
91dbbed9ba
added horizontal trunk route edit to vertical trunk route
2020-05-05 12:18:26 -07:00
Joey Kunzler
1b6634bb97
port data routing fix
2020-04-29 15:48:15 -07:00
Joey Kunzler
0bae652be9
fix merge conflicts
2020-04-23 11:51:46 -07:00
mrg
ab91d0ab1d
Add purpose to string output
2020-04-21 15:20:30 -07:00
mrg
dfbf6fe45c
Default is to use preferred layer directions
2020-04-20 15:33:53 -07:00
mrg
7f65176908
Configured bitline directions into prot_data
2020-04-20 14:23:40 -07:00
Joey Kunzler
7920b0cef9
m3 min area rounding fix
2020-04-17 12:36:48 -07:00
mrg
d1319d633d
Don't widen too short wires either
2020-04-16 11:02:54 -07:00
mrg
b347e3f7a8
Try both layers for reversed layer stacks.
2020-04-15 16:49:04 -07:00
mrg
94eb2afa36
Change to callable DRC rule. Use bottom coordinate for bus offsets.
2020-04-15 15:29:55 -07:00
mrg
43fe1ae023
Improve pitch computation
2020-04-15 11:16:45 -07:00
mrg
331a4f4606
Fix wire width bug in short jogs. PEP8 cleanup.
2020-04-15 09:48:42 -07:00
mrg
ade3b78711
Add exception errors file
2020-04-08 16:55:45 -07:00
mrg
cd8dc8e20b
Output lvs model instead of spice model
2020-04-06 14:08:38 -07:00
mrg
ab5dd47182
Ptx is in microns if lvs_lib exists
2020-04-03 14:06:56 -07:00
mrg
f358de78bb
Add optional lvs_lib netlists for LVS usage (sp_lib is for simulation)
2020-04-03 13:39:54 -07:00
mrg
8603d3edd6
PEP8 cleanup
2020-04-03 11:37:06 -07:00
mrg
2850b9efb5
Don't force check in lib characterization. PEP8 formatting.
2020-04-02 12:52:42 -07:00
mrg
67de7efd49
Fix syntax error. No DRC/LVS in netlist only mode.
2020-04-02 11:31:28 -07:00
mrg
5349323acd
PEP8 cleanup. DRC/LVS returns errors.
2020-04-02 09:47:39 -07:00
mrg
a9d3548be1
Refactor drc/lvs error output
2020-04-01 15:54:06 -07:00
mrg
9907daaffa
Min area only for multiple layers
2020-03-26 13:05:02 -07:00
mrg
d2c97d75a7
Add well contact and min area to power pin of precharge
2020-03-26 11:49:32 -07:00
mrg
ad98137cd4
Merge branch 'dev' into tech_migration
2020-03-05 14:18:06 -08:00
mrg
287a31f598
Precharge updates.
...
Enable different layers for bitlines.
Jog bitlines to fit precharge transistors for close proximity bitlines.
PEP8 cleanup.
2020-03-04 17:39:11 -08:00
Joey Kunzler
d7529ce526
Vdd/gnd via stacks now use perferred directions, added cell property to override
2020-03-04 17:05:19 -08:00
mrg
7ba9e09e12
Incomplete precharge layer decoupling
2020-03-04 22:23:05 +00:00
mrg
e1b97f58e1
Add instance center location
2020-02-28 18:24:09 +00:00
mrg
e80677caf7
Merge remote-tracking branch 'origin/dev' into tech_migration
2020-02-25 00:36:43 +00:00
mrg
35110a4453
Improve debug of non-manhattan error
2020-02-25 00:34:28 +00:00
Joey Kunzler
4c9b3c5864
Merge branch 's8_update' into dev
...
Add lpp to addText(), remove reference to specific technology in gdsMill
2020-02-24 14:02:18 -08:00
Joey Kunzler
c9cb387912
fixed variable typo
2020-02-20 18:35:54 -08:00
Joey Kunzler
d6987ac584
added purposes to addText(), removed reference to specific tech from gdsMill
2020-02-19 16:26:52 -08:00
Bastian Koppelmann
76256a2f1b
sense_amp: Allow custom pin names
...
we don't want to propagate the sense amp's bl/br names out of the
sense_amp_array. Thus the sense_amp_array gets them named as
"bl"/"br" again.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-02-17 15:20:12 +01:00
Bastian Koppelmann
9a12b68680
write_driver: Allow custom pin names
...
we don't want to propagate the write driver bl/br names out of the
write_driver_array. Thus the write_driver_array gets them named as
"bl"/"br" again.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-02-17 14:25:00 +01:00
Bastian Koppelmann
c97bad72db
custom_cell_properties: Add bitcell pin name API
...
this allows users to overrride the pin names to match the names of their
GDS.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-02-12 15:37:51 +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
jcirimel
b212b3e85a
s8 gdsless netlist only working up to dff array
2020-02-09 21:37:09 -08:00
Jesse Cirimelli-Low
3a06141030
add simple sram sizing for netlist only
2020-02-06 12:10:49 +00:00
mrg
04d254542d
Add general well_extend_active DRC in design class.
2020-02-05 18:22:22 +00:00
mrg
4526986de3
Update contact well support.
...
Add asymmetric tap overlap support in DRC rules.
Add static nwell and pwell contact in class for measurements.
2020-02-05 18:21:01 +00:00
mrg
53217e4030
Check min well width in contact and redo position
2020-02-04 17:37:58 +00:00
mrg
79391b84da
Cleanup and rename vias.
2020-01-30 01:45:33 +00:00
Bastian Koppelmann
9749c522d1
tech: Make power_grid configurable
...
this is the first step to allow engineers, porting technologies, more room
for routing their handmade cells.
For now, we don't allow the specification of power_grids where the lower layer
prefers to be routed vertically. This is due to the router not
connecting some pins properly in that case.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-28 12:06:34 +01:00
Bastian Koppelmann
988df8ebb9
hierarchy_layout: Add methods to create via stacks
...
this allows us to simplify add_power_pin() and gives a clean
API to create vias through multiple layers.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-28 11:47:32 +01:00
Jesse Cirimelli-Low
30604fb093
add multiport support for pex labels
2020-01-28 00:28:55 +00:00
Jesse Cirimelli-Low
d42cd9a281
pbitcell working with bitline adjustments
2020-01-27 10:03:31 +00:00
Matt Guthaus
e62beae805
Merge branch 'tech_migration' into dev
2020-01-25 12:03:56 -08:00
mrg
877ea53b7f
Fix conflicting boundary name
2020-01-24 21:24:44 +00:00
mrg
71cbe74017
Round middle position fix
2020-01-24 18:00:28 +00:00
Jesse Cirimelli-Low
1062cbfd7f
begin fixes to pbitcell, prepare multibank pex
2020-01-24 10:24:29 +00: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
Jesse Cirimelli-Low
5778901cfe
pull bitline labels to top level spice
2020-01-20 12:16:30 +00:00
mrg
306740f0f3
Add empty minarea function
2020-01-16 19:27:59 +00:00
mrg
262782cba0
Remove print, fix compare
2020-01-16 19:27:39 +00:00
mrg
a2387da29d
PEP format design
2020-01-16 19:26:57 +00:00
mrg
ea00258be9
Cleanup contact
2020-01-16 19:26:43 +00:00
Jesse Cirimelli-Low
2733c3bf3f
fix custom bitcell labeling; fix gds scaling in labeling
2020-01-15 09:00:02 +00:00
Bastian Koppelmann
c0c89e465a
vector: Implement hash cache for vector3d and vector
...
this gives us a small runtime improvement in the router.
For FreePDK45 word_size=8, num_words=256
Improved
*** Maze routing supplies: 89.8 seconds
** Routing: 279.3 seconds
Non-improved
*** Maze routing supplies: 105.1 seconds
** Routing: 293.5 seconds
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-03 12:16:10 +01:00
Bastian Koppelmann
7ff5121d8c
base/pin_layout: Implement hash cache
...
the hash value only depends of the properties 'rect' and 'layer' so we
only compute the hash if those values are changed. Otherwise we just
return the precomputed value. This gives us a major speedup (~10x) if
the hash is used as a key in a dict.
During the grouping of pins in analyze_pins() this gives the best
improvements. For example for FreePDK45 with num_bits=8, num_words=256
Improved
**** Analyzing pins: 20.9 seconds
** Routing: 293.8 seconds
** SRAM creation: 349.8 seconds
Non-improved
**** Analyzing pins: 267.9 seconds
** Routing: 537.5 seconds
** SRAM creation: 592.9 seconds
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-03 11:39:59 +01:00
Bastian Koppelmann
14e8a26246
base/pin_layout: Make rect and layer properties
...
only rect and layer are used to compute the hash for a pin. Having
those as properties allows us to cache the hash value and only update it
if either rect or layer are written.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-03 11:33:34 +01:00
Jesse Cirimelli-Low
3ab99d7f9c
update gds library, generalize geometry reverse transform function
2019-12-24 05:01:55 +00:00
Matthew Guthaus
bec12f5b94
Cleanup.
2019-12-23 21:16:08 +00:00
Matt Guthaus
4ad920eaf7
Small fixes to tech usage.
2019-12-23 08:42:52 -08:00
Matt Guthaus
9e8b03d6c2
Merge branch 'dev' into tech_migration
2019-12-19 16:23:22 -08:00
Matt Guthaus
b7d78ec2ec
Fix ptx active contact orientation to non-default M1 direction.
2019-12-19 12:54:10 -08:00
Matt Guthaus
36cb675150
Fix minwidth for multiple via bug.
2019-12-18 09:30:00 -08:00
Bastian Koppelmann
de6b207798
hierachy_layout: Move number of via arg to add_power_pins()
...
this allows custom modules to state how many vias they need
for power rails.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2019-12-18 17:33:43 +01:00
jcirimel
f0958b0b11
squashed update of pex progress due to timezone error
2019-12-18 03:03:13 -08:00
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