Skip to content
Snippets Groups Projects
corr_matrixpi.rdl 1.64 KiB
Newer Older
BRONES Romain's avatar
BRONES Romain committed
`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 = r;
        field {} data [32];
    } VERSION @0x04;

    reg {
        desc="Global control of the corrector.";
        field {sw = rw; hw = r;} ENABLE;
        field {sw = rw; hw = r;} RST_ACC;
    } 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;

    mem {
        desc = "X Reference orbit.";
        memwidth = `C_W_BPMID;
        mementries = `C_N_MM_BPM;
    } external REFORBITX;

    mem {
        desc = "Y Reference orbit.";
        memwidth = `C_W_BPMID;
        mementries = `C_N_MM_BPM;
    } external REFORBITY;

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


    mem {
        desc = "Matrix multiplication coefficients.";
        memwidth = `C_W_MM_COEF;
        mementries = `C_N_MM_BPM;
    } external MATRIXCOEF[`C_N_MM_PSC];

};