`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]; };