Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
White Rabbit Switch - Software
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
86
Issues
86
List
Board
Labels
Milestones
Merge Requests
4
Merge Requests
4
CI / CD
CI / CD
Pipelines
Schedules
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
White Rabbit Switch - Software
Commits
f45ee057
Commit
f45ee057
authored
Jun 11, 2012
by
Tomasz Wlostowski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
kernel/wbgen-regs: replaced wr_softpll (deprecated) with wr_softpll_ng
parent
758419c8
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
524 additions
and
184 deletions
+524
-184
Makefile
kernel/wbgen-regs/Makefile
+2
-2
softpll-regs.h
kernel/wbgen-regs/softpll-regs.h
+184
-35
softpll-regs.wb
kernel/wbgen-regs/softpll-regs.wb
+338
-147
No files found.
kernel/wbgen-regs/Makefile
View file @
f45ee057
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
# List of input files in Git checkout
# List of input files in Git checkout
MODULES_WRS
?=
$(REPOS)
/wr-switch-hdl/modules
MODULES_WRS
?=
$(REPOS)
/wr-switch-hdl/modules
MODULES_WRC
?=
$(REPOS)
/wr-
hdl
/modules
MODULES_WRC
?=
$(REPOS)
/wr-
cores
/modules
#SPECS = $(HW_REPO)/trunk/documentation/specifications
#SPECS = $(HW_REPO)/trunk/documentation/specifications
...
@@ -16,7 +16,7 @@ WB_PPSG = $(MODULES_WRC)/wr_pps_gen/pps_gen_wb.wb
...
@@ -16,7 +16,7 @@ WB_PPSG = $(MODULES_WRC)/wr_pps_gen/pps_gen_wb.wb
WB_TSTAMP
=
$(MODULES_WRS)
/wrsw_txtsu/wrsw_txtsu.wb
WB_TSTAMP
=
$(MODULES_WRS)
/wrsw_txtsu/wrsw_txtsu.wb
WB_RTU
=
$(MODULES_WRS)
/wrsw_rtu/rtu_wishbone_slave.wb
WB_RTU
=
$(MODULES_WRS)
/wrsw_rtu/rtu_wishbone_slave.wb
WB_NIC
=
$(MODULES_WRS)
/wrsw_nic/wr_nic.wb
WB_NIC
=
$(MODULES_WRS)
/wrsw_nic/wr_nic.wb
WB_SOFTPLL
=
$(MODULES_WRC)
/wr_softpll
/wr_softpll
.wb
WB_SOFTPLL
=
$(MODULES_WRC)
/wr_softpll
_ng/spll_wb_slave
.wb
HEADERS
=
endpoint-regs.h endpoint-mdio.h ppsg-regs.h tstamp-regs.h rtu-regs.h
\
HEADERS
=
endpoint-regs.h endpoint-mdio.h ppsg-regs.h tstamp-regs.h rtu-regs.h
\
nic-regs.h softpll-regs.h
nic-regs.h softpll-regs.h
...
...
kernel/wbgen-regs/softpll-regs.h
View file @
f45ee057
...
@@ -37,40 +37,121 @@
...
@@ -37,40 +37,121 @@
/* definitions for register: SPLL Control/Status Register */
/* definitions for register: SPLL Control/Status Register */
/* definitions for field:
Tagger enable
in reg: SPLL Control/Status Register */
/* definitions for field:
Period detector reference select
in reg: SPLL Control/Status Register */
#define SPLL_CSR_
TAG_EN_MASK WBGEN2_GEN_MASK(0, 4
)
#define SPLL_CSR_
PER_SEL_MASK WBGEN2_GEN_MASK(0, 6
)
#define SPLL_CSR_
TAG_EN_SHIFT
0
#define SPLL_CSR_
PER_SEL_SHIFT
0
#define SPLL_CSR_
TAG_EN_W(value) WBGEN2_GEN_WRITE(value, 0, 4
)
#define SPLL_CSR_
PER_SEL_W(value) WBGEN2_GEN_WRITE(value, 0, 6
)
#define SPLL_CSR_
TAG_EN_R(reg) WBGEN2_GEN_READ(reg, 0, 4
)
#define SPLL_CSR_
PER_SEL_R(reg) WBGEN2_GEN_READ(reg, 0, 6
)
/* definitions for field:
Tag ready
in reg: SPLL Control/Status Register */
/* definitions for field:
Number of reference channels (max: 32)
in reg: SPLL Control/Status Register */
#define SPLL_CSR_
TAG_RDY_MASK WBGEN2_GEN_MASK(4, 4
)
#define SPLL_CSR_
N_REF_MASK WBGEN2_GEN_MASK(8, 6
)
#define SPLL_CSR_
TAG_RDY_SHIFT 4
#define SPLL_CSR_
N_REF_SHIFT 8
#define SPLL_CSR_
TAG_RDY_W(value) WBGEN2_GEN_WRITE(value, 4, 4
)
#define SPLL_CSR_
N_REF_W(value) WBGEN2_GEN_WRITE(value, 8, 6
)
#define SPLL_CSR_
TAG_RDY_R(reg) WBGEN2_GEN_READ(reg, 4, 4
)
#define SPLL_CSR_
N_REF_R(reg) WBGEN2_GEN_READ(reg, 8, 6
)
/* definitions for field: Aux clock locking enable in reg: SPLL Control/Status Register */
/* definitions for field: Number of output channels (max: 8) in reg: SPLL Control/Status Register */
#define SPLL_CSR_AUX_EN WBGEN2_GEN_MASK(8, 1)
#define SPLL_CSR_N_OUT_MASK WBGEN2_GEN_MASK(16, 3)
#define SPLL_CSR_N_OUT_SHIFT 16
#define SPLL_CSR_N_OUT_W(value) WBGEN2_GEN_WRITE(value, 16, 3)
#define SPLL_CSR_N_OUT_R(reg) WBGEN2_GEN_READ(reg, 16, 3)
/* definitions for field:
Aux clock locked flag (to slave)
in reg: SPLL Control/Status Register */
/* definitions for field:
Enable Period Measurement
in reg: SPLL Control/Status Register */
#define SPLL_CSR_
AUX_LOCK WBGEN2_GEN_MASK(
9, 1)
#define SPLL_CSR_
PER_EN WBGEN2_GEN_MASK(1
9, 1)
/* definitions for register:
HPLL Frequency Erro
r */
/* definitions for register:
External Clock Control Registe
r */
/* definitions for register: DMPLL Tag ref */
/* definitions for field: Enable External Clock BB Detector in reg: External Clock Control Register */
#define SPLL_ECCR_EXT_EN WBGEN2_GEN_MASK(0, 1)
/* definitions for register: DMPLL Tag fb */
/* definitions for field: External Clock Input Available in reg: External Clock Control Register */
#define SPLL_ECCR_EXT_SUPPORTED WBGEN2_GEN_MASK(1, 1)
/* definitions for register: DMPLL Tag aux */
/* definitions for field: Enable PPS/phase alignment in reg: External Clock Control Register */
#define SPLL_ECCR_ALIGN_EN WBGEN2_GEN_MASK(2, 1)
/* definitions for register: HPLL DAC Output */
/* definitions for field: PPS/phase alignment done in reg: External Clock Control Register */
#define SPLL_ECCR_ALIGN_DONE WBGEN2_GEN_MASK(3, 1)
/* definitions for register: DMPLL DAC Output */
/* definitions for field: External Clock Reference Present in reg: External Clock Control Register */
#define SPLL_ECCR_EXT_REF_PRESENT WBGEN2_GEN_MASK(4, 1)
/* definitions for register: AUX DAC Output */
/* definitions for register: DMTD Clock Control Register */
/* definitions for field: DMTD Clock Undersampling Divider in reg: DMTD Clock Control Register */
#define SPLL_DCCR_GATE_DIV_MASK WBGEN2_GEN_MASK(0, 6)
#define SPLL_DCCR_GATE_DIV_SHIFT 0
#define SPLL_DCCR_GATE_DIV_W(value) WBGEN2_GEN_WRITE(value, 0, 6)
#define SPLL_DCCR_GATE_DIV_R(reg) WBGEN2_GEN_READ(reg, 0, 6)
/* definitions for register: Reference Channel Undersampling Enable Register */
/* definitions for field: Reference Channel Undersampling Enable in reg: Reference Channel Undersampling Enable Register */
#define SPLL_RCGER_GATE_SEL_MASK WBGEN2_GEN_MASK(0, 32)
#define SPLL_RCGER_GATE_SEL_SHIFT 0
#define SPLL_RCGER_GATE_SEL_W(value) WBGEN2_GEN_WRITE(value, 0, 32)
#define SPLL_RCGER_GATE_SEL_R(reg) WBGEN2_GEN_READ(reg, 0, 32)
/* definitions for register: Output Channel Control Register */
/* definitions for field: Output Channel HW enable flag in reg: Output Channel Control Register */
#define SPLL_OCCR_OUT_EN_MASK WBGEN2_GEN_MASK(0, 8)
#define SPLL_OCCR_OUT_EN_SHIFT 0
#define SPLL_OCCR_OUT_EN_W(value) WBGEN2_GEN_WRITE(value, 0, 8)
#define SPLL_OCCR_OUT_EN_R(reg) WBGEN2_GEN_READ(reg, 0, 8)
/* definitions for field: Output Channel locked flag in reg: Output Channel Control Register */
#define SPLL_OCCR_OUT_LOCK_MASK WBGEN2_GEN_MASK(8, 8)
#define SPLL_OCCR_OUT_LOCK_SHIFT 8
#define SPLL_OCCR_OUT_LOCK_W(value) WBGEN2_GEN_WRITE(value, 8, 8)
#define SPLL_OCCR_OUT_LOCK_R(reg) WBGEN2_GEN_READ(reg, 8, 8)
/* definitions for register: Reference Channel Enable Register */
/* definitions for register: Output Channel Enable Register */
/* definitions for register: HPLL Period Error */
/* definitions for field: Period error value in reg: HPLL Period Error */
#define SPLL_PER_HPLL_ERROR_MASK WBGEN2_GEN_MASK(0, 16)
#define SPLL_PER_HPLL_ERROR_SHIFT 0
#define SPLL_PER_HPLL_ERROR_W(value) WBGEN2_GEN_WRITE(value, 0, 16)
#define SPLL_PER_HPLL_ERROR_R(reg) WBGEN2_GEN_READ(reg, 0, 16)
/* definitions for field: Period Error Valid in reg: HPLL Period Error */
#define SPLL_PER_HPLL_VALID WBGEN2_GEN_MASK(16, 1)
/* definitions for register: Helper DAC Output */
/* definitions for register: Main DAC Output */
/* definitions for field: DAC value in reg: Main DAC Output */
#define SPLL_DAC_MAIN_VALUE_MASK WBGEN2_GEN_MASK(0, 16)
#define SPLL_DAC_MAIN_VALUE_SHIFT 0
#define SPLL_DAC_MAIN_VALUE_W(value) WBGEN2_GEN_WRITE(value, 0, 16)
#define SPLL_DAC_MAIN_VALUE_R(reg) WBGEN2_GEN_READ(reg, 0, 16)
/* definitions for field: DAC select in reg: Main DAC Output */
#define SPLL_DAC_MAIN_DAC_SEL_MASK WBGEN2_GEN_MASK(16, 4)
#define SPLL_DAC_MAIN_DAC_SEL_SHIFT 16
#define SPLL_DAC_MAIN_DAC_SEL_W(value) WBGEN2_GEN_WRITE(value, 16, 4)
#define SPLL_DAC_MAIN_DAC_SEL_R(reg) WBGEN2_GEN_READ(reg, 16, 4)
/* definitions for register: Deglitcher threshold */
/* definitions for register: Deglitcher threshold */
/* definitions for register: Debug FIFO Register - SPLL side */
/* definitions for field: Debug Value in reg: Debug FIFO Register - SPLL side */
#define SPLL_DFR_SPLL_VALUE_MASK WBGEN2_GEN_MASK(0, 31)
#define SPLL_DFR_SPLL_VALUE_SHIFT 0
#define SPLL_DFR_SPLL_VALUE_W(value) WBGEN2_GEN_WRITE(value, 0, 31)
#define SPLL_DFR_SPLL_VALUE_R(reg) WBGEN2_GEN_READ(reg, 0, 31)
/* definitions for field: End-of-Sample in reg: Debug FIFO Register - SPLL side */
#define SPLL_DFR_SPLL_EOS_MASK WBGEN2_GEN_MASK(31, 1)
#define SPLL_DFR_SPLL_EOS_SHIFT 31
#define SPLL_DFR_SPLL_EOS_W(value) WBGEN2_GEN_WRITE(value, 31, 1)
#define SPLL_DFR_SPLL_EOS_R(reg) WBGEN2_GEN_READ(reg, 31, 1)
/* definitions for register: Interrupt disable register */
/* definitions for register: Interrupt disable register */
/* definitions for field: Got a tag in reg: Interrupt disable register */
/* definitions for field: Got a tag in reg: Interrupt disable register */
...
@@ -91,27 +172,85 @@
...
@@ -91,27 +172,85 @@
/* definitions for field: Got a tag in reg: Interrupt status register */
/* definitions for field: Got a tag in reg: Interrupt status register */
#define SPLL_EIC_ISR_TAG WBGEN2_GEN_MASK(0, 1)
#define SPLL_EIC_ISR_TAG WBGEN2_GEN_MASK(0, 1)
/* definitions for register: FIFO 'Debug FIFO Register - Host side' data output register 0 */
/* definitions for field: Value in reg: FIFO 'Debug FIFO Register - Host side' data output register 0 */
#define SPLL_DFR_HOST_R0_VALUE_MASK WBGEN2_GEN_MASK(0, 32)
#define SPLL_DFR_HOST_R0_VALUE_SHIFT 0
#define SPLL_DFR_HOST_R0_VALUE_W(value) WBGEN2_GEN_WRITE(value, 0, 32)
#define SPLL_DFR_HOST_R0_VALUE_R(reg) WBGEN2_GEN_READ(reg, 0, 32)
/* definitions for register: FIFO 'Debug FIFO Register - Host side' data output register 1 */
/* definitions for field: Seq ID in reg: FIFO 'Debug FIFO Register - Host side' data output register 1 */
#define SPLL_DFR_HOST_R1_SEQ_ID_MASK WBGEN2_GEN_MASK(0, 16)
#define SPLL_DFR_HOST_R1_SEQ_ID_SHIFT 0
#define SPLL_DFR_HOST_R1_SEQ_ID_W(value) WBGEN2_GEN_WRITE(value, 0, 16)
#define SPLL_DFR_HOST_R1_SEQ_ID_R(reg) WBGEN2_GEN_READ(reg, 0, 16)
/* definitions for register: FIFO 'Debug FIFO Register - Host side' control/status register */
/* definitions for field: FIFO full flag in reg: FIFO 'Debug FIFO Register - Host side' control/status register */
#define SPLL_DFR_HOST_CSR_FULL WBGEN2_GEN_MASK(16, 1)
/* definitions for field: FIFO empty flag in reg: FIFO 'Debug FIFO Register - Host side' control/status register */
#define SPLL_DFR_HOST_CSR_EMPTY WBGEN2_GEN_MASK(17, 1)
/* definitions for field: FIFO counter in reg: FIFO 'Debug FIFO Register - Host side' control/status register */
#define SPLL_DFR_HOST_CSR_USEDW_MASK WBGEN2_GEN_MASK(0, 13)
#define SPLL_DFR_HOST_CSR_USEDW_SHIFT 0
#define SPLL_DFR_HOST_CSR_USEDW_W(value) WBGEN2_GEN_WRITE(value, 0, 13)
#define SPLL_DFR_HOST_CSR_USEDW_R(reg) WBGEN2_GEN_READ(reg, 0, 13)
/* definitions for register: FIFO 'Tag Readout Register' data output register 0 */
/* definitions for field: Tag value in reg: FIFO 'Tag Readout Register' data output register 0 */
#define SPLL_TRR_R0_VALUE_MASK WBGEN2_GEN_MASK(0, 24)
#define SPLL_TRR_R0_VALUE_SHIFT 0
#define SPLL_TRR_R0_VALUE_W(value) WBGEN2_GEN_WRITE(value, 0, 24)
#define SPLL_TRR_R0_VALUE_R(reg) WBGEN2_GEN_READ(reg, 0, 24)
/* definitions for field: Channel ID in reg: FIFO 'Tag Readout Register' data output register 0 */
#define SPLL_TRR_R0_CHAN_ID_MASK WBGEN2_GEN_MASK(24, 7)
#define SPLL_TRR_R0_CHAN_ID_SHIFT 24
#define SPLL_TRR_R0_CHAN_ID_W(value) WBGEN2_GEN_WRITE(value, 24, 7)
#define SPLL_TRR_R0_CHAN_ID_R(reg) WBGEN2_GEN_READ(reg, 24, 7)
/* definitions for field: Discontinuous bit in reg: FIFO 'Tag Readout Register' data output register 0 */
#define SPLL_TRR_R0_DISC WBGEN2_GEN_MASK(31, 1)
/* definitions for register: FIFO 'Tag Readout Register' control/status register */
/* definitions for field: FIFO empty flag in reg: FIFO 'Tag Readout Register' control/status register */
#define SPLL_TRR_CSR_EMPTY WBGEN2_GEN_MASK(17, 1)
PACKED
struct
SPLL_WB
{
PACKED
struct
SPLL_WB
{
/* [0x0]: REG SPLL Control/Status Register */
/* [0x0]: REG SPLL Control/Status Register */
uint32_t
CSR
;
uint32_t
CSR
;
/* [0x4]: REG HPLL Frequency Error */
/* [0x4]: REG External Clock Control Register */
uint32_t
ECCR
;
/* [0x8]: REG DMTD Clock Control Register */
uint32_t
DCCR
;
/* [0xc]: REG Reference Channel Undersampling Enable Register */
uint32_t
RCGER
;
/* [0x10]: REG Output Channel Control Register */
uint32_t
OCCR
;
/* [0x14]: REG Reference Channel Enable Register */
uint32_t
RCER
;
/* [0x18]: REG Output Channel Enable Register */
uint32_t
OCER
;
/* [0x1c]: REG HPLL Period Error */
uint32_t
PER_HPLL
;
uint32_t
PER_HPLL
;
/* [0x8]: REG DMPLL Tag ref */
/* [0x20]: REG Helper DAC Output */
uint32_t
TAG_REF
;
/* [0xc]: REG DMPLL Tag fb */
uint32_t
TAG_FB
;
/* [0x10]: REG DMPLL Tag aux */
uint32_t
TAG_AUX
;
/* [0x14]: REG HPLL DAC Output */
uint32_t
DAC_HPLL
;
uint32_t
DAC_HPLL
;
/* [0x18]: REG DMPLL DAC Output */
/* [0x24]: REG Main DAC Output */
uint32_t
DAC_DMPLL
;
uint32_t
DAC_MAIN
;
/* [0x1c]: REG AUX DAC Output */
/* [0x28]: REG Deglitcher threshold */
uint32_t
DAC_AUX
;
/* [0x20]: REG Deglitcher threshold */
uint32_t
DEGLITCH_THR
;
uint32_t
DEGLITCH_THR
;
/* [0x2c]: REG Debug FIFO Register - SPLL side */
uint32_t
DFR_SPLL
;
/* padding to: 16 words */
/* padding to: 16 words */
uint32_t
__padding_0
[
7
];
uint32_t
__padding_0
[
4
];
/* [0x40]: REG Interrupt disable register */
/* [0x40]: REG Interrupt disable register */
uint32_t
EIC_IDR
;
uint32_t
EIC_IDR
;
/* [0x44]: REG Interrupt enable register */
/* [0x44]: REG Interrupt enable register */
...
@@ -120,6 +259,16 @@ PACKED struct SPLL_WB {
...
@@ -120,6 +259,16 @@ PACKED struct SPLL_WB {
uint32_t
EIC_IMR
;
uint32_t
EIC_IMR
;
/* [0x4c]: REG Interrupt status register */
/* [0x4c]: REG Interrupt status register */
uint32_t
EIC_ISR
;
uint32_t
EIC_ISR
;
/* [0x50]: REG FIFO 'Debug FIFO Register - Host side' data output register 0 */
uint32_t
DFR_HOST_R0
;
/* [0x54]: REG FIFO 'Debug FIFO Register - Host side' data output register 1 */
uint32_t
DFR_HOST_R1
;
/* [0x58]: REG FIFO 'Debug FIFO Register - Host side' control/status register */
uint32_t
DFR_HOST_CSR
;
/* [0x5c]: REG FIFO 'Tag Readout Register' data output register 0 */
uint32_t
TRR_R0
;
/* [0x60]: REG FIFO 'Tag Readout Register' control/status register */
uint32_t
TRR_CSR
;
};
};
#endif
#endif
kernel/wbgen-regs/softpll-regs.wb
View file @
f45ee057
...
@@ -2,159 +2,350 @@
...
@@ -2,159 +2,350 @@
peripheral {
peripheral {
name = "WR Softcore PLL";
name = "WR Softcore PLL";
hdl_entity = "s
oftpll_wb
";
hdl_entity = "s
pll_wb_slave
";
prefix = "
SPLL
";
prefix = "
spll
";
reg {
reg {
name = "SPLL Control/Status Register";
name = "SPLL Control/Status Register";
prefix = "CSR";
prefix = "CSR";
field {
name = "Tagger enable";
prefix = "TAG_EN";
type = SLV;
size = 4;
access_bus = READ_WRITE;
access_dev = READ_ONLY;
};
field {
name = "Tag ready";
prefix = "TAG_RDY";
type = SLV;
size = 4;
access_bus = READ_ONLY;
access_dev = WRITE_ONLY;
};
field {
name = "Aux clock locking enable";
prefix = "AUX_EN";
type = BIT;
access_bus = READ_ONLY;
access_dev = WRITE_ONLY;
};
field {
name = "Aux clock locked flag (to slave)";
prefix = "AUX_LOCK";
type = BIT;
access_bus = READ_WRITE;
access_dev = READ_ONLY;
};
};
reg {
name = "HPLL Frequency Error";
prefix = "PER_HPLL";
field {
name = "Period error value";
type = SLV;
size = 32;
access_bus = READ_ONLY;
access_dev = WRITE_ONLY;
ack_read = "tag_hpll_rd_period_o";
};
};
reg {
name = "DMPLL Tag ref";
prefix = "TAG_REF";
field {
name = "Tag value";
type = SLV;
size = 32;
access_bus = READ_ONLY;
access_dev = WRITE_ONLY;
ack_read = "tag_ref_rd_ack_o";
};
};
reg {
name = "DMPLL Tag fb";
prefix = "TAG_FB";
field {
name = "Tag value";
type = SLV;
size = 32;
access_bus = READ_ONLY;
access_dev = WRITE_ONLY;
ack_read = "tag_fb_rd_ack_o";
};
};
field {
align = 8;
name = "Period detector reference select";
prefix = "PER_SEL";
size = 6;
type = SLV;
access_bus = READ_WRITE;
access_dev = READ_ONLY;
};
field {
align = 8;
name = "Number of reference channels (max: 32)";
prefix = "N_REF";
type = SLV;
size = 6;
access_bus = READ_ONLY;
access_dev = WRITE_ONLY;
};
field {
align = 8;
name = "Number of output channels (max: 8)";
prefix = "N_OUT";
type = SLV;
size = 3;
access_bus = READ_ONLY;
access_dev = WRITE_ONLY;
};
field {
name = "Enable Period Measurement";
prefix = "PER_EN";
type = BIT;
access_bus = READ_WRITE;
access_dev = READ_ONLY;
};
};
---------------------------------------------
-- External clock input
---------------------------------------------
reg {
name = "External Clock Control Register";
prefix = "ECCR";
field {
name = "Enable External Clock BB Detector";
prefix = "EXT_EN";
type = BIT;
access_bus = READ_WRITE;
access_dev = READ_ONLY;
};
field {
name = "External Clock Input Available";
description = "1: This instance of wr_softpll_ng supports external 10MHz clock input\
0: no support for external 10 MHz clock input.";
prefix = "EXT_SUPPORTED";
type = BIT;
access_bus = READ_ONLY;
access_dev = WRITE_ONLY;
};
field {
name = "Enable PPS/phase alignment";
description = "write 1: starts aligning the external and local oscillator clock edges to be in phase\
right after the pulse on SYNC (PPS) input.\
write 0: no effect.";
prefix = "ALIGN_EN";
type = BIT;
access_bus = READ_WRITE;
access_dev = READ_ONLY;
};
field {
name = "PPS/phase alignment done";
description = "1: phase alignment triggered by writing to ALIGN_EN done.\
0: phase alignment in progress.";
prefix = "ALIGN_DONE";
type = BIT;
access_bus = READ_ONLY;
access_dev = WRITE_ONLY;
};
field {
name = "External Clock Reference Present";
description = "1: Reference clock present on the input\
0: reference input dead";
prefix = "EXT_REF_PRESENT";
type = BIT;
access_bus = READ_ONLY;
access_dev = WRITE_ONLY;
};
};
---------------------------------------------
-- DMTD gating/undersampling configuration
---------------------------------------------
reg {
reg {
name = "DMPLL Tag aux";
name = "DMTD Clock Control Register";
prefix = "TAG_AUX";
prefix = "DCCR";
field {
field {
name = "Tag value";
name = "DMTD Clock Undersampling Divider";
type = SLV;
prefix = "GATE_DIV";
size = 32;
size = 6;
access_bus = READ_ONLY;
type = SLV;
access_dev = WRITE_ONLY;
access_bus = READ_WRITE;
ack_read = "tag_aux_rd_ack_o";
access_dev = READ_ONLY;
};
};
};
};
reg {
reg {
name = "HPLL DAC Output";
name = "Reference Channel Undersampling Enable Register";
prefix = "DAC_HPLL";
prefix = "RCGER";
field {
field {
name = "DAC value";
name = "Reference Channel Undersampling Enable";
type = PASS_THROUGH;
prefix = "GATE_SEL";
size = 16;
size = 32;
};
type = PASS_THROUGH;
};
};
};
reg {
name = "DMPLL DAC Output";
reg {
prefix = "DAC_DMPLL";
name = "Output Channel Control Register";
prefix = "OCCR";
field {
name = "DAC value";
field {
type = PASS_THROUGH;
align = 8;
size = 16;
name = "Output Channel HW enable flag";
};
prefix = "OUT_EN";
};
type = SLV;
size = 8;
reg {
access_bus = READ_ONLY;
name = "AUX DAC Output";
access_dev = WRITE_ONLY;
prefix = "DAC_AUX";
};
field {
field {
name = "DAC value";
name = "Output Channel locked flag";
type = PASS_THROUGH;
prefix = "OUT_LOCK";
size = 24;
type = SLV;
};
size = 8;
};
access_bus = READ_WRITE;
access_dev = READ_ONLY;
reg {
};
name = "Deglitcher threshold";
};
prefix = "DEGLITCH_THR";
reg {
field {
name = "Reference Channel Enable Register";
name = "Threshold";
prefix = "RCER";
type = SLV;
size = 16;
field {
access_bus = READ_WRITE;
name = "Reference Channel Enable";
access_dev = READ_ONLY;
description = "write 1: enables tag generation on the input channel corresponding to the written bit\
};
write 0: disables tag generation";
};
type = SLV;
size = 32;
access_bus = READ_WRITE;
irq {
access_dev = READ_WRITE;
name = "Got a tag";
load = LOAD_EXT;
prefix = "TAG";
};
trigger = LEVEL_1;
};
};
};
reg {
name = "Output Channel Enable Register";
prefix = "OCER";
field {
name = "Output Channel Enable";
description = "write 1: enables tag generation on the output channel corresponding to the written bit\
write 0: disables tag generation";
type = SLV;
size = 8;
access_bus = READ_WRITE;
access_dev = READ_WRITE;
load = LOAD_EXT;
};
};
reg {
name = "HPLL Period Error";
prefix = "PER_HPLL";
field {
name = "Period error value";
prefix = "ERROR";
type = SLV;
size = 16;
access_bus = READ_ONLY;
access_dev = WRITE_ONLY;
ack_read = "tag_hpll_rd_period_o";
};
field {
name = "Period Error Valid";
prefix = "VALID";
type = BIT;
access_bus = READ_ONLY;
access_dev = WRITE_ONLY;
};
};
reg {
name = "Helper DAC Output";
prefix = "DAC_HPLL";
field {
name = "DAC value";
type = PASS_THROUGH;
size = 16;
};
};
reg {
name = "Main DAC Output";
prefix = "DAC_MAIN";
field {
name = "DAC value";
prefix = "VALUE";
type = PASS_THROUGH;
size = 16;
};
field {
name = "DAC select";
prefix = "DAC_SEL";
description = "Selects the output DAC to be updated with VALUE";
type = PASS_THROUGH;
size = 4;
};
};
reg {
name = "Deglitcher threshold";
prefix = "DEGLITCH_THR";
field {
name = "Threshold";
type = SLV;
size = 16;
access_bus = READ_WRITE;
access_dev = READ_ONLY;
};
};
reg {
name = "Debug FIFO Register - SPLL side";
prefix = "DFR_SPLL";
field {
name = "Debug Value";
prefix = "VALUE";
size = 31;
type = PASS_THROUGH;
};
field {
name = "End-of-Sample";
prefix = "EOS";
size = 1;
type = PASS_THROUGH;
};
};
fifo_reg {
name = "Debug FIFO Register - Host side";
prefix = "DFR_HOST";
direction = CORE_TO_BUS;
size = 8192;
flags_dev = {FIFO_FULL, FIFO_EMPTY, FIFO_COUNT};
flags_bus = {FIFO_FULL, FIFO_EMPTY, FIFO_COUNT};
field {
name = "Value";
prefix = "VALUE";
type = SLV;
size = 32;
};
field {
name = "Seq ID";
prefix = "SEQ_ID";
type = SLV;
size = 16;
};
};
fifo_reg {
name = "Tag Readout Register";
prefix = "TRR";
direction = CORE_TO_BUS;
size = 32;
flags_dev = {FIFO_FULL, FIFO_EMPTY};
flags_bus = {FIFO_EMPTY};
field {
name = "Tag value";
prefix = "VALUE";
type = SLV;
size = 24;
};
field {
name = "Channel ID";
description = "Tagged Channel ID: 0-31: reference tags, 32-47: output tags";
prefix = "CHAN_ID";
type = SLV;
size = 7;
};
field {
name = "Discontinuous bit";
prefix = "DISC";
description = "1: previous tag has been dropped due to FIFO overflow";
type = BIT;
};
};
irq {
name = "Got a tag";
prefix = "TAG";
trigger = LEVEL_1;
};
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment