Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
corr_matrixpi.rdl 1.83 KiB
`include "corr_matrixpi.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

addrmap corr_matrixpi {
    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;
        default hw = rw;
        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_ACC;
        field {sw = rw; hw = r;} ENABLE_ACCU;
    } CONTROL;

    reg {
        desc="Correction proportionnal coefficient.";
        field {sw = rw; hw = r;} data[`C_W_COR_KP];
    } CORR_KP;

    reg {
        desc="Correction intergral coefficient.";
        field {sw = rw; hw = r;} data[`C_W_COR_KI];
    } CORR_KI;

    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;

    mem {
        desc = "X Reference orbit.";
        memwidth = 32;
        mementries = 2**`C_W_MM_IDCNT;
    } external REFORBITX;

    mem {
        desc = "Y Reference orbit.";
        memwidth = 32;
        mementries = 2**`C_W_MM_IDCNT;
    } external REFORBITY;

    mem {
        desc = "PSC identifier table.";
        memwidth = 32;
        mementries = 2**`C_W_PSCID;
    } external PSCIDTABLE;

    mem {
        desc = "Matrix multiplication coefficients.";
        memwidth = 32;
        mementries = 2**`C_W_MM_IDCNT;
    } external MATRIXCOEF[`C_N_MM_PSC];

};