Skip to content
Snippets Groups Projects
corr_matrix.rdl 2.02 KiB
Newer Older
`include "corr_matrix.vh" //automatically created and added by fwk with conf variables such a C_VERSION ...
BRONES Romain's avatar
BRONES Romain committed

/* default values of defined variables */
`ifndef C_ID
`define C_ID 0x507E1730
`endif
`ifndef C_VERSION
`define C_VERSION 0x00000000
`endif

addrmap corr_matrix {
BRONES Romain's avatar
BRONES Romain committed
    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;
BRONES Romain's avatar
BRONES Romain committed
        default hw = rw;
BRONES Romain's avatar
BRONES Romain committed
        field {} data [32];
    } VERSION @0x04;

    reg {
        desc="Global control of the corrector.";
        field {sw = rw; hw = r;} ENABLE_CORR;
        field {sw = rw; hw = r;} RST_CORR;
BRONES Romain's avatar
BRONES Romain committed
    } CONTROL;

    reg {
        desc="Correction coefficient A.";
        field {sw = rw; hw = r;} data[`C_W_COR_COEF];
    } CORR_KA;
BRONES Romain's avatar
BRONES Romain committed

    reg {
        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;
BRONES Romain's avatar
BRONES Romain committed

    reg {
        desc="Number of ID to count for matrix multiplication.";
        field {sw = rw; hw = r;} data[`C_W_MM_IDCNT] = `C_N_MM_BPM;
    } MM_ID_CNT;

BRONES Romain's avatar
BRONES Romain committed
    mem {
        desc = "X Reference orbit.";
        memwidth = 32;
        mementries = 2**`C_W_MM_IDCNT;
BRONES Romain's avatar
BRONES Romain committed
    } external REFORBITX;

    mem {
        desc = "Y Reference orbit.";
        memwidth = 32;
        mementries = 2**`C_W_MM_IDCNT;
BRONES Romain's avatar
BRONES Romain committed
    } external REFORBITY;

    mem {
        desc = "PSC identifier table.";
        memwidth = 32;
        mementries = 2**`C_W_PSCID;
BRONES Romain's avatar
BRONES Romain committed
    } external PSCIDTABLE;


    mem {
        desc = "Matrix multiplication coefficients.";
        memwidth = 32;
        mementries = 2**`C_W_MM_IDCNT;
BRONES Romain's avatar
BRONES Romain committed
    } external MATRIXCOEF[`C_N_MM_PSC];

};