Matt Guthaus
c09005dab9
Redo logic for detecting bad bitlines
2019-08-10 17:32:36 -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
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
jsowash
9409f60237
Merge branch 'dev' into add_wmask
2019-08-07 09:42:55 -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
aae8566ff2
Update golden delays. Fix uninitialized boolean.
2019-08-05 15:45:59 -07:00
Matt Guthaus
4d11de64ac
Additional debug. Smaller psram func tests.
2019-08-05 13:53:14 -07:00
Matt Guthaus
a8d09acd40
Use ordered dict instead of sorting keys
2019-08-01 12:21:30 -07:00
Matt Guthaus
d403362183
Sort keys for random read address choice.
2019-08-01 11:32:49 -07:00
Hunter Nichols
b4ef0ec36d
Removed unused characterization module.
2019-07-30 20:33:17 -07:00
Hunter Nichols
24b1fa38a0
Added graph fixes to handmade multiport cells.
2019-07-30 20:31:32 -07:00
Hunter Nichols
c12dd987dc
Fixed pbitcell graph edge formation.
2019-07-30 00:49:43 -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
0c5cd2ced9
Merge branch 'dev' into rbl_revamp
2019-07-26 18:01:43 -07:00
Matt Guthaus
3327fa58c0
Add some signal names to functional test comments
2019-07-26 14:49:53 -07:00
Matt Guthaus
8ebc568e8b
Minor cleanup. Skip more tests until analytical fixed.
2019-07-26 08:33:06 -07:00
jsowash
de485182bc
Cleaned up comments about wmask.
2019-07-25 13:21:17 -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
54b312eaf9
Add return type
2019-07-24 17:00:38 -07:00
Matt Guthaus
2f03c594c5
Remove success initialization
2019-07-24 16:59:19 -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
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
fe0db68965
Refactor to share get_measurement_variant
2019-07-24 11:29:29 -07:00
Matt Guthaus
9cb96bda7d
Mostly formatting. Added write measurements.
2019-07-24 10:57:33 -07:00
Matt Guthaus
3df8abd38c
Clean up. Split class into own file.
2019-07-24 08:15:10 -07:00
jsowash
01493aab3e
Added wmask valuesto functional test through add_wmask()
2019-07-23 15:58:54 -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
72e16f8fe6
Added ability to do partial writes to addresses that have already been written to.
2019-07-22 11:19:14 -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
917a69723f
Fixed typo
2019-07-17 12:26:05 -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
jsowash
021d604832
Removed wmask from addwrite()
2019-07-15 16:48:36 -07:00
jsowash
ea2f786dcf
Redefined write_size inrecompute_sizes() to take the new word_size()
2019-07-15 14:41:26 -07:00
jsowash
dfa2b29b8f
Begin adding wmask netlist and spice tests.
2019-07-12 10:34:29 -07:00
jsowash
474ac67af5
Added optional write_size and wmask.
2019-07-03 10:14:15 -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
4f3340e973
Cleaned up graph additions to characterizer.
2019-06-25 16:37:35 -07:00
Hunter Nichols
33c17ac41c
Moved manual delay chain declarations from tech files to options.
2019-06-25 15:45:02 -07:00
Matt
d22d7de195
Reapply jsowash update without spice model file
2019-06-24 08:59:58 -07:00
Matt Guthaus
a234b0af88
Fix space before comment
2019-06-14 08:43:41 -07:00
Hunter Nichols
36214792eb
Removed some debug measurements that were causing failures.
2019-05-28 17:04:27 -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
412f9bb463
Added additional check to bitline to reduce false positives.
2019-05-17 01:56:22 -07:00
Hunter Nichols
03a762d311
Replaced constant string comparisons with enums
2019-05-16 14:18:33 -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
b30c20ffb5
Added graph creation to characterizer, re-arranged pin creation.
2019-05-14 01:15:50 -07:00
Hunter Nichols
b4cce65889
Added incorrect read checking in characterizer.
2019-05-13 19:38:46 -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
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
Hunter Nichols
97777475b4
Added additions to account for custom delay chains.
2019-03-28 17:16:23 -07:00
Hunter Nichols
50d3b4cb8d
Added some bitline measures to the model_checker
2019-03-19 15:03:57 -07:00
Hunter Nichols
910878ed30
Removed bitline measures until hardcoded signal names are made dynamic
2019-03-07 12:30:27 -08:00
Hunter Nichols
80a325fe32
Added corner information for analytical power estimation.
2019-03-04 19:27:53 -08:00
Hunter Nichols
ddeb40c9bf
Added lib test which generates multiple corner models. Only does process currently.
2019-03-04 16:27:10 -08:00
Hunter Nichols
0e96648211
Added linear corner factors in analytical delay model.
2019-03-04 00:42:18 -08:00
Hunter Nichols
816669b9ca
Merge branch 'dev' into multiport_characterization
2019-02-26 22:48:39 -08:00
Hunter Nichols
42bc6efb21
Added additional graphing and data collection to script
2019-02-26 20:06:35 -08:00
Matt Guthaus
583dc4410b
Revert bus bits back into pins
2019-02-22 16:22:27 -08:00
Jennifer Eve Sowash
1249dcc34d
Merge branch 'dev' into pdriver
2019-02-20 13:00:58 -08:00
Jennifer Eve Sowash
6d3a29328c
Fixed a bug with corner_name in lib.py remaining static.
2019-02-20 12:59:40 -08:00
Jesse Cirimelli-Low
e3ff9b53e9
fixed area not being found
2019-02-14 07:01:35 -08:00
Hunter Nichols
a4bb481612
Added tracking for available data.
2019-02-12 16:28:37 -08:00
Jesse Cirimelli-Low
36d8d98b17
Merge branch 'dev' into datasheet_gen
2019-02-08 12:05:04 -08:00
Jesse Cirimelli-Low
6cde6beafa
added documetation to functions
2019-02-07 06:33:39 -08:00
Hunter Nichols
d0edda93ad
Added more variance analysis for the delay data
2019-02-07 02:27:22 -08:00
Jesse Cirimelli-Low
e131af2cc3
power added to datasheet (finally)
2019-02-06 20:31:22 -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
Jesse Cirimelli-Low
c22025839c
datasheet now indicates if analytical or characterizer is used
2019-01-31 08:28:51 -08:00
Jesse Cirimelli-Low
21868e1b60
removed expanded process names from corners
2019-01-31 08:09:00 -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
c10c9e4009
Refactored some code and other additional improvements.
2019-01-29 23:02:28 -08:00
Hunter Nichols
242a63accb
Fixed issues introduced by pdriver additions in model unit test
2019-01-29 16:43:30 -08:00
Hunter Nichols
d1218778b1
Fixed merge conflicts
2019-01-28 22:33:08 -08:00
Jesse Cirimelli-Low
ed901aba5f
changed datetime to date
2019-01-28 10:29:27 -08:00
Hunter Nichols
6d3884d60d
Added corner data collection.
2019-01-22 16:40:46 -08:00
Hunter Nichols
5885e3b635
Removed carriage returns, adjusted signal names generation for variable delay chain size.
2019-01-18 00:23:50 -08:00
Hunter Nichols
5bbc43d0a0
Added data collection of wordline and s_en measurements.
2019-01-17 01:59:41 -08:00
Jesse Cirimelli-Low
0556b86424
html datasheet no longer dependeds on sram
2019-01-16 14:52:01 -08:00
Hunter Nichols
cc0be510c7
Added some data scaling and error calculation in model check.
2019-01-16 00:46:24 -08:00
Hunter Nichols
6152ec7ec5
Merge branch 'dev' into multiport_characterization
2019-01-15 16:33:39 -08:00
Matt Guthaus
a7dd62b0e5
falling_edge not negative_edge
2019-01-11 15:17:27 -08:00
Matt Guthaus
f0ab155172
Change dout to negative clock edge relative
2019-01-11 09:51:05 -08:00
Hunter Nichols
21663439cc
Added slews measurements to the model checker. Removed unused code in bitline delay class.
2019-01-09 22:42:34 -08:00
Matt Guthaus
94a6cbc28b
Remove extra bracket in pin blokc
2019-01-09 13:44:25 -08:00
Matt Guthaus
7e635d02be
Remove indices from pins in lib file
2019-01-09 12:00:00 -08:00
Jesse Cirimelli-Low
24161a1df2
Merge branch 'dev' into datasheet_gen
2019-01-07 18:18:46 -08:00
Matt Guthaus
2236ca40df
Make xa least priority since it fails functional tests.
2019-01-03 19:20:31 -08:00
Jesse Cirimelli-Low
6acc8c8902
removed print debug statement
2019-01-03 13:41:25 -08:00
Jesse Cirimelli-Low
53b7e46db4
fixed bug where retrieving git id would fail depending on cwd
2019-01-03 12:28:29 -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
Jesse Cirimelli-Low
c69e5fdb18
added compile time to datasheet
2019-01-02 10:30:03 -08:00
Jesse Cirimelli-Low
cc27736a45
moved DRC and LVS error reports to datasheet.info from datasheet.py
2019-01-02 10:14:45 -08:00
Hunter Nichols
66b2fcdc91
Added data parsing to measurement objects and adding power measurements.
2018-12-20 15:54:56 -08:00
Hunter Nichols
b10ef3fb7e
Replaced delay measure statement with object implementation.
2018-12-19 18:33:06 -08:00
Hunter Nichols
8eb4812e16
Made parasitic delay parameter in Freepdk45 more accurate, added stage names to delay model.
2018-12-17 23:32:02 -08:00
Hunter Nichols
e4065929c2
Added bitline threshold delay checks to delay tests.
2018-12-13 22:21:30 -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
0510aeb3ec
Merged with dev, removed commented out code.
2018-12-12 16:02:16 -08:00
Hunter Nichols
50f13eabce
Added better port selection to bitline measurements.
2018-12-12 15:59:20 -08:00
Hunter Nichols
6ac474d642
Added bitline measures with hardcoded names.
2018-12-12 00:43:08 -08:00
Hunter Nichols
82e074ebf0
Added initial structure for bitline measurements.
2018-12-11 14:06:11 -08:00
Hunter Nichols
b157fc58a1
Moved feasible period search from functional.py to tests.
2018-12-05 23:23:40 -08:00
Jesse Cirimelli-Low
cd0e763895
moved system call to datasheet.info generator
2018-12-05 17:35:35 -08:00
Hunter Nichols
ea55bda493
Changed s_en delay calculation based recent control logic changes.
2018-12-05 17:10:11 -08:00
Jesse Cirimelli-Low
7e475b376e
switch to git rev-parse solution for id parsing
2018-12-05 14:58:37 -08:00
Jesse Cirimelli-Low
7a20420030
get ORIG_HEAD with pre-commit hook
2018-12-05 13:38:09 -08:00
Hunter Nichols
0c3c58011b
Fixed delay test values.
2018-12-05 00:13:23 -08:00
Jesse Cirimelli-Low
5646660765
added git id to datasheet
2018-12-03 10:53:50 -08:00
Jesse Cirimelli-Low
9501b99df7
merged branch wtih dev
2018-12-03 09:47:34 -08:00
Hunter Nichols
722bc907c4
Merged with dev. Fixed conflicts in tests.
2018-12-02 23:09:00 -08:00
Matt Guthaus
3cfe74cefb
Functional simulation uses threshold for high and low noise margins
2018-11-28 16:55:04 -08:00
Hunter Nichols
b06aa84824
Functional tests now find a feasible period instead of using a heuristic. Bug found, trimming pbitcell netlists causes bit flips.
2018-11-23 18:55:15 -08:00
Hunter Nichols
5f954689a5
In delay.py, altered dummy address based on column mux. Added some hacks to make min_period work for srams with columns muxes.
2018-11-23 13:19:55 -08:00
Hunter Nichols
8257e4fe8c
Changed syntax in replica_bl tests, golden data to fit new values in delay tests.
2018-11-19 16:51:43 -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
Hunter Nichols
d3c47ac976
Made delay measurements less dependent on period.
2018-11-18 23:28:49 -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
Hunter Nichols
6e47de3f9b
Separated relative delay into rise/fall.
2018-11-14 23:34:53 -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
Jesse Cirimelli-Low
5c4ee911aa
added another VLSI logo and fixed control port numbering
2018-11-11 07:22:13 -08:00
Jesse Cirimelli-Low
4ba07e4b94
Complete rewrite of parser, all ports (except clock) added on multiport sheets
2018-11-10 20:23:26 -08:00
Jesse Cirimelli-Low
62f8d26ec6
Merge branch 'dev' into datasheet_gen
2018-11-10 10:58:35 -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
Jesse Cirimelli-Low
d6c0247ff2
added area to datasheet
2018-11-08 21:30:17 -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
7b10e3bfec
Convert port index lists to three simple lists.
2018-11-08 12:19:40 -08:00
Jesse Cirimelli-Low
781bd13cc1
Merge branch 'dev' into datasheet_gen
2018-11-07 10:08:45 -08:00
Hunter Nichols
9744bc516a
Merge branch 'dev' into multiport_characterization
2018-11-05 10:40:29 -08:00
Matt Guthaus
38dab77bfc
Add fixed seed to functional test during unit tests. Skip non-working tests after fixed seed.
2018-11-03 10:53:09 -07:00
Jesse Cirimelli-Low
fe196c23a9
added FF timing information
2018-10-30 22:32:19 -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
Jesse Cirimelli-Low
2da90c4b6a
fixed double counting of characterization tuple permutations
2018-10-27 12:04:10 -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
8e243258e4
Added updated 1rw 1r bitcell with a text boundary. Added bitcell array test for the bitcell.
2018-10-26 00:08:12 -07:00
Matt Guthaus
57fb847d50
Fix check for missing simulator type in characterizer
2018-10-25 09:08:56 -07:00
Michael Timothy Grimes
3202e1eb09
Altering comment code in simulation.py to match the needs of delay.py
2018-10-25 00:58:01 -07:00
Michael Timothy Grimes
40450ac0f5
Merge branch 'dev' of https://github.com/VLSIDA/PrivateRAM into multiport
2018-10-25 00:36:46 -07:00
Michael Timothy Grimes
ceab1a5daf
Adding debug comments to stim file for functional test and cleaning up comment code in simulation.py. Adding multiple tests for different mux configurations to functional unit tests.
2018-10-25 00:11:00 -07:00
Hunter Nichols
a711a5823d
Merged dev and fix conflicts in geometry.py
2018-10-24 10:52:22 -07:00
Matt Guthaus
cccde193d0
Add ngspice equivalents of RUNLVL
2018-10-24 10:31:27 -07:00
Matt Guthaus
5f17525501
Added run-level option for write_control and enabled fast mode in functional tests
2018-10-24 09:32:44 -07:00
Hunter Nichols
da1b003d10
Fixed multiport lib files not generating the correct number of signals. Move setup time from DOUT to DIN in lib file. Altered golden files with these changes.
2018-10-24 00:17:08 -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
Michael Timothy Grimes
2053a1ca4d
Improved debug comments for functional test
2018-10-22 01:09:38 -07:00
Jesse Cirimelli-Low
ab6afb7ca8
fixed html typos, added logo, added placeholder timing and current, began ports section
2018-10-17 19:27:09 -07:00
Matt Guthaus
5d6944953b
Fix char_result rename collision
2018-10-17 09:38:26 -07:00
Michael Timothy Grimes
a27cdb4fbc
Merge branch 'dev' of https://github.com/VLSIDA/PrivateRAM into multiport
2018-10-17 07:32:03 -07:00
Jesse Cirimelli-Low
afba54a22d
added analytical model support, added proper output with sram.py
2018-10-12 13:22:12 -07:00
Matt Guthaus
f7d1df6ca7
Fix trim spice with new names
2018-10-11 10:36:49 -07:00
Hunter Nichols
f30e54f33c
Cleaned up indexing in variable that records cycle times.
2018-10-10 00:02:03 -07:00
Hunter Nichols
3ac2d29940
Made delay.py a child of simulation.py. Removed duplicate code in delay and changed some in simulation
2018-10-09 17:44:28 -07:00
Hunter Nichols
a3bec5518c
Put worst case test under the hierarchy of a delay test. Added option for pex option to worst case test.
2018-10-09 00:36:14 -07:00
Hunter Nichols
fd806077d2
Added class and test for testing the delay of several bitcells.
2018-10-08 15:50:52 -07:00
Michael Timothy Grimes
6ef1a3c755
Improvements to functional test. Now will read or write in a random sequence, using randomly generated words and addresses, and using random ports in the multiported cases. Functional test still has some bugs that are being worked out so it will sometimes fail and sometimes not fail.
2018-10-08 06:34:36 -07:00
Jesse Cirimelli-Low
fa979e2d34
initial stages of html documentation generation
2018-10-06 21:15:54 -07:00
Hunter Nichols
7b4e001885
Altered web to only be generated for rw ports.
2018-10-04 15:08:12 -07:00
Hunter Nichols
371a57339f
Fixed bugs to allow characterization of multiple read ports. Improved some debug messages.
2018-10-04 14:09:09 -07:00
Hunter Nichols
6e0a1b8823
Fixed bugs in power simulations. Made regex raw strings to remove warnings
2018-10-04 14:09:09 -07:00
Hunter Nichols
c876bbfe73
Changed characterizer control generation to match recent changes in multiport.
2018-10-04 14:09:09 -07:00
Hunter Nichols
2e322be7f7
Added changes the control logic PWL generation to match changes made in stimuli.
2018-10-04 14:09:09 -07:00
Hunter Nichols
88f2238e03
Multiport variable bug fix and removed unused code.
2018-10-04 14:09:09 -07:00
Hunter Nichols
bb79d9a62d
Added regex pattern matching to trim_spice to handle multiport.
2018-10-04 14:09:09 -07:00
Hunter Nichols
e7f92e67d0
Fixed issues with inst_sram that prevented functional test from running after merge.
2018-10-04 14:09:01 -07:00
Hunter Nichols
6c537c4884
Made stim node names more ngspice friendly for interactive mode. Cleaned up cycle comments. Changed ground names in stim and added related comments.
2018-10-04 14:06:43 -07:00
Hunter Nichols
65edc70cfd
Made global names for pins types. Fixed bugs in tests.
2018-10-04 14:06:43 -07:00
Hunter Nichols
d2120d6910
Moved pin name creation from stimuli to delay and bug fix in find_feasible_period_one_port
2018-10-04 14:06:34 -07:00
Hunter Nichols
4586ed343f
Edited lib to support port indexing. Edited tests in reaction to name dict name changes. Cleaned up measurement value generation in delay.
2018-10-04 14:04:08 -07:00
Hunter Nichols
ab7d3510b5
Cleaned up result tables to be indexed by port and measurement name. Lib has not been updated, so it crashes there.
2018-10-04 14:04:08 -07:00
Hunter Nichols
346b188372
Improved on some hard coded values which determine the measurements.
2018-10-04 14:04:08 -07:00
Hunter Nichols
cfe15d48a4
Added changes to make changing the names of the measurements simple in delay.py. Results in some hardcoded values which is TODO for a fix.
2018-10-04 14:04:08 -07:00
Hunter Nichols
aa0d032c78
Cleaned the char_data to fit the previous style. Added print statements to load/slew sims.
2018-10-04 14:04:08 -07:00
Michael Timothy Grimes
cf4b216888
Correcting functional inheritance from simulation.
2018-10-04 13:55:59 -07:00
Michael Timothy Grimes
34d8a19871
Adding simulation.py for common functions between functional and delay tests. Updating functional test.
2018-10-04 09:29:44 -07:00
Michael Timothy Grimes
6d83ebf50f
updating debug messages in functional test
2018-09-30 22:10:11 -07:00
Michael Timothy Grimes
8a56dd2ac9
Finished functional test
2018-09-30 21:20:01 -07:00
Michael Timothy Grimes
26c6232564
Updating functional test. Test can now run a spice simulation and read the dout values from the timing files.
2018-09-28 23:38:48 -07:00
Michael Timothy Grimes
934959952b
Corrections to functional test that adds multiple cs_b signals per port
2018-09-21 09:59:44 -07:00
Michael Timothy Grimes
938ded3dd6
Adding functional test to characterizer and unit tests in both single and multiport
2018-09-20 15:04:59 -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
Hunter Nichols
91bbc556e8
Cleaned up control logic cycle creation in delay.py. Fixed bug which caused input data to be determined by the read ports.
2018-09-10 22:06:50 -07:00
Hunter Nichols
da6843af5b
Changed power logic in lib file writing. Syntax incorrect still for multiport. To be changed when top-level is done.
2018-09-10 19:33:59 -07:00
Hunter Nichols
5dfa8bc2c6
Fixed known typos of the word transition.
2018-09-10 14:27:26 -07:00
Hunter Nichols
5cab786e21
Cleaned up analyze and some of its helper functions to be less cluttered.
2018-09-07 17:50:09 -07:00
Hunter Nichols
83f6434476
Gave find_feasible_period a port input.
2018-09-07 00:53:11 -07:00
Hunter Nichols
1615de05e4
Fixed leakage power issue in test 21_hspice. Still requires more testing.
2018-09-06 18:26:08 -07:00
Hunter Nichols
a2bc82fe71
Fixed test 21_hspice. Leakage power is off.
2018-09-06 17:34:22 -07:00
Hunter Nichols
dd22f9acd5
Fixed issues with analytical sram test. Changed syntax errors in golden lib file.
2018-09-06 17:01:10 -07:00
Hunter Nichols
66c4782408
Fixed several syntax error regarding some multiport naming. Currently in debug mode.
2018-09-06 00:25:02 -07:00
Hunter Nichols
ad235c02c6
Added debug code which skips characterization and goes straight to writing the lib. Fixed some syntax issues in the lib file.
2018-09-05 23:27:13 -07:00
Hunter Nichols
3bde83bdbe
Added initial structure changes to lib. Crashes when writing to lib file.
2018-09-04 00:43:44 -07:00
Hunter Nichols
1af5bb3758
Remove code bloat and simplified port logic in some cases. Crashes while writing to lib.
2018-09-01 00:10:40 -07:00
Hunter Nichols
60088c2dfb
Added changes to lib to allow the default to run. Will crash with multiport options.
2018-08-31 00:42:56 -07:00
Hunter Nichols
6614c3eb51
Altered min_period algorithm to work for multiport. Works for default config but mostly untested for multiport options.
2018-08-30 22:43:56 -07:00
Hunter Nichols
5989a3c952
Expanded run_delay_stimulas to multiport. Bug Fixes as well.
2018-08-30 17:08:34 -07:00
Hunter Nichols
907b7310ee
Actually changed the noops default data in this commit.
2018-08-30 15:16:54 -07:00
Hunter Nichols
53fa6108e1
Changed most noops calls to have default input of all 0's. Changed parse_values to return dict even if some values fail.
2018-08-30 15:11:54 -07:00
Hunter Nichols
e32c1fdd23
Changed part (4) of analyze to use the updated measure names.
2018-08-30 01:18:34 -07:00
Hunter Nichols
78be724867
Edited find_feasible period to use dynamic naming on its measured values and edited the algorithm to work with multiport.
2018-08-30 00:11:14 -07:00
Hunter Nichols
02cf51d3be
Added generic parsing function to capture multiple values. This commit does not run and it messes up some naming conventions
2018-08-29 22:16:42 -07:00
Hunter Nichols
4b515fe1ac
Changed create_test_cycles to have targeted ports for characterization rather than all ports always.
2018-08-29 17:16:11 -07:00
Hunter Nichols
775fe7b57c
Fixed measure statement stating times. This commit crashes if there are no readwrite ports.
2018-08-29 15:13:31 -07:00
Hunter Nichols
8fad81ff1e
Changed delay measures to add additional measure based on # of ports. Measure times are not correct yet.
2018-08-29 00:43:27 -07:00
Hunter Nichols
ffe59bdf51
Edited delay measures to handle multiple readwrite ports. This commit is not well tested.
2018-08-29 00:01:22 -07:00
Hunter Nichols
fa8434e5f0
Added debug checks for unsupported port options.
2018-08-28 13:01:35 -07:00
Hunter Nichols
bd763fa1e3
Fixed naming issue between sram instance and PWL in stimulus
2018-08-28 12:09:02 -07:00
Hunter Nichols
75da5a994b
Edited create_test_cycles to generate values that characterize all ports. Still several bugs and lib file does not support multiple ports.
2018-08-28 00:30:15 -07:00
Hunter Nichols
ba5988ec7f
Added write port structure to create_test_cycles. This commit contains test code.
2018-08-27 20:35:29 -07:00
Hunter Nichols
d82d3df4a7
Added read port cycle data generation. This commit contains test code in create_test_cycles
2018-08-27 18:17:02 -07:00
Hunter Nichols
a0e06809f9
Comments now display port in stim file.
2018-08-27 16:23:23 -07:00
Hunter Nichols
350823d434
Added basic structure to add_test_cycles to characterize multiple ports and its helper functions to allow for ports to be selected for characterization
2018-08-27 15:56:42 -07:00
Hunter Nichols
6dc72f5b1e
Added additional control signal to stim file based on # of ports.
2018-08-23 17:46:24 -07:00
Hunter Nichols
efcb435fde
Changed # of address signals to reflect # of ports in delay
2018-08-23 14:49:56 -07:00
Hunter Nichols
9151858449
Characterizer now recognizesmultiple ports and additional DIN/DOUT signals are added to stim file.
2018-08-22 23:45:43 -07:00
Hunter Nichols
21e85297d3
Merge branch 'dev' into multiport_characterization
2018-08-22 14:50:29 -07:00
Hunter Nichols
8abf45a5d3
Some test code added. To be removed later.
2018-08-22 14:19:09 -07:00
Matt Guthaus
49bee6a96e
Remove OEB signal since we split DIN/DOUT ports
2018-08-13 14:09:49 -07:00
Matt Guthaus
a7a3099702
Fix comments in stimulus file to show list and not zip type
2018-07-27 15:00:00 -07:00
Matt Guthaus
71606e1097
Add read cycle to clear DOUT bus before each read measure.
2018-07-27 14:06:59 -07:00
Matt Guthaus
8f72621f4a
Converted delay measurement to use add_read/add_write functions.
...
Rewrote the logic to add one cycle at a time for easier
manipulation. This can be extended more easily into the
functional simulations.
2018-07-27 11:36:17 -07:00
Matt Guthaus
a00e160274
Convert bitline index to integer in trim_spice
2018-07-26 14:29:44 -07:00
Matt Guthaus
bc67ad5ead
Fixed timing to be measured from positive clock edge since
...
reading a 1 will be the precharge time.
Started modifying the lib file for DIN and DOUT ports, but did not
check the syntax yet.
2018-07-26 13:58:50 -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
b88947ef5c
Pass the sram design to lib instead of the sram wrapper
2018-07-18 11:51:42 -07:00
Matt Guthaus
0701fceb0b
Use sram rather than new meta-sram class in the characterizer for delay
2018-07-18 10:39:29 -07:00
Matt Guthaus
a2d8d16c7a
Split DATA into DIN and DOUT in characterizer
2018-07-11 14:19:09 -07:00
Matt Guthaus
265b5d977a
Fix option reload problems and checkpointing so that it works properly.
2018-07-11 12:00:15 -07:00
Matt Guthaus
3de81c8a67
Close files in trim spice and delay.
2018-06-29 15:11:41 -07:00
Matt Guthaus
df2dce2439
Fix module import names for python3. Rename parse function to something meaningful.
2018-06-29 09:45:07 -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
Hunter Nichols
6a3f0843ff
Fixed accidental changes made to analytical delay.
2018-02-28 12:18:41 -08:00
Hunter Nichols
e6d6680da1
Fixed conflict in delay.py
2018-02-27 13:02:22 -08:00
Hunter Nichols
d0e6dc9ce7
First version of analytical power models. Still huge room for improvement. Analytical power printed with 1 verbose level.
2018-02-26 16:32:28 -08:00
Matt Guthaus
35137d1c67
Add extra comments in stimulus output.
2018-02-26 14:39:06 -08:00
Matt Guthaus
a732405836
Add utility script gen_stimulus.py to help create simulations for debugging.
2018-02-26 08:54:35 -08:00
mguthaus
322f354878
Convert period to float to avoid type mismatch.
2018-02-25 11:13:43 -08:00
mguthaus
f3efb5fb50
Fixed leakage and power unit test results.
2018-02-23 15:20:52 -08:00
Matt Guthaus
d88ff01792
Change default operating conditions to OC
2018-02-23 13:38:55 -08:00
Matt Guthaus
29aa6002e6
Make period into p instead of remove it. Changes file names...
2018-02-23 12:50:02 -08:00
Matt Guthaus
9d1f31467e
Move internal power to clock pin. Differentiate leakge power when CSb is high.
2018-02-23 12:21:32 -08:00
Matt Guthaus
23f06bfa9a
Reduce number of parameters in function calls for delay.py.
2018-02-22 11:14:58 -08:00
Hunter Nichols
d4a0f48d4f
Added power calculations for inverter. Still testing.
2018-02-21 19:51:21 -08:00
Matt Guthaus
b31f3c18af
Change BSIM3 models to version 3.3.0. Add comment about multithreading selection.
2018-02-21 17:50:12 -08:00
Matt Guthaus
4e414b6c15
Fix unintended unmerge of changes. Bad bad.
2018-02-21 16:03:49 -08:00
Matt Guthaus
a44346110b
Fix merge of results.
2018-02-21 15:47:07 -08:00
Matt Guthaus
fcacd46866
UPdate tests with new delay and slew names and leakage power.
2018-02-21 15:45:49 -08:00
mguthaus
b8b2375346
Updated golden tests with new leakage aware power numbers.
2018-02-21 15:44:52 -08:00
Matt Guthaus
4b9ea66a42
Change names of variables to indicate transistions for clarity.
2018-02-21 15:13:46 -08:00
Matt Guthaus
71831e7737
Get delays only for successful run.
2018-02-21 14:05:39 -08:00
Matt Guthaus
9600dae7df
Remove print statements.
2018-02-21 13:45:14 -08:00
Matt Guthaus
7d2f4386e2
Include leakage of non-trimmed array. Back out leakage of trimmed, add back leakage of nontrimmed. Reorgs simulation of delay and power a bit.
2018-02-21 13:38:43 -08:00
Hunter Nichols
8ea384a761
Fixed merging issues with power branch
2018-02-14 15:21:42 -08:00
Matt Guthaus
a12ebeed9f
Add multiple process corners. Unit tests use nominal corner only. Add fake SCMOS nominal models, but they are broken.
2018-02-12 09:33:23 -08:00
Matt Guthaus
4dd075c7b7
Add V and C to names of lib files.
2018-02-11 16:34:32 -08:00
Matt Guthaus
f86985821a
Begin modifications for corner-based characterization. Made stimuli.py a class. Golden output files are not updated.
2018-02-09 15:33:03 -08:00
Matt Guthaus
17716191c1
Clean up time statements in openram output
2018-02-08 13:11:18 -08:00
Matt Guthaus
54c21f6282
Added method=gear back to ngspice simulation to fix convergence bug.
2018-02-07 21:07:11 -08:00
Matt Guthaus
1b4be741df
Fix broken print statements
2018-02-07 17:39:42 -08:00
Matt Guthaus
9cc46453a2
Fix PWL bug to output last value. Fix bug in setup/hold use of improved PWL function.
2018-02-07 15:43:09 -08:00
Matt Guthaus
8e91552701
Remvoe newline.
2018-02-07 14:33:29 -08:00
Matt Guthaus
5dacafc698
Disable gear integration in ngspice. Not sure it is necessary anymore and it is quite slow.
2018-02-07 14:20:15 -08:00
Matt Guthaus
3e4ef36efe
Clean up Python comments and improve comments in stimulus file.
2018-02-07 14:04:18 -08:00
Matt Guthaus
5c4999d4cc
Move delay-specific stimulus commands to delay.py. Keep stimuli.py generic.
2018-02-07 12:58:47 -08:00
Matt Guthaus
941094ce31
Return slews to 10-90 and 90-10 so I don't have to re-hardcode the results in unit tests.
2018-02-05 15:21:53 -08:00
Matt Guthaus
4505c0f74e
Improve error to setup model dir path. Use it to override FreePDK45 too.
2018-02-05 15:12:12 -08:00
Matt Guthaus
85f4438280
Exit with error if model files are not found.
2018-02-05 15:09:21 -08:00
Matt Guthaus
e2e5f45cec
Correct vague comments about char cycles. End simulation after last period even though a transition would mean a failed simulation.
2018-02-05 14:07:12 -08:00
Matt Guthaus
a8e1abdce8
Use method=gear for ngspice to improve convergence. Split TD for trig and targ in measure statements. Start waiting for clk neg edge trigger at clk pos edge.
2018-02-05 11:36:46 -08:00
Matt Guthaus
84b42b0170
Fix bug in trim netlist. Add info comments to spice netlist and trimmed netlist. Increase verbosity for simulations.
2018-02-02 19:33:07 -08:00
Matt Guthaus
3e2d4d631d
Do not require hspice during tests. Check if a valid simulator is found, however.
2018-02-02 12:31:33 -08:00
Matt Guthaus
7c9c16e29c
Fix assertion error syntax problem. Do not require hspice for functional test. Improve delay fail error message.
2018-02-02 12:31:33 -08:00
Hunter Nichols
56f7caf59f
Added first test power model to sram
2018-02-02 12:31:33 -08:00
Matt Guthaus
9fea4a1a2d
Do not require hspice during tests. Check if a valid simulator is found, however.
2018-01-31 16:21:43 -08:00
Matt Guthaus
590f6e01d1
Fix assertion error syntax problem. Do not require hspice for functional test. Improve delay fail error message.
2018-01-31 15:38:02 -08:00
Matt Guthaus
369aa85cd2
Fail simulation tests if correct spice is not found. Correctly load spice characterizer.
2018-01-26 13:00:25 -08:00
Matt Guthaus
fd748b4fe4
Move info messages about modes to better locations.
2018-01-05 08:32:23 -08:00
mguthaus
09ca8ba17d
Improve output format. Rename option to be more sensible.
2017-11-22 15:57:29 -08:00
Matt Guthaus
cf66c83fe4
Fixed address bug to simulate correct wordline
2017-11-21 13:57:59 -08:00
Matt Guthaus
aa4768bf87
Add time info for spice simulation calls.
2017-11-21 13:04:18 -08:00
Matt Guthaus
88740c107f
Improve global and code structure using modules.
...
Comment and reorganize globals.py
Tests consistently use globals module for OPTions.
Add characterizer as module support.
Modify unit tests to reload new characterizer for ngspice/hspice.
Enable relative and absolute config file arguments so you can run
openram from anywhere on any config file.
2017-11-16 13:52:58 -08:00
mguthaus
2eb9f5c6bc
Move verify into a module. Make characterizer a module. Move exe searching to modules.
2017-11-15 17:02:53 -08:00
Matt Guthaus
29c5ab48f0
Add spice pruning for speed-up. Fix spice search bugs. Add time in stages to openram output.
2017-11-14 13:24:14 -08:00
Matt Guthaus
8071dcc0f3
Add customsim (xa) as optional simulator. Fix regex to support scientific notation. Go through list of preferred simulators in order. Always abort if command-line simulator not found.
2017-11-12 10:42:41 -08:00
Jun Chen
054e4d3c28
my change
2017-11-11 16:54:04 +09:00
Matt Guthaus
95f1a24f72
Change default delay modeling to analytical. Add command-line option characterization by simulation (-c).
2017-11-09 11:13:44 -08:00
Matt Guthaus
e06e1691c8
Two bank SRAMs working in both technologies.
2017-09-29 16:22:13 -07:00
Matt Guthaus
d77216d6dd
Fix LEF mismatch due to path/wire hierarchy change. Add characterizer feasible delay/slew check. Update delay tests with new delays.
2017-08-07 10:24:45 -07:00
Matt Guthaus
20d8c0bc45
Improved characterizer.
2017-07-06 08:42:25 -07:00
mguthaus
f32912f07c
Removed name option from some modules and autogenerate unique names. Added check to design class to prevent duplicate names by accident. Reduced diff file output verbosity.
2017-06-02 11:11:57 -07:00
Matt Guthaus
34e180b901
Analytical delay model from Bin Wu. Unit test not passing.
2017-05-30 12:50:07 -07:00
mguthaus
bd7958be28
Fixed format test. It was not performing checks due to moving of OPENRAM_HOME. Fixed some tabs and print statements.
2017-04-24 11:55:11 -07:00
Matt Guthaus
841532a52f
Change characterizer to be one data structure. Add approximate diff for lib file.
2016-11-23 17:18:48 -08:00
Samira Ataei
233acc3fcc
Added seprate return for power values of lib.
2016-11-20 11:16:19 -06:00
Samira Ataei
d195df682d
Added Power results to lib.
...
Fixed min_period and min_pulse_width values.
Updated lib golden files.
2016-11-19 20:19:16 -06:00
Matt Guthaus
7d0d590879
Don't converge only after a successful measurement.
2016-11-11 14:25:46 -08:00
Matt Guthaus
5e33781268
Remove control structure from ngspice. Add probe for ngspice too since it doesn't hurt. Unskip delay test.
2016-11-11 13:22:01 -08:00
Matt Guthaus
5211be5ffc
No control statements in ngspice 26
2016-11-11 13:10:54 -08:00
Matt Guthaus
33b46b450d
No control statements in ngspice 26
2016-11-11 13:09:46 -08:00
Matt Guthaus
1356e5142d
Add print of values if tests fail. Modify some ngspice tests to pass withcorrect results.
2016-11-11 09:41:43 -08:00
Matt Guthaus
992d091a8b
Change step resolution in setup_hold to 5p to avoid convergence problems with ngspice.
2016-11-10 11:07:52 -08:00
Matt Guthaus
46fceba692
More debug messages
2016-11-10 08:55:11 -08:00
Matt Guthaus
e017f3f4ca
Add better info messages. Convert subprocess to a shell command.
2016-11-10 08:36:28 -08:00
Matt Guthaus
d7afb27322
Break subprocess call into arg list.
2016-11-10 07:27:38 -08:00
Matt Guthaus
f48272bde6
RELEASE 1.0
2016-11-08 09:57:35 -08:00