From f4854ae4c816a7718c88b3b0d230c24786553f26 Mon Sep 17 00:00:00 2001 From: Your Name Date: Thu, 30 Jul 2026 12:36:31 -0700 Subject: SPICE crossbar readout layer --- src/read_crossbar.h | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'src/read_crossbar.h') diff --git a/src/read_crossbar.h b/src/read_crossbar.h index 81aad02..74828d2 100644 --- a/src/read_crossbar.h +++ b/src/read_crossbar.h @@ -1,23 +1,32 @@ #ifndef READ_CROSSBAR_H #define READ_CROSSBAR_H +#include "spires_interface.h" #include typedef struct { - size_t num_samples; //number of time-steps - size_t num_outputs; //number of columns + size_t num_samples; // number of time-steps + size_t num_outputs; // number of columns - double *time; + double *time; - // stored in row major order - // voltages[sameple * num_outputs + output] - double *voltages; + // stored in row major order + // voltages[sameple * num_outputs + output] + double *voltages; } Crossbar_Output_Matrix; int run_ngspice(const char *crossbar_path); -int read_crossbar(const char *data_path, size_t num_outputs, - Crossbar_Output_Matrix *result); +int read_crossbar(const char *data_path, size_t num_outputs, + Crossbar_Output_Matrix *result); + +int convert_output_to_software(size_t num_neurons, size_t num_outputs, + size_t num_timesteps, const double *voltages, + const double *resistances, + double load_resistance, + const conductance_mapping *mapping, + const double *row_voltages, + double spike_amplitude, double *decoded_outputs); void free_crossbar_output_matrix(Crossbar_Output_Matrix *result); -- cgit v1.2.3