summaryrefslogtreecommitdiff
path: root/src/crossbar_generator.h
blob: b7ec072285ac7402e7d90c7d79fca76fb28f4f43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef CROSSBAR_GENERATOR_H
#define CROSSBAR_GENERATOR_H

#include <stddef.h>

typedef struct {
    size_t rows;
    size_t columns;

    //array of row input voltages.
    //length must equal rows (# of rows)
    const double *input_voltages;

    //array of initial resistances
    //stored in row-major order
    const double *initial_resistance;

    //path to the memory component path
    const char *model_path;

    //name of subcircuit(specific model)
    const char *subcircuit_name;

    //resistance from each column to ground
    double load_resistance;

    //transient sim settings
    double time_step;
    double stop_time;

    //1 = true | 0 = false
    int print_state_nodes;
} Crossbar_Config;

int generate_crossbar(const char *output_filename, 
                    const Crossbar_Config *config);

#endif