jcirimel
a0eb9839ad
revert units on sp_lib, begin discrete tx simulation
2020-04-09 19:39:21 -07:00
mrg
7888e54fc4
Remove dynamic bitcell multiple detection.
...
Check for decoder bitcell multiple in tech file or assume 1.
PEP8 fixes.
2020-04-09 11:38:18 -07:00
Matt Guthaus
75bd2b46a5
OpenRAM v1.1.5
2020-04-09 10:02:15 -07:00
mrg
8a55c223df
Use single height for netlist_only mode
2020-04-09 09:48:54 -07:00
mrg
58fbc5351a
Change rows to outputs in hierarchical decoder
2020-04-08 17:05:16 -07:00
mrg
745450fadc
Syntax error
2020-04-08 17:04:50 -07:00
mrg
cddfaa0dc8
Tech dependent fudge factor
2020-04-08 17:04:14 -07:00
mrg
ade3b78711
Add exception errors file
2020-04-08 16:55:45 -07:00
mrg
0c27942bb2
Dynamically try and DRC decoder for height
2020-04-08 16:45:28 -07:00
Hunter Nichols
4103745de2
Merged with dev, fixed conflict in ptx
2020-04-08 02:33:05 -07:00
Hunter Nichols
95363856e4
Added logical effort and input load for ptx module.
2020-04-08 02:29:57 -07:00
mrg
7872b6a68c
Merge branch 'dev' into tech_migration
2020-04-07 10:42:05 -07:00
mrg
a3797094d0
Swap lvs and sp dimensions for s8
2020-04-07 10:37:49 -07:00
mrg
c8c74e8b69
Fix lvs_write in sram class
2020-04-06 15:20:59 -07:00
mrg
f20246abdc
Merge branch 'dev' of github.com:VLSIDA/PrivateRAM into dev
2020-04-06 14:08:45 -07:00
mrg
cd8dc8e20b
Output lvs model instead of spice model
2020-04-06 14:08:38 -07:00
mrg
a12b5d9e6c
Split decoder pbitcell tests
2020-04-06 13:31:31 -07:00
Jesse Cirimelli-Low
b59c789dec
remove whitespace
2020-04-05 03:58:26 -07:00
Jesse Cirimelli-Low
beef9441b7
fix pin check debug typo
2020-04-05 02:55:15 -07:00
Jesse Cirimelli-Low
8b33cb519f
Merge branch 'dev' into custom_mod
2020-04-03 17:05:56 -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
f105c9ab36
Netlist only in verilog test
2020-04-02 12:43:19 -07:00
mrg
1d5e5e3607
Don't run lvs/drc or route supplies in verilog test
2020-04-02 12:42:28 -07:00
mrg
67de7efd49
Fix syntax error. No DRC/LVS in netlist only mode.
2020-04-02 11:31:28 -07:00
mrg
9106e22b58
Fix typo and syntax error.
2020-04-02 10:37:21 -07:00
mrg
5349323acd
PEP8 cleanup. DRC/LVS returns errors.
2020-04-02 09:47:39 -07:00
mrg
0d6c84036d
Adjust fudge factor for pin spacing.
2020-04-02 09:47:13 -07:00
mrg
a3683c5898
Separate pbitcell from hierarchical decoder
2020-04-01 16:39:47 -07:00
mrg
a9d3548be1
Refactor drc/lvs error output
2020-04-01 15:54:06 -07:00
Jesse Cirimelli-Low
cdf0315a90
Merge branch 'dev' into custom_mod
2020-04-01 15:35:33 -07:00
mrg
3b662026d2
pnand3 constant hack for input separation
2020-04-01 11:36:04 -07:00
mrg
7956b63d9f
Add licon option to precharge
2020-04-01 11:26:45 -07:00
mrg
3e41664db6
Split precharge array to multiport and normal cell
2020-04-01 11:26:31 -07:00
mrg
3074cf3b86
Small format cleanup
2020-04-01 11:15:29 -07:00
mrg
da334e47aa
Separate pbitcell tests for precharge
2020-04-01 11:14:50 -07:00
mrg
bc9cbe70a7
Poly overlap doesn't convert to tx device
2020-04-01 09:42:07 -07:00
Jesse Cirimelli-Low
6e2a5d7a1a
set sram output cap in characterizer to be 4x dff input cap
2020-04-01 04:24:43 -07:00
mrg
d916322b74
PEP8 updates
2020-03-31 10:15:46 -07:00
Joey Kunzler
b0d2946c80
update to sense amp and write driver modules
2020-03-30 20:00:32 -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
1e3734cb26
Hack to fix pnand3 in freepdk45
2020-03-26 11:08:53 -07:00
Jesse Cirimelli-Low
341bde7a48
Merge branch 'dev' into custom_mod
2020-03-26 02:40:37 -07:00
mrg
2f353187ba
Skywater extraction mode for si unit scales
2020-03-24 12:41:15 -07:00
mrg
1e2163c3a6
Hack for pnand3 pin spacing
2020-03-24 12:40:41 -07:00
mrg
e9d0db44fd
Add li_stack contact to ptx and pgate if it exists.
2020-03-23 16:55:38 -07:00
mrg
f491876a5a
Move up B input in pnor2
2020-03-23 13:49:08 -07:00
mrg
c15b4167b6
Merge branch 'dev' into tech_migration
2020-03-23 11:57:03 -07:00
mrg
f598a359d5
Remove unused contact in pnor2
2020-03-23 11:55:17 -07:00
mrg
717cbb0fe5
Remove unused contact in pnand3
2020-03-23 11:52:19 -07:00
mrg
0ee6963198
Remove unused contact in pnand2
2020-03-23 11:46:21 -07:00
mrg
f21791a904
Add source drain contact options to ptx.
2020-03-23 11:36:45 -07:00
Aditi Sinha
b75eeb7688
Merge branch 'dev' into bisr
2020-03-22 21:58:04 +00:00
Aditi Sinha
a5afbfe0aa
Fixed errors in extra rows characterization
2020-03-22 20:54:49 +00:00
mrg
9df99beb28
Merge branch 'tech_migration' into dev
2020-03-06 15:03:46 -08:00
mrg
fd7af7fc25
Matt sucks skip test
2020-03-06 15:03:31 -08:00
mrg
c5a1be703c
Rotate via and PEP8 formatting
2020-03-06 13:39:46 -08:00
mrg
23501c7b35
Convert pnand+pinv to pand in decoders.
2020-03-06 13:26:40 -08:00
mrg
1a2efd77ad
Move rbl route away from bitcell array
2020-03-06 09:48:20 -08:00
mrg
ee18f61cbf
Route RBL to edge of bank.
2020-03-06 09:03:52 -08:00
mrg
05f9e809b4
PEP8 Formatting
2020-03-05 16:27:35 -08:00
mrg
6506622dfb
PEP8 Formatting
2020-03-05 16:20:21 -08:00
mrg
5b23653369
PEP8 Formatting
2020-03-05 16:13:49 -08:00
mrg
ad98137cd4
Merge branch 'dev' into tech_migration
2020-03-05 14:18:06 -08:00
mrg
5312629702
Remove jog in precharge. Jog is in port data
2020-03-05 12:10:13 -08:00
mrg
9c1f0657dd
PEP8 Formatting
2020-03-05 11:58:36 -08:00
mrg
7adeef6c9e
PEP8 Formatting
2020-03-05 10:21:18 -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
Jesse Cirimelli-Low
f62016ad9f
revert dff_buf for no body contact
2020-03-03 12:40:08 +00:00
mrg
bb2305d56a
PEP8 format fixes
2020-02-28 18:24:39 +00:00
mrg
e1b97f58e1
Add instance center location
2020-02-28 18:24:09 +00:00
mrg
0b73979388
Space inputs by M1 pitch
2020-02-28 18:23:49 +00:00
mrg
073bd47b31
Add source/drain/gate to structure
2020-02-28 18:23:36 +00:00
Matt Guthaus
1617840ed3
Merge branch 'dev' of github.com:VLSIDA/PrivateRAM into dev
2020-02-27 08:50:19 -08:00
mrg
266d68c395
Generalize pgate width based on nwell/pwell contacts
2020-02-25 17:09:07 +00:00
Matt Guthaus
0db0c5a3a9
Update version to 1.1.4
2020-02-25 08:09:08 -08:00
mrg
e80677caf7
Merge remote-tracking branch 'origin/dev' into tech_migration
2020-02-25 00:36:43 +00:00
mrg
254e584e35
Cleanup and simplify ptx for multiple technologies
2020-02-25 00:36:22 +00:00
mrg
585a708e0c
Generalize y offsets in pnand3
2020-02-25 00:36:02 +00:00
mrg
d565c9ac72
Generalize input y offsets
2020-02-25 00:35:32 +00:00
mrg
6bcffb8efb
Change default cell height and fix contact width error
2020-02-25 00:34:59 +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
Bastian Koppelmann
0e641bf905
Remove write_driver_array.py.orig
...
this was the remainder of applying a diff using "patch". To avoid this
mistake, add the filetypes created by "patch" to the .gitignore.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-02-21 13:29:43 +01:00
Joey Kunzler
c9cb387912
fixed variable typo
2020-02-20 18:35:54 -08:00
Aditi Sinha
694ea5c20e
Characterization for extra rows
2020-02-20 17:31:58 +00:00
Aditi Sinha
34939ebd70
Merge branch 'dev' into bisr
2020-02-20 17:09:09 +00:00
Matt Guthaus
da4c69ab98
Merge branch 'pin-pull3' into dev
2020-02-20 09:07:58 -08:00
Aditi Sinha
88bc1f09cb
Characterization for extra rows
2020-02-20 17:01:52 +00:00
Hunter Nichols
c1cb6bf512
Changed layout input names of s_en AND gate to match the schematic
2020-02-19 23:32:11 -08:00
Joey Kunzler
d6987ac584
added purposes to addText(), removed reference to specific tech from gdsMill
2020-02-19 16:26:52 -08:00
Hunter Nichols
df2f981a34
Adds checks to prevent characterization of redundant corners.
2020-02-19 15:59:26 -08:00
Hunter Nichols
e4fef73e3f
Fixed issues with bitcell measurements variable names, made target write ports required during characterization
2020-02-19 15:34:31 -08:00
Hunter Nichols
843fce41d7
Fixed issues with sen control logic for read ports.
2020-02-19 03:06:11 -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
680dc6d2c7
sense_amp/array: Remove hardcoded pin names
...
all pin names should be wrapped into a function/property. This ensures
that there is exactly one place to change the name.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-02-17 15:20:06 +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
c06cb2bfc2
write_driver/array: Remove hardcoded pin names
...
all pin names should be wrapped into a function/property. This ensures
that there is exactly one place to change the name.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-02-17 14:23:26 +01:00
Bastian Koppelmann
656fdd1008
port_data: Refactor channel_route/connect_bitlines()
...
both functions share a lot of code and are passing around a lot of data
under similar names (inst1, inst1_start_bit, inst1_bl_name, ...). Thus
we group all these elements in a named tuple to ease passing around
these elements.
All callers of channel_route/connect_bitlines() either pass in the bl/br
names or rely on "br_{}"/"bl_{}" as defaults. These hard coded values
should be determined by the instances. Thus we get the bitline names
based on the instances passed in. The callers only provide a template
string, to take care of the case that bitlines are called "bl_out_{}".
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-02-17 14:20:03 +01:00
Bastian Koppelmann
5e1f64c8f9
modules/port_data: Add get_bl/br_name method
...
if we rely on the names of the submodules (sense_amp_array,
write_driver_array, etc.) for port_data's pins, we get into trouble on
multiport SRAMs. To avoid this we use explicit names for br/bl depending
on the port number in port_data. Now each submodule does no longer need to
figure out the right name depending on the port number.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-02-17 14:18:32 +01:00
Joey Kunzler
125bcafb3e
fixed purposes for gdsMill
2020-02-15 15:00:30 -08:00
Bastian Koppelmann
87b5a48f9e
bitcell: Remove hardcoded signal pins
...
use names provided by the tech file, which can be overriden by the
technology.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-02-12 15:37:51 +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
Bastian Koppelmann
f6302caeac
replica_bitcell_array: Connect bitcells based on bitcell bl/br/wl names
...
this allows us to override the bl/br/wl names of each bitcell.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-02-12 15:37:47 +01:00
Bastian Koppelmann
f9babcf666
port_data: Each submodule now specifies their bl/br names
...
before the names of bl/br from the bitcell were assumed. If we want to
allow renaming of bl/br from bitcells, we have to seperate the other
modules from that. Note, that we don't touch every occurence of bl/br,
but only the once necessary that pin renaming of the bitcell works.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-02-12 15:00:50 +01:00
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
mrg
f7915ec55e
Route to top of NMOS to prevent poly overlap nmos
2020-02-10 17:12:39 +00:00
jcirimel
101eb28112
revert example scn4m to non netlist only
2020-02-09 23:52:11 -08: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
4d85640a00
Change col addr spacing to col addr size
2020-02-07 22:20:16 +00:00
mrg
2ff058f5d5
PEP8 Cleanup and reverse pitch offset of col addr routing
2020-02-06 22:59:30 +00:00
mrg
4b06ab9eaf
Move port 2 column address bus down.
...
PEP 8 cleanup.
2020-02-06 19:46:10 +00:00
mrg
5e514215d5
Force vertical vias on pnand3
2020-02-06 16:44:19 +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
b107934672
fix styling
2020-02-06 12:15:52 +00:00
Jesse Cirimelli-Low
3a06141030
add simple sram sizing for netlist only
2020-02-06 12:10:49 +00:00
mrg
596302d9a9
Update pgate well and well contacts.
...
Extend well left and right past a cell boundary.
Use asymmetric well contacts.
2020-02-05 18:22:45 +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
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
mrg
304971ff60
Fix ptx so nmos and pmos have same active offset and gates align
2020-02-04 17:38:35 +00:00
mrg
53217e4030
Check min well width in contact and redo position
2020-02-04 17:37:58 +00:00
mrg
5aed893725
Add nwell/pwell tap test
2020-02-03 18:41:06 +00:00
mrg
34c9b3a0a5
Fix well offset computation for PMOS
2020-02-03 17:37:53 +00: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
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
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
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
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
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
mrg
aa8f389f28
Add fudge factor to pbitcell wells
2020-01-24 17:45:24 +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
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
Bastian Koppelmann
2c610036b2
router/supply_grid_router: Print init time to the user
...
this can take considerable amount of time, so the user knows that
useful work is done.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-03 12:24:14 +01:00
Bastian Koppelmann
c0c89e465a
vector: Implement hash cache for vector3d and vector
...
this gives us a small runtime improvement in the router.
For FreePDK45 word_size=8, num_words=256
Improved
*** Maze routing supplies: 89.8 seconds
** Routing: 279.3 seconds
Non-improved
*** Maze routing supplies: 105.1 seconds
** Routing: 293.5 seconds
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2020-01-03 12:16:10 +01:00
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
Matthew Guthaus
a6f5e59e18
Remove unused layers and simplify layer check to work without it.
2019-12-23 21:49:47 +00:00
Matthew Guthaus
082f575e2a
Use active_width in ptx again despite colliding with DRC rule
2019-12-23 21:45:09 +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
9ad06a7770
Move write mask vias to center to avoid data pins.
2019-12-20 11:48:27 -08:00
Matt Guthaus
89396698ef
Non-preferred via in pnand active
2019-12-20 10:36:14 -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
Matt Guthaus
0da8164ea6
Remove some unnecessary via directions.
2019-12-19 13:54:50 -08:00
Matt Guthaus
b7d78ec2ec
Fix ptx active contact orientation to non-default M1 direction.
2019-12-19 12:54:10 -08:00
Bastian Koppelmann
11760a9993
sram_factory: Add check for duplicate module name
...
sram_factory cannot handle duplicate module name, thus we bail out and
raise an error if a user attempts that.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2019-12-19 16:31:52 +01: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
Matt Guthaus
36cb675150
Fix minwidth for multiple via bug.
2019-12-18 09:30:00 -08: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
Bastian Koppelmann
451ef4d896
sram_factory: Allow a prefered module name
...
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2019-12-18 17:33:47 +01: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
Matt Guthaus
aceaa9fb21
Standardize contact names.
2019-12-17 15:55:20 -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
Matthew Guthaus
449b0a7c28
Make wire test programmatic
2019-12-17 22:36:38 +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
d3a2c46cb9
Remove some contact tests
2019-12-16 17:15:29 -08:00
Matt Guthaus
6058af994c
Fix ignore gds files
2019-12-16 15:39:32 -08:00
Matt Guthaus
3eb0dad06a
Remove cells from DRC/LVS in the blackbox tech list.
2019-12-16 15:33:30 -08:00
Matt Guthaus
acbbbe9403
Make exception more readable.
2019-12-16 12:07:40 -08:00
Matt Guthaus
f30d0b9197
Fix KeyError for bitell types.
2019-12-16 12:04:33 -08:00
Matt Guthaus
5176a70f84
Add comments to module importing routines
2019-12-16 10:21:24 -08:00
Matt Guthaus
2a9129ef45
Small fix to tech and config over-rides
2019-12-16 10:11:26 -08:00
Matt Guthaus
be4893839b
Remove old drc/lvs override name
2019-12-16 10:05:52 -08:00
Bastian Koppelmann
306c0b92c3
globals: Add tech module path to Pythonpath if it exists
...
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2019-12-16 16:56:16 +01:00
Bastian Koppelmann
74cd4f989d
Remove hardcoded module class names
...
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2019-12-16 16:56:06 +01: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
f71cfe0d9d
Generalize active and poly stacks
2019-12-13 14:56:14 -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
8d3f1d19cb
Fix missing rule
2019-12-11 18:02:32 -08:00
Matt Guthaus
76f7019432
Merge branch 'dev' into tech_migration
2019-12-11 17:59:51 -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
31de5ab87e
Merge remote-tracking branch 'bkoppelmann/master' into dev
2019-12-11 08:46:52 -08:00
Bastian Koppelmann
928b02aa1f
gdsMill: Fix reader/writer ignoring the 'DATATYPE' of 'PATH' records
...
most readers (like KLayout/Calibre) will not open gds files omiting the
DATATYPE.
Signed-off-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de>
2019-12-11 10:47:38 +01: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
Matt Guthaus
4a1b10ff0d
Remove extra cast
2019-12-05 21:33:13 -08:00
Matthew Guthaus
f3286fb0c2
Don't add boundary to ptx
2019-12-06 02:37:12 +00: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
Matthew Guthaus
8f473b26a9
Add replica bitcell test for 1 port
2019-12-05 01:14:06 +00:00
Matthew Guthaus
d519c00aa1
Fix contact order in test
2019-12-05 01:06:31 +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
0d35941241
Fix missing dbUnit conversion in gdsMill
2019-12-03 12:06:58 -08:00
Matt Guthaus
7b9e7ff35b
Nominal corner only for sim tests. Netlist only for speed.
2019-11-30 12:48:25 -08:00
Matt Guthaus
615c24f7bc
Merge branch 'dev' into tech_migration
2019-11-30 12:38:35 -08:00
Matt Guthaus
6ef1b6a4ec
Blackbox option for DRC waivers
2019-11-29 15:50:32 -08:00
Matt Guthaus
46c2cbd2d9
Check nominal_corner_only in new corner creation routine
2019-11-29 14:47:02 -08:00
Matt Guthaus
bedae87315
Only use max/min and typical corner
2019-11-29 13:31:44 -08:00
Matt Guthaus
2a912dab7a
Remove unused config files
2019-11-29 12:35:35 -08:00
Matt Guthaus
0cdd3af1aa
Change default nominal corners to false and enable in test config.
2019-11-29 12:08:53 -08:00
Matt Guthaus
d511f648c6
Move DRC/LVS/PEX tools to tech file.
2019-11-29 12:01:33 -08:00
Matt Guthaus
abd8b0a23a
Only setup bitcell when running top-level OpenRAM
2019-11-26 13:54:37 -08:00
Matt Guthaus
b71d630643
None for layer means unused.
2019-11-26 13:34:39 -08:00
Matt Guthaus
04045cf672
Fix syntax error
2019-11-26 13:24:19 -08:00
Matt Guthaus
f4599b7121
Default tools are calibre except for SCMOS
2019-11-26 13:23:18 -08:00
Matt Guthaus
102758881a
Use layer instead of special flags for wells
2019-11-26 13:22:52 -08:00
Matt Guthaus
909321326d
Ignore unused layers
2019-11-26 13:21:29 -08:00
Matt Guthaus
67a0928303
Merge branch 'dev' into tech_migration
2019-11-21 11:02:33 -08:00
Matt Guthaus
982e12be5e
Increment minor version
2019-11-21 11:00:22 -08:00
Matt Guthaus
807923cbf1
Ignore pycache dirs. Fix output error message.
2019-11-21 10:11:19 -08:00
Matt Guthaus
190c5a078e
Fix permissions on pwrite_driver test
2019-11-20 11:49:39 -08:00
Matt Guthaus
3364f47e56
Fix wrong supply voltage in config files.
2019-11-20 09:50:27 -08:00
Matt Guthaus
240c416100
Remove extra print
2019-11-17 10:40:01 -08:00
Matthew Guthaus
cdf01c6c23
Fix test 30 for generic configs
2019-11-17 00:49:38 +00:00
Matthew Guthaus
b3fb4e3183
Make unit test configs generic to tech_name
2019-11-17 00:44:31 +00:00
Matthew Guthaus
b3b3cf0210
Merge remote-tracking branch 'origin/dev' into tech_migration
2019-11-17 00:15:18 +00:00
Matthew Guthaus
aca99b87bc
Fix config for tests 30
2019-11-16 22:22:30 +00:00
Matthew Guthaus
0b3d2fe9de
Undo pdriver size change for now.
2019-11-16 19:54:39 +00:00
Matthew Guthaus
c4cf8134fe
Undo changes for config expansion. Change unit tests to use OPENRAM_HOME.
2019-11-15 18:47:59 +00:00
Aditi Sinha
2c7aa5d0da
Non-power of 2 address decode tentative
2019-11-15 03:59:57 +00:00
Matthew Guthaus
7e9d08206c
Fix config import to be location independent
2019-11-14 20:18:18 +00:00
Matthew Guthaus
131f4bda4a
Add layer-purpose GDS support. Various PEP8 fixes.
2019-11-14 18:17:20 +00:00
Matthew Guthaus
bba6995653
Call debugger if debug_level more than 0 and an error.
2019-11-08 19:42:09 +00:00