157 lines
2.7 KiB
Plaintext
157 lines
2.7 KiB
Plaintext
reg ctrl_reg_t {
|
|
desc = "Control register shared across channels.";
|
|
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x1;
|
|
} enable[0:0];
|
|
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x2;
|
|
} mode[3:1];
|
|
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x0;
|
|
} prescale[11:4];
|
|
};
|
|
|
|
regfile channel_rf {
|
|
ctrl_reg_t control @ 0x0;
|
|
|
|
reg {
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x0;
|
|
} gain[11:0];
|
|
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x200;
|
|
} offset[23:12];
|
|
} calibrate @ 0x4;
|
|
|
|
reg {
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x0;
|
|
} sample_count[15:0];
|
|
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x0;
|
|
} error_count[31:16];
|
|
} counters @ 0x8;
|
|
};
|
|
|
|
regfile slice_rf {
|
|
reg {
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x0;
|
|
} slope[15:0];
|
|
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x0;
|
|
} intercept[31:16];
|
|
} calibration @ 0x0;
|
|
|
|
reg {
|
|
regwidth = 64;
|
|
field {
|
|
sw = r;
|
|
hw = w;
|
|
reset = 0x0;
|
|
} min_val[31:0];
|
|
|
|
field {
|
|
sw = r;
|
|
hw = w;
|
|
reset = 0x0;
|
|
} max_val[63:32];
|
|
} range @ 0x4;
|
|
};
|
|
|
|
regfile tile_rf {
|
|
channel_rf channel[3] @ 0x0;
|
|
|
|
reg {
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x0;
|
|
} tile_mode[1:0];
|
|
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x0;
|
|
} tile_enable[2:2];
|
|
} tile_ctrl @ 0x100;
|
|
|
|
slice_rf slice[2] @ 0x200;
|
|
};
|
|
|
|
regfile summary_rf {
|
|
reg {
|
|
field {
|
|
sw = r;
|
|
hw = w;
|
|
reset = 0x0;
|
|
} total_errors[31:0];
|
|
} errors @ 0x0;
|
|
|
|
reg {
|
|
field {
|
|
sw = r;
|
|
hw = w;
|
|
reset = 0x0;
|
|
} total_samples[31:0];
|
|
} samples @ 0x4;
|
|
|
|
reg {
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x0;
|
|
} interrupt_enable[7:0];
|
|
} interrupt_enable @ 0x8;
|
|
};
|
|
|
|
addrmap variable_layout {
|
|
tile_rf tiles[2] @ 0x0;
|
|
|
|
reg {
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x0;
|
|
} watchdog_enable[0:0];
|
|
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x100;
|
|
} watchdog_timeout[16:1];
|
|
|
|
field {
|
|
sw = rw;
|
|
hw = rw;
|
|
reset = 0x0;
|
|
} watchdog_mode[18:17];
|
|
} watchdog @ 0x2000;
|
|
|
|
summary_rf summary @ 0x3000;
|
|
};
|