OpenRAM/compiler
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
..
base base/pin_layout: Implement hash cache 2020-01-03 11:39:59 +01:00
bitcells Remove some unnecessary via directions. 2019-12-19 13:54:50 -08:00
characterizer Check nominal_corner_only in new corner creation routine 2019-11-29 14:47:02 -08:00
datasheet Convert capital names to lower case for consistency 2019-08-21 13:45:34 -07:00
drc Clean up and generalize layer rules. 2019-12-17 11:03:36 -08:00
example_configs Remove old drc/lvs override name 2019-12-16 10:05:52 -08:00
gdsMill Merge remote-tracking branch 'bkoppelmann/master' into dev 2019-12-11 08:46:52 -08:00
modules Move write mask vias to center to avoid data pins. 2019-12-20 11:48:27 -08:00
pgates Non-preferred via in pnand active 2019-12-20 10:36:14 -08:00
router Add layer-purpose GDS support. Various PEP8 fixes. 2019-11-14 18:17:20 +00:00
sram sram_base: Instantiate "dff_array" and "bank" through sram_factory 2019-12-18 17:33:50 +01:00
tests Fix ptx active contact orientation to non-default M1 direction. 2019-12-19 12:54:10 -08:00
verify Move DRC/LVS/PEX tools to tech file. 2019-11-29 12:01:33 -08:00
Makefile Clean up Makefile for unit tests 2018-12-05 12:58:10 -08:00
debug.py Add layer-purpose GDS support. Various PEP8 fixes. 2019-11-14 18:17:20 +00:00
gen_stimulus.py Remove some flake8 errors/warnings. 2019-10-02 23:26:02 +00:00
globals.py sram_factory: Give proper priority to overrides 2019-12-19 15:58:00 +01:00
openram.py Only setup bitcell when running top-level OpenRAM 2019-11-26 13:54:37 -08:00
options.py Blackbox option for DRC waivers 2019-11-29 15:50:32 -08:00
run_profile.sh Convert pin map to a set for faster membership. 2019-04-01 15:45:44 -07:00
sram_factory.py sram_factory: Add check for duplicate module name 2019-12-19 16:31:52 +01:00
view_profile.py Remove some flake8 errors/warnings. 2019-10-02 23:26:02 +00:00