* wip * reorg * update sv int * apb4 working * apb3 working * version bump + ignore runner warning * remove redundant check * adding log on failure * cleaning up verilator version issue * devcontainer * Fix missing libpython in GitHub Actions CI environment (#21) * Initial plan * Install libpython in GitHub Actions for cocotb tests Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: arnavsacheti <36746504+arnavsacheti@users.noreply.github.com> --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
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;
|
|
};
|