Newer
Older
`include "corr_matrix.vh" //automatically created and added by fwk with conf variables such a C_VERSION ...
/* default values of defined variables */
`ifndef C_ID
`define C_ID 0x507E1730
`endif
`ifndef C_VERSION
`define C_VERSION 0x00000000
`endif
name = "PI corrector with matrix multiplier";
desyrdl_interface = "AXI4L";
reg {
desc="Module Identification Number.";
default sw = r;
default hw = r;
field {} data[32] = `C_ID;
} ID @0x00;
reg {
desc="Module Version Number.";
default sw = r;
field {} data [32];
} VERSION @0x04;
reg {
desc="Global control of the corrector.";
default sw=rw; default hw=r;
field {} ENABLE_CORR;
field {} RST_CORR;
field {} ENABLE_THRESH;
field {} RST_THRESH;
reg {
desc="Global status of the corrector.";
default sw=r; default hw=rw;
field {} THRESH_REACHED;
} STATUS;
desc="Correction coefficient A.";
field {sw = rw; hw = r;} data[`C_W_COR_COEF];
} CORR_KA;
desc="Correction coefficient B.";
field {sw = rw; hw = r;} data[`C_W_COR_COEF];
} CORR_KB;
reg {
desc="Correction coefficient (inverse) C.";
field {sw = rw; hw = r;} data[`C_W_COR_COEF];
} CORR_KIC;
reg {
desc="Correction coefficient D.";
field {sw = rw; hw = r;} data[`C_W_COR_COEF];
} CORR_KD;
reg {
desc="Number of ID to count for matrix multiplication.";
field {sw = rw; hw = r;} data[`C_W_MM_IDCNT] = `C_N_MM_BPM;
mementries = 2**`C_W_MM_IDCNT;
} external REFORBITX;
mem {
desc = "Y Reference orbit.";
mementries = 2**`C_W_MM_IDCNT;
} external REFORBITY;
mem {
desc = "PSC identifier table.";
} external PSCIDTABLE;
mem {
desc = "Matrix multiplication coefficients.";