nvmexplorer_src.input_defs package

Submodules

nvmexplorer_src.input_defs.access_pattern module

class nvmexplorer_src.input_defs.access_pattern.PatternConfig(exp_name='default', benchmark_name='test', read_freq=- 1, total_reads=- 1, read_size=8, write_freq=- 1, total_writes=- 1, write_size=8, workingset=1, total_ins=- 1)

Bases: object

nvmexplorer_src.input_defs.cell_cfgs module

class nvmexplorer_src.input_defs.cell_cfgs.FeFETCellConfig(cell_file_path='../../data/cell_cfgs/FeFET.cell', access_CMOS_width=0.01, access_Vdrop=0.01, cell_area_F2=15, r_on_set_v=30000.0, r_off_set_v=30000.0, r_on_reset_v=20000000000.0, r_off_reset_v=20000000000.0, r_on_read_v=70000.0, r_off_read_v=20000000000.0, r_on_half_reset=23000000000.0, cap_on='1e-16', cap_off='1e-16', read_mode='current', read_voltage=- 0.03, read_power=0.0014, reset_mode='voltage', reset_voltage=- 2.0, reset_pulse=20, reset_energy=0.0002, set_mode='voltage', set_voltage=2.0, set_pulse=20, set_energy=0.0029, mlc=1, read_floating=False, mem_cfg_base='\n-DesignTarget: RAM\n-DeviceRoadmap: LSTP\n-LocalWireType: LocalAggressive\n-LocalWireRepeaterType: RepeatedNone\n-LocalWireUseLowSwing: No\n-GlobalWireType: GlobalAggressive\n-GlobalWireRepeaterType: RepeatedNone\n-GlobalWireUseLowSwing: No\n-Routing: H-tree\n-InternalSensing: true\n-Temperature (K): 350\n-BufferDesignOptimization: balanced\n')

Bases: nvmexplorer_src.input_defs.cell_cfgs.NVSimCellConfig

append_cell_file()
class nvmexplorer_src.input_defs.cell_cfgs.NVSimCellConfig(cell_file_path='data/cell_cfgs/SRAM.cell', mem_cell_type='SRAM', cell_area=146, cell_ratio=1.46, access_type='CMOS')

Bases: object

generate_cell_file()
class nvmexplorer_src.input_defs.cell_cfgs.PCMCellConfig(cell_file_path='../../data/cell_cfgs/PCM.cell', access_CMOS_width=6, cell_area_F2=19, r_on=1000, r_off=1000000, read_mode='voltage', read_current=40, read_voltage=1, read_energy=2, reset_mode='current', reset_current=10, reset_pulse=40, set_mode='current', set_current=0.2, set_pulse=150, mlc=1, mem_cfg_base='\n-DesignTarget: RAM\n-DeviceRoadmap: LOP\n-LocalWireType: LocalAggressive\n-LocalWireRepeaterType: RepeatedNone\n-LocalWireUseLowSwing: No\n-GlobalWireType: GlobalAggressive\n-GlobalWireRepeaterType: RepeatedNone\n-GlobalWireUseLowSwing: No\n-Routing: H-tree\n-InternalSensing: true\n-Temperature (K): 350\n-BufferDesignOptimization: balanced\n')

Bases: nvmexplorer_src.input_defs.cell_cfgs.NVSimCellConfig

append_cell_file()
class nvmexplorer_src.input_defs.cell_cfgs.RRAMCellConfig(cell_file_path='../../data/cell_cfgs/RRAM.cell', access_CMOS_width=6, cell_area_F2=53, r_on_set_v=100000, r_off_set_v=10000000, r_on_reset_v=100000, r_off_reset_v=10000000, r_on_read_v=1000000, r_off_read_v=10000000, r_on_half_reset=500000, cap_on='1e-16', cap_off='1e-16', read_mode='current', read_voltage=0.4, read_power=0.16, reset_mode='voltage', reset_voltage=2.0, reset_pulse=10, reset_energy=0.6, set_mode='voltage', set_voltage=2.0, set_pulse=10, set_energy=0.6, mlc=1, read_floating=False, mem_cfg_base='\n-DesignTarget: RAM\n-DeviceRoadmap: LOP\n-LocalWireType: LocalAggressive\n-LocalWireRepeaterType: RepeatedNone\n-LocalWireUseLowSwing: No\n-GlobalWireType: GlobalAggressive\n-GlobalWireRepeaterType: RepeatedNone\n-GlobalWireUseLowSwing: No\n-Routing: H-tree\n-InternalSensing: true\n-Temperature (K): 350\n-BufferDesignOptimization: balanced\n')

