sandialabs / cross-sim

CrossSim: accuracy simulation of analog in-memory computing
Other
103 stars 24 forks source link

lookup_table_generation csv file #3

Closed nive-1 closed 1 year ago

nive-1 commented 2 years ago

Can I please know how is the CSV file set/reset created? What is the rmp values listed in it? How is it related to Current and Voltage values and how is it used to calculated conductance G for the lookup_table generation?

ptxiao commented 1 year ago

The set.csv file is the raw experimental or physics simulation data that CrossSim takes in to generate lookup tables. Each "rmp" column is a sequence of measured currents across the device, or conductance (see below). To go from the current/conductance on one row to the next, an electrical pulse is applied. All of the pulses should be identical in amplitude, duration, polarity, etc. The total number of pulses (# rows) can be user specified but should be enough to probe the full conductance range of interest. The different rmp columns are repetitions of this same experiment, and should begin from approximately the same starting conductance and have the same number of pulses.

The reset.csv file is the same thing but the polarity of the pulse should be reversed so that the conductance decreases with successive pulses. The amplitude and duration of the pulses should be the same as in set.csv. Each column should begin with the maximum conductance, not the minimum conductance.

Typically this data is obtained by applying N positive pulses, N negative pulses, N positive pulses, N negative pulses, etc. and measuring the conductance after every pulse. If you do it this way you fill out one column of set.csv, then one column of reset.csv, and so on.

If the data is measured in terms of current (Amps), then a simple Ohm's law is used to get the conductance. The voltage used is set by "read_voltage" in the file create_lookup_table.py. If the data is measured in terms of conductance (Siemens), then please set "read_voltage = 1.0" to avoid the unnecessary conversion.

We will document this in an upcoming manual for CrossSim Training (thanks for your patience!).