accelforge 0.0.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. accelforge/__init__.py +21 -0
  2. accelforge/_accelerated_imports.py +16 -0
  3. accelforge/_deprecate/_simanneal/evalmapping.py +271 -0
  4. accelforge/_deprecate/_simanneal/mapspaceglobals.py +298 -0
  5. accelforge/_deprecate/_simanneal/simanneal.py +666 -0
  6. accelforge/_deprecate/_simanneal/tracking.py +105 -0
  7. accelforge/_deprecate/_simanneal/wrappers.py +218 -0
  8. accelforge/_deprecate/_simanneal2/__init__.py +7 -0
  9. accelforge/_deprecate/_simanneal2/simanneal.py +493 -0
  10. accelforge/_deprecate/_simanneal2/tracking.py +116 -0
  11. accelforge/_deprecate/compatibility_util.py +181 -0
  12. accelforge/_deprecate/layerdeduplication/__init__.py +2 -0
  13. accelforge/_deprecate/layerdeduplication/group_similar_einsums.py +160 -0
  14. accelforge/_deprecate/layerdeduplication/grouped_einsums.py +84 -0
  15. accelforge/_deprecate/mapping_filter_tags/__init__.py +2 -0
  16. accelforge/_deprecate/mapping_filter_tags/ffmt.py +212 -0
  17. accelforge/_deprecate/mapping_filter_tags/onesplit.py +24 -0
  18. accelforge/_deprecate/mapping_filter_tags/util.py +24 -0
  19. accelforge/_deprecate/tags.py +69 -0
  20. accelforge/_deprecate/viz/__init__.py +0 -0
  21. accelforge/_deprecate/viz/interactive.py +159 -0
  22. accelforge/_deprecate/viz/reservationtree.py +307 -0
  23. accelforge/_deprecate/viz/ski_slope.py +88 -0
  24. accelforge/_version.py +15 -0
  25. accelforge/examples.py +39 -0
  26. accelforge/frontend/__init__.py +10 -0
  27. accelforge/frontend/_binding.py +129 -0
  28. accelforge/frontend/_workload_isl/__init__.py +2 -0
  29. accelforge/frontend/_workload_isl/_isl.py +149 -0
  30. accelforge/frontend/_workload_isl/_symbolic.py +141 -0
  31. accelforge/frontend/arch copy.py +1544 -0
  32. accelforge/frontend/arch.py +1642 -0
  33. accelforge/frontend/config.py +63 -0
  34. accelforge/frontend/mapper/__init__.py +5 -0
  35. accelforge/frontend/mapper/ffm.py +126 -0
  36. accelforge/frontend/mapper/mapper.py +7 -0
  37. accelforge/frontend/mapper/metrics.py +30 -0
  38. accelforge/frontend/mapping/__init__.py +1 -0
  39. accelforge/frontend/mapping/mapping.py +1736 -0
  40. accelforge/frontend/model.py +14 -0
  41. accelforge/frontend/renames.py +150 -0
  42. accelforge/frontend/spec copy.py +230 -0
  43. accelforge/frontend/spec.py +301 -0
  44. accelforge/frontend/variables.py +12 -0
  45. accelforge/frontend/workload.py +952 -0
  46. accelforge/mapper/FFM/__init__.py +9 -0
  47. accelforge/mapper/FFM/_join_pmappings/__init__.py +0 -0
  48. accelforge/mapper/FFM/_join_pmappings/compatibility.py +653 -0
  49. accelforge/mapper/FFM/_join_pmappings/compress_pmappings.py +140 -0
  50. accelforge/mapper/FFM/_join_pmappings/join_pmappings.py +703 -0
  51. accelforge/mapper/FFM/_join_pmappings/pmapping_dataframe.py +901 -0
  52. accelforge/mapper/FFM/_join_pmappings/pmapping_group.py +337 -0
  53. accelforge/mapper/FFM/_make_pmappings/contraints/__init__.py +0 -0
  54. accelforge/mapper/FFM/_make_pmappings/contraints/constraints.py +360 -0
  55. accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/__init__.py +1 -0
  56. accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_loops.py +373 -0
  57. accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_pmapping_templates.py +463 -0
  58. accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_reservations.py +95 -0
  59. accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_storage_order.py +382 -0
  60. accelforge/mapper/FFM/_make_pmappings/make_pmapping_templates/make_storages.py +155 -0
  61. accelforge/mapper/FFM/_make_pmappings/make_pmappings.py +411 -0
  62. accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/__init__.py +1 -0
  63. accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/make_pmappings_from_templates.py +407 -0
  64. accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/make_tile_shapes.py +1681 -0
  65. accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/run_model.py +170 -0
  66. accelforge/mapper/FFM/_make_pmappings/make_pmappings_from_templates/symbol_relations.py +174 -0
  67. accelforge/mapper/FFM/_make_pmappings/pmapper_job.py +282 -0
  68. accelforge/mapper/FFM/_pareto_df/df_convention.py +273 -0
  69. accelforge/mapper/FFM/_pareto_df/pareto copy.py +836 -0
  70. accelforge/mapper/FFM/_pareto_df/pareto.py +508 -0
  71. accelforge/mapper/FFM/data.py +61 -0
  72. accelforge/mapper/FFM/main copy.py +236 -0
  73. accelforge/mapper/FFM/main.py +208 -0
  74. accelforge/mapper/FFM/mappings.py +510 -0
  75. accelforge/mapper/FFM/pmappings.py +310 -0
  76. accelforge/mapper/__init__.py +4 -0
  77. accelforge/mapper.py +0 -0
  78. accelforge/model/__init__.py +1 -0
  79. accelforge/model/_looptree/__init__.py +0 -0
  80. accelforge/model/_looptree/accesses.py +335 -0
  81. accelforge/model/_looptree/capacity/__init__.py +1 -0
  82. accelforge/model/_looptree/capacity/aggregators.py +36 -0
  83. accelforge/model/_looptree/capacity/capacity.py +47 -0
  84. accelforge/model/_looptree/energy.py +150 -0
  85. accelforge/model/_looptree/equivalent_ranks.py +29 -0
  86. accelforge/model/_looptree/latency/__init__.py +1 -0
  87. accelforge/model/_looptree/latency/latency.py +98 -0
  88. accelforge/model/_looptree/latency/memory.py +120 -0
  89. accelforge/model/_looptree/latency/processors.py +92 -0
  90. accelforge/model/_looptree/mapping_utilities.py +71 -0
  91. accelforge/model/_looptree/reuse/__init__.py +4 -0
  92. accelforge/model/_looptree/reuse/isl/__init__.py +1 -0
  93. accelforge/model/_looptree/reuse/isl/des.py +59 -0
  94. accelforge/model/_looptree/reuse/isl/isl_functions.py +374 -0
  95. accelforge/model/_looptree/reuse/isl/mapping_to_isl/__init__.py +4 -0
  96. accelforge/model/_looptree/reuse/isl/mapping_to_isl/analyze_mapping.py +297 -0
  97. accelforge/model/_looptree/reuse/isl/mapping_to_isl/skews_from_mapping.py +236 -0
  98. accelforge/model/_looptree/reuse/isl/mapping_to_isl/tiling.py +685 -0
  99. accelforge/model/_looptree/reuse/isl/mapping_to_isl/types.py +188 -0
  100. accelforge/model/_looptree/reuse/isl/spatial.py +260 -0
  101. accelforge/model/_looptree/reuse/isl/temporal.py +182 -0
  102. accelforge/model/_looptree/reuse/symbolic/__init__.py +1 -0
  103. accelforge/model/_looptree/reuse/symbolic/symbolic copy 2.py +1346 -0
  104. accelforge/model/_looptree/reuse/symbolic/symbolic copy.py +1408 -0
  105. accelforge/model/_looptree/reuse/symbolic/symbolic.py +1396 -0
  106. accelforge/model/_looptree/run.py +122 -0
  107. accelforge/model/_looptree/types.py +26 -0
  108. accelforge/model/_looptree/visualization/__init__.py +0 -0
  109. accelforge/model/_looptree/visualization/occupancy.py +11 -0
  110. accelforge/model/main.py +222 -0
  111. accelforge/plotting/__init__.py +2 -0
  112. accelforge/plotting/mappings.py +219 -0
  113. accelforge/plotting/specs.py +57 -0
  114. accelforge/util/__init__.py +4 -0
  115. accelforge/util/_base_analysis_types.py +24 -0
  116. accelforge/util/_basetypes.py +1089 -0
  117. accelforge/util/_frozenset.py +36 -0
  118. accelforge/util/_isl.py +29 -0
  119. accelforge/util/_itertools.py +14 -0
  120. accelforge/util/_mathfuncs.py +57 -0
  121. accelforge/util/_parse_expressions.py +339 -0
  122. accelforge/util/_picklecache.py +32 -0
  123. accelforge/util/_setexpressions.py +268 -0
  124. accelforge/util/_sympy/__init__.py +0 -0
  125. accelforge/util/_sympy/broadcast_max.py +18 -0
  126. accelforge/util/_visualization.py +112 -0
  127. accelforge/util/_yaml.py +579 -0
  128. accelforge/util/parallel.py +193 -0
  129. accelforge-0.0.1.dist-info/METADATA +64 -0
  130. accelforge-0.0.1.dist-info/RECORD +258 -0
  131. accelforge-0.0.1.dist-info/WHEEL +5 -0
  132. accelforge-0.0.1.dist-info/licenses/LICENSE +19 -0
  133. accelforge-0.0.1.dist-info/top_level.txt +5 -0
  134. docs/_build/html/_sources/fastfusion.frontend.mapper.rst.txt +37 -0
  135. docs/_build/html/_sources/fastfusion.frontend.rst.txt +70 -0
  136. docs/_build/html/_sources/fastfusion.frontend.workload.rst.txt +21 -0
  137. docs/_build/html/_sources/fastfusion.mapper.FFM.rst.txt +37 -0
  138. docs/_build/html/_sources/fastfusion.mapper.rst.txt +18 -0
  139. docs/_build/html/_sources/fastfusion.rst.txt +20 -0
  140. docs/_build/html/_sources/fastfusion.util.rst.txt +21 -0
  141. docs/_build/html/_sources/index.rst.txt +87 -0
  142. docs/_build/html/_sources/modules.rst.txt +7 -0
  143. docs/_build/html/_sources/notes/citation.rst.txt +45 -0
  144. docs/_build/html/_sources/notes/definitions.rst.txt +43 -0
  145. docs/_build/html/_sources/notes/faqs.rst.txt +39 -0
  146. docs/_build/html/_sources/notes/modeling/accelerator_energy_latency.rst.txt +72 -0
  147. docs/_build/html/_sources/notes/modeling/component_energy_area.rst.txt +96 -0
  148. docs/_build/html/_sources/notes/modeling/mapping.rst.txt +100 -0
  149. docs/_build/html/_sources/notes/modeling.rst.txt +33 -0
  150. docs/_build/html/_sources/notes/parsing/arithmetic_parsing.rst.txt +136 -0
  151. docs/_build/html/_sources/notes/parsing/setexpressions.rst.txt +63 -0
  152. docs/_build/html/_sources/notes/parsing/yaml_parsing.rst.txt +176 -0
  153. docs/_build/html/_sources/notes/quickstart_and_installation.rst.txt +9 -0
  154. docs/_build/html/_sources/notes/spec/architecture.rst.txt +133 -0
  155. docs/_build/html/_sources/notes/spec/mapping.rst.txt +12 -0
  156. docs/_build/html/_sources/notes/spec/workload.rst.txt +83 -0
  157. docs/_build/html/_sources/notes/spec.rst.txt +36 -0
  158. docs/source/_ext/include_attrs.py +213 -0
  159. docs/source/_ext/include_docstring.py +364 -0
  160. docs/source/_ext/include_functions.py +154 -0
  161. docs/source/_ext/include_notebook.py +131 -0
  162. docs/source/_ext/include_yaml.py +119 -0
  163. docs/source/_ext/inherited_attributes.py +222 -0
  164. docs/source/_ext/paths.py +4 -0
  165. docs/source/conf.py +79 -0
  166. examples/arches/compute_in_memory/_include.yaml +74 -0
  167. examples/arches/compute_in_memory/_include_functions.py +229 -0
  168. examples/arches/compute_in_memory/_load_spec.py +57 -0
  169. examples/arches/compute_in_memory/components/c2c_multiplier.py +181 -0
  170. examples/arches/compute_in_memory/components/dac_c2c_r2r.py +605 -0
  171. examples/arches/compute_in_memory/components/misc.py +195 -0
  172. examples/arches/compute_in_memory/components/util/bit_functions.py +51 -0
  173. examples/arches/compute_in_memory/components/zero_comparator.py +92 -0
  174. examples/arches/compute_in_memory/isaac.yaml +233 -0
  175. examples/arches/compute_in_memory/memory_cells/ecram_demo.yaml +63 -0
  176. examples/arches/compute_in_memory/memory_cells/rram_example.yaml +63 -0
  177. examples/arches/compute_in_memory/memory_cells/rram_isaac_isca_2016.yaml +64 -0
  178. examples/arches/compute_in_memory/memory_cells/rram_neurosim_default.yaml +63 -0
  179. examples/arches/compute_in_memory/memory_cells/rram_raella_isca_2023.yaml +70 -0
  180. examples/arches/compute_in_memory/memory_cells/rram_wan_nature_2022.yaml +63 -0
  181. examples/arches/compute_in_memory/memory_cells/sram_colonnade_jssc_2021.yaml +63 -0
  182. examples/arches/compute_in_memory/memory_cells/sram_example.yaml +63 -0
  183. examples/arches/compute_in_memory/memory_cells/sram_jia_jssc_2020.yaml +63 -0
  184. examples/arches/compute_in_memory/memory_cells/sram_sinangil_jssc_2021.yaml +63 -0
  185. examples/arches/compute_in_memory/memory_cells/sram_wang_vlsi_2022.yaml +63 -0
  186. examples/arches/compute_in_memory/wang_vlsi_2022.yaml +289 -0
  187. examples/arches/eyeriss.yaml +68 -0
  188. examples/arches/fanout_variations/at_glb.yaml +31 -0
  189. examples/arches/fanout_variations/at_glb_with_fanout_node.yaml +34 -0
  190. examples/arches/fanout_variations/at_mac.yaml +31 -0
  191. examples/arches/fanout_variations/at_mac_with_constraints.yaml +38 -0
  192. examples/arches/fanout_variations/at_mac_with_fanout_node.yaml +34 -0
  193. examples/arches/nvdla.yaml +47 -0
  194. examples/arches/simple.yaml +28 -0
  195. examples/arches/tpu_v4i.yaml +67 -0
  196. examples/mappings/unfused_matmuls_to_simple.yaml +33 -0
  197. examples/misc/component_annotated.yaml +33 -0
  198. examples/workloads/gpt3_6.7B.yaml +124 -0
  199. examples/workloads/matmuls.yaml +20 -0
  200. examples/workloads/mobilenet_28.yaml +81 -0
  201. examples/workloads/mobilenet_various_separate.yaml +106 -0
  202. examples/workloads/three_matmuls_annotated.yaml +59 -0
  203. notebooks/.ipynb_checkpoints/fastfusion_arch_study_michael-checkpoint.ipynb +359 -0
  204. notebooks/compute_in_memory/_scripts.py +339 -0
  205. notebooks/compute_in_memory/isaac.guide.ipynb +270 -0
  206. notebooks/compute_in_memory/wang_vlsi_2022.ipynb +602 -0
  207. notebooks/paths.py +4 -0
  208. notebooks/tutorials/.ipynb_checkpoints/1_FFM-checkpoint.ipynb +3110 -0
  209. notebooks/tutorials/FFM.ipynb +3498 -0
  210. notebooks/tutorials/_include.py +48 -0
  211. notebooks/tutorials/component_energy_area.ipynb +363 -0
  212. tests/Q_mapping.yaml +38 -0
  213. tests/__init__.py +0 -0
  214. tests/conv.mapping.yaml +27 -0
  215. tests/conv.workload.yaml +13 -0
  216. tests/conv_sym.mapping.yaml +43 -0
  217. tests/copy.mapping.yaml +35 -0
  218. tests/copy.workload.yaml +15 -0
  219. tests/distribuffers/__init__.py +0 -0
  220. tests/distribuffers/multicast/test_cases.yaml +482 -0
  221. tests/distribuffers/spec/binding/valid_bindings.yaml +97 -0
  222. tests/distribuffers/spec/distributed.yaml +100 -0
  223. tests/distribuffers/spec/logical_arch.yaml +32 -0
  224. tests/distribuffers/spec/physical_arch.yaml +69 -0
  225. tests/distribuffers/test_binding.py +48 -0
  226. tests/frontend/__init__.py +0 -0
  227. tests/frontend/test_mapping_viz.py +52 -0
  228. tests/mapper/__init__.py +0 -0
  229. tests/mapper/configs/conv1d/conv1d.mapping.yaml +31 -0
  230. tests/mapper/configs/conv1d/conv1d.workload.yaml +11 -0
  231. tests/mapper/configs/two_conv1d/two_conv1d.expected.yaml +38 -0
  232. tests/mapper/configs/two_conv1d/two_conv1d.mapping.yaml +54 -0
  233. tests/mapper/configs/two_conv1d/two_conv1d.workload.yaml +19 -0
  234. tests/mapper/test_mapping_to_isl.py +90 -0
  235. tests/mapper/test_spatial_reuse_analysis.py +67 -0
  236. tests/mapper/test_temporal_reuse_analysis.py +56 -0
  237. tests/mapper/util.py +58 -0
  238. tests/matmul.mapping.yaml +29 -0
  239. tests/matmul.workload.yaml +12 -0
  240. tests/matmul_spatial.mapping.yaml +44 -0
  241. tests/mha.renames.yaml +65 -0
  242. tests/mha.workload.yaml +67 -0
  243. tests/mha.yaml +59 -0
  244. tests/mha_full.workload.yaml +67 -0
  245. tests/mobilenet.workload.yaml +35 -0
  246. tests/mobilenet_long.workload.yaml +64 -0
  247. tests/pmappingcache.py +24 -0
  248. tests/processing_stage.arch.yaml +40 -0
  249. tests/snowcat.arch.yaml +36 -0
  250. tests/test_ffm_join_pmappings.py +106 -0
  251. tests/test_ffm_make_pmappings.py +82 -0
  252. tests/test_ffm_make_tile_shapes.py +49 -0
  253. tests/test_mapper.py +100 -0
  254. tests/test_model.py +37 -0
  255. tests/test_plotting.py +72 -0
  256. tests/test_processing_stage.py +46 -0
  257. tests/test_symbolic_model.py +248 -0
  258. tests/test_workload.py +141 -0