Bases: nvmexplorer_src.input_defs.cell_cfgs.NVSimCellConfig

append_cell_file()
class nvmexplorer_src.input_defs.cell_cfgs.SRAMCellConfig(cell_file_path='../../data/cell_cfgs/SRAM.cell', access_CMOS_width=1.31, nmos_width=2.08, pmos_width=1.23, cell_area_F2=0.0, read_mode='voltage', mem_cfg_base='\n-DesignTarget: RAM\n-DeviceRoadmap: LOP\n-LocalWireType: LocalAggressive\n-LocalWireRepeaterType: RepeatedNone\n-LocalWireUseLowSwing: No\n-GlobalWireType: GlobalAggressive\n-GlobalWireRepeaterType: RepeatedNone\n-GlobalWireUseLowSwing: No\n-Routing: non-H-tree\n-InternalSensing: false\n-Temperature (K): 350\n-BufferDesignOptimization: balanced\n')

Bases: nvmexplorer_src.input_defs.cell_cfgs.NVSimCellConfig

append_cell_file()

Appends necessary parameters to NVSim cell file to prepare for simulation

Parameters
  • startHnd (int, optional) – Start index, defaults to 1

  • endHnd (int, optional) – End index, defaults to 0xFFFF

  • uuids (list, optional) – a list of UUID strings, defaults to None

Returns

List of returned bluepy.btle.Characteristic objects

Return type

list

class nvmexplorer_src.input_defs.cell_cfgs.STTRAMCellConfig(cell_file_path='../../data/cell_cfgs/STTRAM.cell', access_CMOS_width=6, cell_area_F2=54, r_on=3000, r_off=6000, read_mode='current', read_voltage=0.25, min_sense_voltage=25, read_power=30, reset_mode='current', reset_current=80, reset_pulse=10, reset_energy=1, set_mode='current', set_current=80, set_pulse=10, set_energy=1, mlc=1, read_floating=False, mem_cfg_base='\n-DesignTarget: RAM\n-DeviceRoadmap: LOP\n-LocalWireType: LocalAggressive\n-LocalWireRepeaterType: RepeatedNone\n-LocalWireUseLowSwing: No\n-GlobalWireType: GlobalAggressive\n-GlobalWireRepeaterType: RepeatedNone\n-GlobalWireUseLowSwing: No\n-Routing: H-tree\n-InternalSensing: true\n-Temperature (K): 350\n-BufferDesignOptimization: balanced\n')

Bases: nvmexplorer_src.input_defs.cell_cfgs.NVSimCellConfig

append_cell_file()

nvmexplorer_src.input_defs.nvsim_interface module

class nvmexplorer_src.input_defs.nvsim_interface.NVSimInputConfig(mem_cfg_file_path='../../data/mem_cfgs/test_SRAM.cfg', process_node=45, opt_target='ReadLatency', word_width=64, capacity=4, cell_type=<nvmexplorer_src.input_defs.cell_cfgs.SRAMCellConfig object>)

Bases: object

generate_mem_cfg()

Creates a memory config file using characteristics of NVSimInputConfig object to be used as an input to NVSim

class nvmexplorer_src.input_defs.nvsim_interface.NVSimOutputConfig(exp_name='default', input_cfg=<nvmexplorer_src.input_defs.nvsim_interface.NVSimInputConfig object>, read_latency=-1, read_bw=-1, read_energy=-1, write_latency=-1, write_bw=-1, write_energy=-1, leakage_power=-1, area=-1, area_efficiency=-1)

Bases: object

print_summary()

Prints a summary of the parsed NVSim output results

nvmexplorer_src.input_defs.nvsim_interface.parse_nvsim_output(filepath='output_examples/sram_0', input_cfg=<nvmexplorer_src.input_defs.nvsim_interface.NVSimInputConfig object>)

Returns a NVSimOutputConfig object which gets populated with the output results in parsed from file_path.

Parameters
  • filepath (String) – path to NVSim output file

  • input_cfg (NVSimInputConfig object) – NVSimIntputConfig object that was used to create the NVSim output

Returns

NVSimOutputConfig object containing parsed NVSim results

Return type

NVSimOutputConfig

Module contents