@@ -0,0 +1,63 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Device type and top-level parameters
3
+
4
+ # Device type
5
+ -MemCellType: RRAM # SRAM or RRAM
6
+ # -ReadMode: current # Comment this line for voltage
7
+ -DeviceRoadmap -1LP 1HP 2LSTP: 2
8
+
9
+ # Device size
10
+ -CellArea (F^2): 40
11
+ -CellAspectRatio: 1 # Width/Height
12
+
13
+ # Calibration parameters
14
+ -CellReadLeakEnergyMultiplier: 1
15
+ -CellWriteEnergyMultiplier: 1
16
+ -CellCapacitanceMultiplier: 0.25
17
+ -CellCapacitanceAdjust (F): 0 # Capacitance = (Nominal Capacitance) * Multiplier + Adjust
18
+
19
+ # Used for RRAM with access transistors or SRAM
20
+ -AccessCMOSWidth (F): 1
21
+
22
+ # Affects NeuroSim-realized ADCs. NOTE: Most models use ADC plug-in ADCs and
23
+ # this has little to no effect.
24
+ -ReadMode: voltage # voltage or current
25
+
26
+ # -----------------------------------------------------------------------------
27
+ # SRAM-only parameters
28
+ # SRAM configuration. Only used if MemCellType is SRAM
29
+ -SRAMCellNMOSWidth (F): 2
30
+ -SRAMCellPMOSWidth (F): 2
31
+ -MinSenseVoltage (mV): 20
32
+
33
+ # -----------------------------------------------------------------------------
34
+ # RRAM-only parameters
35
+ # RRAM configuration. Only used if MemCellType is RRAM
36
+ -ResistanceOn (ohm): 25e4
37
+ -ResistanceOff (ohm): 1e6
38
+
39
+ # Set parameters
40
+ -SetVoltage (V): 1.75
41
+ -SetPulse (ns): 8520
42
+ # -SetCurrent (uA): 400 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
43
+ # -SetEnergy (pJ): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
44
+ # -SetPower (uW): 800 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
45
+
46
+ # Read parameters
47
+ -ReadVoltage (V): 0.1
48
+ -ReadPulse (ns): 2
49
+ # -ReadCurrent (uA): 40 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
50
+ # -ReadEnergy (pJ): 0.008 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
51
+ # -ReadPower (uW): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
52
+
53
+ # Access transistor parameters
54
+ -AccessType: CMOS # CMOS or None
55
+ -AccessTransistorResistance (ohm): 1000
56
+ -AccessVoltage (V): 0.1 # Access transistor voltage
57
+
58
+ # -----------------------------------------------------------------------------
59
+ # Other parameters that can be set via cell component attributes:
60
+
61
+ # "voltage" is the global supply voltage
62
+ # "threshold_voltage" is the global threshold voltage
63
+ # "read_pulse_width" is the read pulse width
@@ -0,0 +1,64 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Device type and top-level parameters
3
+
4
+ # Device type
5
+ -MemCellType: RRAM # SRAM or RRAM
6
+ # -ReadMode: current # Comment this line for voltage
7
+ -DeviceRoadmap -1LP 1HP 2LSTP: 2
8
+
9
+ # Device size
10
+ -CellArea (F^2): 16 # NeuroSim gets mad if it's too small. Doesn't matter too
11
+ # much because this is pretty small in the overall accelerator.
12
+ -CellAspectRatio: 1 # Width/Height
13
+
14
+ # Calibration parameters
15
+ -CellReadLeakEnergyMultiplier: 1
16
+ -CellWriteEnergyMultiplier: 1
17
+ -CellCapacitanceMultiplier: 0.3 # Correct for cell area scaling
18
+ -CellCapacitanceAdjust (F): 0.0e-15 # Capacitance = (Nominal Capacitance) * Multiplier + Adjust
19
+
20
+ # Used for RRAM with access transistors or SRAM
21
+ -AccessCMOSWidth (F): 4
22
+
23
+ # Affects NeuroSim-realized ADCs. NOTE: Most models use ADC plug-in ADCs and
24
+ # this has little to no effect.
25
+ -ReadMode: voltage # voltage or current
26
+
27
+ # -----------------------------------------------------------------------------
28
+ # SRAM-only parameters
29
+ # SRAM configuration. Only used if MemCellType is SRAM
30
+ -SRAMCellNMOSWidth (F): 2
31
+ -SRAMCellPMOSWidth (F): 2
32
+ -MinSenseVoltage (mV): 20
33
+
34
+ # -----------------------------------------------------------------------------
35
+ # RRAM-only parameters
36
+ # RRAM configuration. Only used if MemCellType is RRAM
37
+ -ResistanceOn (ohm): 1333
38
+ -ResistanceOff (ohm): 20000
39
+
40
+ # Set parameters
41
+ -SetVoltage (V): 2 # From PRIME
42
+ -SetPulse (ns): 40
43
+ # -SetCurrent (uA): 400 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
44
+ # -SetEnergy (pJ): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
45
+ # -SetPower (uW): 800 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
46
+
47
+ # Read parameters
48
+ -ReadVoltage (V): 0.2 # From PRIME
49
+ -ReadPulse (ns): 1
50
+ # -ReadCurrent (uA): 40 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
51
+ # -ReadEnergy (pJ): 0.008 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
52
+ # -ReadPower (uW): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
53
+
54
+ # Access transistor parameters
55
+ -AccessType: None # CMOS or None
56
+ -AccessTransistorResistance (ohm): 1000
57
+ -AccessVoltage (V): 0.1 # Access transistor voltage
58
+
59
+ # -----------------------------------------------------------------------------
60
+ # Other parameters that can be set via cell component attributes:
61
+
62
+ # "voltage" is the global supply voltage
63
+ # "threshold_voltage" is the global threshold voltage
64
+ # "read_pulse_width" is the read pulse width
@@ -0,0 +1,63 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Device type and top-level parameters
3
+
4
+ # Device type
5
+ -MemCellType: RRAM # SRAM or RRAM
6
+ # -ReadMode: current # Comment this line for voltage
7
+ -DeviceRoadmap -1LP 1HP 2LSTP: 2
8
+
9
+ # Device size
10
+ -CellArea (F^2): 48
11
+ -CellAspectRatio: 0.333 # Width/Height
12
+
13
+ # Calibration parameters
14
+ -CellReadLeakEnergyMultiplier: 1
15
+ -CellWriteEnergyMultiplier: 1
16
+ -CellCapacitanceMultiplier: 1
17
+ -CellCapacitanceAdjust (F): 0 # Capacitance = (Nominal Capacitance) * Multiplier + Adjust
18
+
19
+ # Used for RRAM with access transistors or SRAM
20
+ -AccessCMOSWidth (F): 10
21
+
22
+ # Affects NeuroSim-realized ADCs. NOTE: Most models use ADC plug-in ADCs and
23
+ # this has little to no effect.
24
+ -ReadMode: current # voltage or current
25
+
26
+ # -----------------------------------------------------------------------------
27
+ # SRAM-only parameters
28
+ # SRAM configuration. Only used if MemCellType is SRAM
29
+ -SRAMCellNMOSWidth (F): 2
30
+ -SRAMCellPMOSWidth (F): 2
31
+ -MinSenseVoltage (mV): 20
32
+
33
+ # -----------------------------------------------------------------------------
34
+ # RRAM-only parameters
35
+ # RRAM configuration. Only used if MemCellType is RRAM
36
+ -ResistanceOn (ohm): 6e3
37
+ -ResistanceOff (ohm): 9e5
38
+
39
+ # Set parameters
40
+ -SetVoltage (V): 2
41
+ -SetPulse (ns): 50
42
+ # -SetCurrent (uA): 400 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
43
+ # -SetEnergy (pJ): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
44
+ # -SetPower (uW): 800 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
45
+
46
+ # Read parameters
47
+ -ReadVoltage (V): 0.5
48
+ -ReadPulse (ns): 2
49
+ # -ReadCurrent (uA): 40 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
50
+ # -ReadEnergy (pJ): 0.008 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
51
+ # -ReadPower (uW): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
52
+
53
+ # Access transistor parameters
54
+ -AccessType: CMOS # CMOS or None
55
+ -AccessTransistorResistance (ohm): 1.95e5
56
+ -AccessVoltage (V): 1.1 # Access transistor voltage
57
+
58
+ # -----------------------------------------------------------------------------
59
+ # Other parameters that can be set via cell component attributes:
60
+
61
+ # "voltage" is the global supply voltage
62
+ # "threshold_voltage" is the global threshold voltage
63
+ # "read_pulse_width" is the read pulse width
@@ -0,0 +1,70 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Device type and top-level parameters
3
+
4
+ # Device type
5
+ -MemCellType: RRAM # SRAM or RRAM
6
+ # -ReadMode: current # Comment this line for voltage
7
+ -DeviceRoadmap -1LP 1HP 2LSTP: 2
8
+
9
+ # Device size
10
+ -CellArea (F^2): 16 # We used 5.5 in the paper, but NeuroSim gets mad if it's too small
11
+ # 5.5 = 1.5 (from ISAAC) + 4F^2 access transistor. Doesn't matter too
12
+ # much because this is pretty small in the overall accelerator.
13
+ -CellAspectRatio: 1 # Width/Height
14
+
15
+ # Calibration parameters
16
+ -CellReadLeakEnergyMultiplier: 1
17
+ -CellWriteEnergyMultiplier: 1
18
+ -CellCapacitanceMultiplier: 0.3 # Correct for cell area scaling
19
+ -CellCapacitanceAdjust (F): 0.0e-15 # Capacitance = (Nominal Capacitance) * Multiplier + Adjust
20
+
21
+ # Used for RRAM with access transistors or SRAM
22
+ -AccessCMOSWidth (F): 4
23
+
24
+ # Affects NeuroSim-realized ADCs. NOTE: Most models use ADC plug-in ADCs and
25
+ # this has little to no effect.
26
+ -ReadMode: voltage # voltage or current
27
+
28
+ # -----------------------------------------------------------------------------
29
+ # SRAM-only parameters
30
+ # SRAM configuration. Only used if MemCellType is SRAM
31
+ -SRAMCellNMOSWidth (F): 2
32
+ -SRAMCellPMOSWidth (F): 2
33
+ -MinSenseVoltage (mV): 20
34
+
35
+ # -----------------------------------------------------------------------------
36
+ # RRAM-only parameters
37
+ # RRAM configuration. Only used if MemCellType is RRAM
38
+ -ResistanceOn (ohm): 1333
39
+ -ResistanceOff (ohm): 20000
40
+ # WARNING: ON resistance is set lower than it actually is in-array.
41
+ # This is because NeuroSim adds ~640 ohms of wire resistance on average,
42
+ # but RAELLA's 2T2R add/subtract is very local and doesn't have this wire
43
+ # resistance. So we pre-subtract the wire resistance here to get our 1333-ohm
44
+ # resistance.
45
+
46
+ # Set parameters
47
+ -SetVoltage (V): 2 # From PRIME
48
+ -SetPulse (ns): 40
49
+ # -SetCurrent (uA): 400 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
50
+ # -SetEnergy (pJ): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
51
+ # -SetPower (uW): 800 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
52
+
53
+ # Read parameters
54
+ -ReadVoltage (V): 0.2 # From PRIME
55
+ -ReadPulse (ns): 1
56
+ # -ReadCurrent (uA): 40 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
57
+ # -ReadEnergy (pJ): 0.008 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
58
+ # -ReadPower (uW): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
59
+
60
+ # Access transistor parameters
61
+ -AccessType: CMOS # Comment this line for no access transistor
62
+ -AccessTransistorResistance (ohm): 1000
63
+ -AccessVoltage (V): 0.1 # Access transistor voltage
64
+
65
+ # -----------------------------------------------------------------------------
66
+ # Other parameters that can be set via cell component attributes:
67
+
68
+ # "voltage" is the global supply voltage
69
+ # "threshold_voltage" is the global threshold voltage
70
+ # "read_pulse_width" is the read pulse width
@@ -0,0 +1,63 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Device type and top-level parameters
3
+
4
+ # Device type
5
+ -MemCellType: RRAM # SRAM or RRAM
6
+ # -ReadMode: current # Comment this line for voltage
7
+ -DeviceRoadmap -1LP 1HP 2LSTP: 2
8
+
9
+ # Device size
10
+ -CellArea (F^2): 125.73964497
11
+ -CellAspectRatio: 1 # Width/Height
12
+
13
+ # Calibration parameters
14
+ -CellReadLeakEnergyMultiplier: 1
15
+ -CellWriteEnergyMultiplier: 1
16
+ -CellCapacitanceMultiplier: 1
17
+ -CellCapacitanceAdjust (F): -0.1e-15 # Capacitance = (Nominal Capacitance) * Multiplier + Adjust
18
+
19
+ # Used for RRAM with access transistors or SRAM
20
+ -AccessCMOSWidth (F): 4
21
+
22
+ # Affects NeuroSim-realized ADCs. NOTE: Most models use ADC plug-in ADCs and
23
+ # this has little to no effect.
24
+ -ReadMode: voltage # voltage or current
25
+
26
+ # -----------------------------------------------------------------------------
27
+ # SRAM-only parameters
28
+ # SRAM configuration. Only used if MemCellType is SRAM
29
+ -SRAMCellNMOSWidth (F): 2
30
+ -SRAMCellPMOSWidth (F): 2
31
+ -MinSenseVoltage (mV): 20
32
+
33
+ # -----------------------------------------------------------------------------
34
+ # RRAM-only parameters
35
+ # RRAM configuration. Only used if MemCellType is RRAM
36
+ -ResistanceOn (ohm): 25e4
37
+ -ResistanceOff (ohm): 1e6
38
+
39
+ # Set parameters
40
+ -SetVoltage (V): 1.75
41
+ -SetPulse (ns): 8520
42
+ # -SetCurrent (uA): 400 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
43
+ # -SetEnergy (pJ): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
44
+ # -SetPower (uW): 800 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
45
+
46
+ # Read parameters
47
+ -ReadVoltage (V): 0.5
48
+ -ReadPulse (ns): 2
49
+ # -ReadCurrent (uA): 40 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
50
+ # -ReadEnergy (pJ): 0.008 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
51
+ # -ReadPower (uW): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
52
+
53
+ # Access transistor parameters
54
+ -AccessType: None # CMOS or None
55
+ -AccessTransistorResistance (ohm): 1000
56
+ -AccessVoltage (V): 0.1 # Access transistor voltage
57
+
58
+ # -----------------------------------------------------------------------------
59
+ # Other parameters that can be set via cell component attributes:
60
+
61
+ # "voltage" is the global supply voltage
62
+ # "threshold_voltage" is the global threshold voltage
63
+ # "read_pulse_width" is the read pulse width
@@ -0,0 +1,63 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Device type and top-level parameters
3
+
4
+ # Device type
5
+ -MemCellType: SRAM # SRAM or RRAM
6
+ # -ReadMode: current # Comment this line for voltage
7
+ -DeviceRoadmap -1LP 1HP 2LSTP: 1
8
+
9
+ # Device size
10
+ -CellArea (F^2): 130
11
+ -CellAspectRatio: 1 # Width/Height
12
+
13
+ # Calibration parameters
14
+ -CellReadLeakEnergyMultiplier: 4.5
15
+ -CellWriteEnergyMultiplier: 1
16
+ -CellCapacitanceMultiplier: 1
17
+ -CellCapacitanceAdjust (F): 0 # Capacitance = (Nominal Capacitance) * Multiplier + Adjust
18
+
19
+ # Used for RRAM with access transistors or SRAM
20
+ -AccessCMOSWidth (F): 7
21
+
22
+ # -----------------------------------------------------------------------------
23
+ # SRAM-only parameters
24
+ # SRAM configuration. Only used if MemCellType is SRAM
25
+ -SRAMCellNMOSWidth (F): 5
26
+ -SRAMCellPMOSWidth (F): 5
27
+ -MinSenseVoltage (mV): 20
28
+
29
+ # Affects NeuroSim-realized ADCs. NOTE: Most models use ADC plug-in ADCs and
30
+ # this has little to no effect.
31
+ -ReadMode: voltage # voltage or current
32
+
33
+ # -----------------------------------------------------------------------------
34
+ # RRAM-only parameters
35
+ # RRAM configuration. Only used if MemCellType is RRAM
36
+ -ResistanceOn (ohm): 1000
37
+ -ResistanceOff (ohm): 100000
38
+
39
+ # Set parameters
40
+ -SetVoltage (V): 2
41
+ -SetPulse (ns): 10
42
+ # -SetCurrent (uA): 400 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
43
+ # -SetEnergy (pJ): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
44
+ # -SetPower (uW): 800 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
45
+
46
+ # Read parameters
47
+ -ReadVoltage (V): 0.2
48
+ -ReadPulse (ns): 2
49
+ # -ReadCurrent (uA): 40 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
50
+ # -ReadEnergy (pJ): 0.008 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
51
+ # -ReadPower (uW): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
52
+
53
+ # Access transistor parameters
54
+ -AccessType: None # CMOS or None
55
+ -AccessTransistorResistance (ohm): 1000
56
+ -AccessVoltage (V): 0.2 # Access transistor voltage
57
+
58
+ # -----------------------------------------------------------------------------
59
+ # Other parameters that can be set via cell component attributes:
60
+
61
+ # "voltage" is the global supply voltage
62
+ # "threshold_voltage" is the global threshold voltage
63
+ # "read_pulse_width" is the read pulse width
@@ -0,0 +1,63 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Device type and top-level parameters
3
+
4
+ # Device type
5
+ -MemCellType: SRAM # SRAM or RRAM
6
+ # -ReadMode: current # Comment this line for voltage
7
+ -DeviceRoadmap -1LP 1HP 2LSTP: 2
8
+
9
+ # Device size
10
+ -CellArea (F^2): 80
11
+ -CellAspectRatio: 1 # Width/Height
12
+
13
+ # Calibration parameters
14
+ -CellReadLeakEnergyMultiplier: 1
15
+ -CellWriteEnergyMultiplier: 1
16
+ -CellCapacitanceMultiplier: 0.1
17
+ -CellCapacitanceAdjust (F): 0 # Capacitance = (Nominal Capacitance) * Multiplier + Adjust
18
+
19
+ # Used for RRAM with access transistors or SRAM
20
+ -AccessCMOSWidth (F): 1
21
+
22
+ # Affects NeuroSim-realized ADCs. NOTE: Most models use ADC plug-in ADCs and
23
+ # this has little to no effect.
24
+ -ReadMode: voltage # voltage or current
25
+
26
+ # -----------------------------------------------------------------------------
27
+ # SRAM-only parameters
28
+ # SRAM configuration. Only used if MemCellType is SRAM
29
+ -SRAMCellNMOSWidth (F): 10
30
+ -SRAMCellPMOSWidth (F): 10
31
+ -MinSenseVoltage (mV): 20
32
+
33
+ # -----------------------------------------------------------------------------
34
+ # RRAM-only parameters
35
+ # RRAM configuration. Only used if MemCellType is RRAM
36
+ -ResistanceOn (ohm): 1000
37
+ -ResistanceOff (ohm): 100000
38
+
39
+ # Set parameters
40
+ -SetVoltage (V): 2
41
+ -SetPulse (ns): 10
42
+ # -SetCurrent (uA): 400 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
43
+ # -SetEnergy (pJ): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
44
+ # -SetPower (uW): 800 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
45
+
46
+ # Read parameters
47
+ -ReadVoltage (V): 0.1
48
+ -ReadPulse (ns): 2
49
+ # -ReadCurrent (uA): 40 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
50
+ # -ReadEnergy (pJ): 0.008 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
51
+ # -ReadPower (uW): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
52
+
53
+ # Access transistor parameters
54
+ -AccessType: None # CMOS or None
55
+ -AccessTransistorResistance (ohm): 1000
56
+ -AccessVoltage (V): 0.1 # Access transistor voltage
57
+
58
+ # -----------------------------------------------------------------------------
59
+ # Other parameters that can be set via cell component attributes:
60
+
61
+ # "voltage" is the global supply voltage
62
+ # "threshold_voltage" is the global threshold voltage
63
+ # "read_pulse_width" is the read pulse width
@@ -0,0 +1,63 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Device type and top-level parameters
3
+
4
+ # Device type
5
+ -MemCellType: SRAM # SRAM or RRAM
6
+ # -ReadMode: current # Comment this line for voltage
7
+ -DeviceRoadmap -1LP 1HP 2LSTP: 2
8
+
9
+ # Device size
10
+ -CellArea (F^2): 426
11
+ -CellAspectRatio: 1 # Width/Height
12
+
13
+ # Calibration parameters
14
+ -CellReadLeakEnergyMultiplier: 1
15
+ -CellWriteEnergyMultiplier: 1
16
+ -CellCapacitanceMultiplier: 6.5
17
+ -CellCapacitanceAdjust (F): 0 # Capacitance = (Nominal Capacitance) * Multiplier + Adjust
18
+
19
+ # Used for RRAM with access transistors or SRAM
20
+ -AccessCMOSWidth (F): 4
21
+
22
+ # Affects NeuroSim-realized ADCs. NOTE: Most models use ADC plug-in ADCs and
23
+ # this has little to no effect.
24
+ -ReadMode: voltage # voltage or current
25
+
26
+ # -----------------------------------------------------------------------------
27
+ # SRAM-only parameters
28
+ # SRAM configuration. Only used if MemCellType is SRAM
29
+ -SRAMCellNMOSWidth (F): 10
30
+ -SRAMCellPMOSWidth (F): 10
31
+ -MinSenseVoltage (mV): 20
32
+
33
+ # -----------------------------------------------------------------------------
34
+ # RRAM-only parameters
35
+ # RRAM configuration. Only used if MemCellType is RRAM
36
+ -ResistanceOn (ohm): 1000
37
+ -ResistanceOff (ohm): 100000
38
+
39
+ # Set parameters
40
+ -SetVoltage (V): 2
41
+ -SetPulse (ns): 10
42
+ # -SetCurrent (uA): 400 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
43
+ # -SetEnergy (pJ): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
44
+ # -SetPower (uW): 800 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
45
+
46
+ # Read parameters
47
+ -ReadVoltage (V): 0.1
48
+ -ReadPulse (ns): 2
49
+ # -ReadCurrent (uA): 40 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
50
+ # -ReadEnergy (pJ): 0.008 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
51
+ # -ReadPower (uW): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
52
+
53
+ # Access transistor parameters
54
+ -AccessType: None # CMOS or None
55
+ -AccessTransistorResistance (ohm): 1000
56
+ -AccessVoltage (V): 0.1 # Access transistor voltage
57
+
58
+ # -----------------------------------------------------------------------------
59
+ # Other parameters that can be set via cell component attributes:
60
+
61
+ # "voltage" is the global supply voltage
62
+ # "threshold_voltage" is the global threshold voltage
63
+ # "read_pulse_width" is the read pulse width
@@ -0,0 +1,63 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Device type and top-level parameters
3
+
4
+ # Device type
5
+ -MemCellType: SRAM # SRAM or RRAM
6
+ # -ReadMode: current # Comment this line for voltage
7
+ -DeviceRoadmap -1LP 1HP 2LSTP: 2
8
+
9
+ # Device size
10
+ -CellArea (F^2): 1080
11
+ -CellAspectRatio: 1 # Width/Height
12
+
13
+ # Calibration parameters
14
+ -CellReadLeakEnergyMultiplier: 1
15
+ -CellWriteEnergyMultiplier: 1
16
+ -CellCapacitanceMultiplier: 0.1
17
+ -CellCapacitanceAdjust (F): 0e-15 # Capacitance = (Nominal Capacitance) * Multiplier + Adjust
18
+
19
+ # Used for RRAM with access transistors or SRAM
20
+ -AccessCMOSWidth (F): 1
21
+
22
+ # Affects NeuroSim-realized ADCs. NOTE: Most models use ADC plug-in ADCs and
23
+ # this has little to no effect.
24
+ -ReadMode: voltage # voltage or current
25
+
26
+ # -----------------------------------------------------------------------------
27
+ # SRAM-only parameters
28
+ # SRAM configuration. Only used if MemCellType is SRAM
29
+ -SRAMCellNMOSWidth (F): 10
30
+ -SRAMCellPMOSWidth (F): 10
31
+ -MinSenseVoltage (mV): 20
32
+
33
+ # -----------------------------------------------------------------------------
34
+ # RRAM-only parameters
35
+ # RRAM configuration. Only used if MemCellType is RRAM
36
+ -ResistanceOn (ohm): 1000
37
+ -ResistanceOff (ohm): 100000
38
+
39
+ # Set parameters
40
+ -SetVoltage (V): 2
41
+ -SetPulse (ns): 10
42
+ # -SetCurrent (uA): 400 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
43
+ # -SetEnergy (pJ): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
44
+ # -SetPower (uW): 800 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
45
+
46
+ # Read parameters
47
+ -ReadVoltage (V): 0.1
48
+ -ReadPulse (ns): 2
49
+ # -ReadCurrent (uA): 40 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
50
+ # -ReadEnergy (pJ): 0.008 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
51
+ # -ReadPower (uW): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
52
+
53
+ # Access transistor parameters
54
+ -AccessType: None # CMOS or None
55
+ -AccessTransistorResistance (ohm): 1000
56
+ -AccessVoltage (V): 0.1 # Access transistor voltage
57
+
58
+ # -----------------------------------------------------------------------------
59
+ # Other parameters that can be set via cell component attributes:
60
+
61
+ # "voltage" is the global supply voltage
62
+ # "threshold_voltage" is the global threshold voltage
63
+ # "read_pulse_width" is the read pulse width
@@ -0,0 +1,63 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Device type and top-level parameters
3
+
4
+ # Device type
5
+ -MemCellType: SRAM # SRAM or RRAM
6
+ # -ReadMode: current # Comment this line for voltage
7
+ -DeviceRoadmap -1LP 1HP 2LSTP: -1
8
+
9
+ # Device size
10
+ -CellArea (F^2): 400
11
+ -CellAspectRatio: 1 # Width/Height
12
+
13
+ # Calibration parameters
14
+ -CellReadLeakEnergyMultiplier: 1
15
+ -CellWriteEnergyMultiplier: 1
16
+ -CellCapacitanceMultiplier: 1
17
+ -CellCapacitanceAdjust (F): 3e-15 # Capacitance = (Nominal Capacitance) * Multiplier + Adjust
18
+
19
+ # Used for RRAM with access transistors or SRAM
20
+ -AccessCMOSWidth (F): 1
21
+
22
+ # Affects NeuroSim-realized ADCs. NOTE: Most models use ADC plug-in ADCs and
23
+ # this has little to no effect.
24
+ -ReadMode: voltage # voltage or current
25
+
26
+ # -----------------------------------------------------------------------------
27
+ # SRAM-only parameters
28
+ # SRAM configuration. Only used if MemCellType is SRAM
29
+ -SRAMCellNMOSWidth (F): 10
30
+ -SRAMCellPMOSWidth (F): 10
31
+ -MinSenseVoltage (mV): 20
32
+
33
+ # -----------------------------------------------------------------------------
34
+ # RRAM-only parameters
35
+ # RRAM configuration. Only used if MemCellType is RRAM
36
+ -ResistanceOn (ohm): 1000
37
+ -ResistanceOff (ohm): 100000
38
+
39
+ # Set parameters
40
+ -SetVoltage (V): 2
41
+ -SetPulse (ns): 10
42
+ # -SetCurrent (uA): 400 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
43
+ # -SetEnergy (pJ): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
44
+ # -SetPower (uW): 800 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
45
+
46
+ # Read parameters
47
+ -ReadVoltage (V): 0.1
48
+ -ReadPulse (ns): 2
49
+ # -ReadCurrent (uA): 40 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
50
+ # -ReadEnergy (pJ): 0.008 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
51
+ # -ReadPower (uW): 8 # OVERWRITES PREVIOUS LINES IF UNCOMMENTED
52
+
53
+ # Access transistor parameters
54
+ -AccessType: None # CMOS or None
55
+ -AccessTransistorResistance (ohm): 1000
56
+ -AccessVoltage (V): 0.1 # Access transistor voltage
57
+
58
+ # -----------------------------------------------------------------------------
59
+ # Other parameters that can be set via cell component attributes:
60
+
61
+ # "voltage" is the global supply voltage
62
+ # "threshold_voltage" is the global threshold voltage
63
+ # "read_pulse_width" is the read pulse width