Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
wr2rf-vme
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
5
Issues
5
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
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
wr2rf-vme
Commits
08d1bc0b
Commit
08d1bc0b
authored
Sep 01, 2021
by
John Gill
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added registers for atomic updates to iqdac IQ amplitude and phase functions.
parent
bf56e518
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
421 additions
and
119 deletions
+421
-119
trigunit_regs.vhd
hdl/rtl/registers/trigunit_regs.vhd
+1
-1
wr2rf_ctrl_regs.cheby
hdl/rtl/registers/wr2rf_ctrl_regs.cheby
+58
-4
wr2rf_init_rf_regs.vhd
hdl/rtl/registers/wr2rf_init_rf_regs.vhd
+1
-1
wr2rf_rfnco_regs.vhd
hdl/rtl/registers/wr2rf_rfnco_regs.vhd
+1
-1
wr2rf_rftrigger_regs.vhd
hdl/rtl/registers/wr2rf_rftrigger_regs.vhd
+1
-1
wr2rf_vme_regs.vhd
hdl/rtl/registers/wr2rf_vme_regs.vhd
+273
-75
wr2rf_ctrl_regs.h
software/include/wr2rf_ctrl_regs.h
+83
-33
wr2rf_init_regs.h
software/include/wr2rf_init_regs.h
+1
-1
wr2rf_rftrigger_regs.h
software/include/wr2rf_rftrigger_regs.h
+1
-1
wr2rf_vme_regs.h
software/include/wr2rf_vme_regs.h
+1
-1
No files found.
hdl/rtl/registers/trigunit_regs.vhd
View file @
08d1bc0b
-- Do not edit. Generated on
Fri Apr 16 10:16:55
2021 by jgill
-- Do not edit. Generated on
Wed Sep 01 09:30:11
2021 by jgill
-- With Cheby 1.4.dev0 and these options:
-- -i trigunit_regs.cheby --gen-hdl trigunit_regs.vhd
...
...
hdl/rtl/registers/wr2rf_ctrl_regs.cheby
View file @
08d1bc0b
...
...
@@ -25,25 +25,79 @@ memory-map:
size: 4096
x-hdl:
busgroup: true
- reg:
name: rf1_iqdac_phase
description: phase represented as a signed integer
access: rw
width: 16
- reg:
name: rf2_iqdac_phase
description: phase represented as a signed integer
access: rw
width: 16
- reg:
name: rf1_iqdac_phase_update
description: phase represented as a signed integer
access: rw
width: 16
children:
- field:
name: valid
range: 0
preset: 0
x-hdl:
type: autoclear
- reg:
name: rf2_iqdac_phase_update
description: phase represented as a signed integer
access: rw
width: 16
children:
- field:
name: valid
range: 0
preset: 0
x-hdl:
type: autoclear
- reg:
name: rf1_iqdac_igain_arm
description: I ampl/phase for IQ complex multiplier
access: rw
width: 16
- reg:
name: rf1_iqdac_qgain_arm
description: Q ampl/phase for IQ complex multiplier
access: rw
width: 16
- reg:
name: rf2_iqdac_igain_arm
description: I ampl/phase for IQ complex multiplier
access: rw
width: 16
- reg:
name: rf2_iqdac_qgain_arm
description: Q ampl/phase for IQ complex multiplier
access: rw
width: 16
- reg:
name: rf1_iqdac_igain
description: I gain for IQ complex multiplier
access: r
w
access: r
o
width: 16
- reg:
name: rf1_iqdac_qgain
description: I gain for IQ complex multiplier
access: r
w
access: r
o
width: 16
- reg:
name: rf2_iqdac_igain
description: I gain for IQ complex multiplier
access: r
w
access: r
o
width: 16
- reg:
name: rf2_iqdac_qgain
description: I gain for IQ complex multiplier
access: r
w
access: r
o
width: 16
- reg:
name: rf1_iqdac_ctrl
...
...
hdl/rtl/registers/wr2rf_init_rf_regs.vhd
View file @
08d1bc0b
-- Do not edit. Generated on
Fri Apr 16 10:16:56
2021 by jgill
-- Do not edit. Generated on
Wed Sep 01 09:30:11
2021 by jgill
-- With Cheby 1.4.dev0 and these options:
-- -i wr2rf_init_rf_regs.cheby --gen-hdl wr2rf_init_rf_regs.vhd
...
...
hdl/rtl/registers/wr2rf_rfnco_regs.vhd
View file @
08d1bc0b
-- Do not edit. Generated on
Fri Apr 16 10:16:57
2021 by jgill
-- Do not edit. Generated on
Wed Sep 01 09:30:12
2021 by jgill
-- With Cheby 1.4.dev0 and these options:
-- -i RFNCO.cheby --gen-hdl
...
...
hdl/rtl/registers/wr2rf_rftrigger_regs.vhd
View file @
08d1bc0b
-- Do not edit. Generated on
Fri Apr 16 10:16:56
2021 by jgill
-- Do not edit. Generated on
Wed Sep 01 09:30:11
2021 by jgill
-- With Cheby 1.4.dev0 and these options:
-- -i wr2rf_rftrigger_regs.cheby --gen-hdl wr2rf_rftrigger_regs.vhd
...
...
hdl/rtl/registers/wr2rf_vme_regs.vhd
View file @
08d1bc0b
This diff is collapsed.
Click to expand it.
software/include/wr2rf_ctrl_regs.h
View file @
08d1bc0b
...
...
@@ -2,7 +2,7 @@
#define __CHEBY__WR2RF_CTRL_REGS__H__
#include "wr2rf_rftrigger_regs.h"
#define WR2RF_CTRL_REGS_SIZE 123
38
/* 0x303
2 */
#define WR2RF_CTRL_REGS_SIZE 123
54
/* 0x304
2 */
/* Registers for rf1 vtus */
#define WR2RF_CTRL_REGS_RF1_VTUS 0x0UL
...
...
@@ -20,50 +20,76 @@
#define WR2RF_CTRL_REGS_RF2_RFNCO 0x2000UL
#define WR2RF_CTRL_REGS_RF2_RFNCO_SIZE 4096
/* 0x1000 = 4KB */
/* phase represented as a signed integer */
#define WR2RF_CTRL_REGS_RF1_IQDAC_PHASE 0x3000UL
/* phase represented as a signed integer */
#define WR2RF_CTRL_REGS_RF2_IQDAC_PHASE 0x3002UL
/* phase represented as a signed integer */
#define WR2RF_CTRL_REGS_RF1_IQDAC_PHASE_UPDATE 0x3004UL
#define WR2RF_CTRL_REGS_RF1_IQDAC_PHASE_UPDATE_VALID 0x1UL
/* phase represented as a signed integer */
#define WR2RF_CTRL_REGS_RF2_IQDAC_PHASE_UPDATE 0x3006UL
#define WR2RF_CTRL_REGS_RF2_IQDAC_PHASE_UPDATE_VALID 0x1UL
/* I ampl/phase for IQ complex multiplier */
#define WR2RF_CTRL_REGS_RF1_IQDAC_IGAIN_ARM 0x3008UL
/* Q ampl/phase for IQ complex multiplier */
#define WR2RF_CTRL_REGS_RF1_IQDAC_QGAIN_ARM 0x300aUL
/* I ampl/phase for IQ complex multiplier */
#define WR2RF_CTRL_REGS_RF2_IQDAC_IGAIN_ARM 0x300cUL
/* Q ampl/phase for IQ complex multiplier */
#define WR2RF_CTRL_REGS_RF2_IQDAC_QGAIN_ARM 0x300eUL
/* I gain for IQ complex multiplier */
#define WR2RF_CTRL_REGS_RF1_IQDAC_IGAIN 0x30
0
0UL
#define WR2RF_CTRL_REGS_RF1_IQDAC_IGAIN 0x30
1
0UL
/* I gain for IQ complex multiplier */
#define WR2RF_CTRL_REGS_RF1_IQDAC_QGAIN 0x30
0
2UL
#define WR2RF_CTRL_REGS_RF1_IQDAC_QGAIN 0x30
1
2UL
/* I gain for IQ complex multiplier */
#define WR2RF_CTRL_REGS_RF2_IQDAC_IGAIN 0x30
0
4UL
#define WR2RF_CTRL_REGS_RF2_IQDAC_IGAIN 0x30
1
4UL
/* I gain for IQ complex multiplier */
#define WR2RF_CTRL_REGS_RF2_IQDAC_QGAIN 0x30
0
6UL
#define WR2RF_CTRL_REGS_RF2_IQDAC_QGAIN 0x30
1
6UL
/* Select iqdac I + Q sources */
#define WR2RF_CTRL_REGS_RF1_IQDAC_CTRL 0x30
0
8UL
#define WR2RF_CTRL_REGS_RF1_IQDAC_CTRL 0x30
1
8UL
/* Select iqdac I + Q sources */
#define WR2RF_CTRL_REGS_RF2_IQDAC_CTRL 0x30
0
aUL
#define WR2RF_CTRL_REGS_RF2_IQDAC_CTRL 0x30
1
aUL
/* Select iqdac ram address */
#define WR2RF_CTRL_REGS_IQDAC_RAM_ADDR 0x30
0
cUL
#define WR2RF_CTRL_REGS_IQDAC_RAM_ADDR 0x30
1
cUL
/* iqdac ram data to be written at address iqdac_ram_addr */
#define WR2RF_CTRL_REGS_IQDAC_RAM_DATA 0x30
0
eUL
#define WR2RF_CTRL_REGS_IQDAC_RAM_DATA 0x30
1
eUL
/* Some magic controls bit tbd */
#define WR2RF_CTRL_REGS_IQDAC_RAM_WRITE 0x30
1
0UL
#define WR2RF_CTRL_REGS_IQDAC_RAM_WRITE 0x30
2
0UL
/* Some magic controls bit tbd */
#define WR2RF_CTRL_REGS_IQDAC_RAM_PLAY 0x30
1
2UL
#define WR2RF_CTRL_REGS_IQDAC_RAM_PLAY 0x30
2
2UL
/* None */
#define WR2RF_CTRL_REGS_RF1_DDS_FTW_VALID 0x30
1
4UL
#define WR2RF_CTRL_REGS_RF1_DDS_FTW_VALID 0x30
2
4UL
/* Phase increment value to xilinx dds core */
#define WR2RF_CTRL_REGS_RF1_DDS_FTW 0x30
1
8UL
#define WR2RF_CTRL_REGS_RF1_DDS_FTW 0x30
2
8UL
/* None */
#define WR2RF_CTRL_REGS_RF2_DDS_FTW_VALID 0x30
2
0UL
#define WR2RF_CTRL_REGS_RF2_DDS_FTW_VALID 0x30
3
0UL
/* Phase increment value to xilinx dds core */
#define WR2RF_CTRL_REGS_RF2_DDS_FTW 0x30
2
8UL
#define WR2RF_CTRL_REGS_RF2_DDS_FTW 0x30
3
8UL
/* Configures behaviour for how an nco_reset will operate */
#define WR2RF_CTRL_REGS_NCO_RESET_CTRL 0x30
3
0UL
#define WR2RF_CTRL_REGS_NCO_RESET_CTRL 0x30
4
0UL
#define WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_DDS 0x1UL
#define WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RFNCO_CH1 0x2UL
#define WR2RF_CTRL_REGS_NCO_RESET_CTRL_MASK_RFNCO_CH2 0x4UL
...
...
@@ -90,55 +116,79 @@ struct wr2rf_ctrl_regs {
/* [0x2000]: SUBMAP Registers for rf2 rfnco */
uint32_t
rf2_rfnco
[
1024
];
/* [0x3000]: REG (rw) I gain for IQ complex multiplier */
/* [0x3000]: REG (rw) phase represented as a signed integer */
uint16_t
rf1_iqdac_phase
;
/* [0x3002]: REG (rw) phase represented as a signed integer */
uint16_t
rf2_iqdac_phase
;
/* [0x3004]: REG (rw) phase represented as a signed integer */
uint16_t
rf1_iqdac_phase_update
;
/* [0x3006]: REG (rw) phase represented as a signed integer */
uint16_t
rf2_iqdac_phase_update
;
/* [0x3008]: REG (rw) I ampl/phase for IQ complex multiplier */
uint16_t
rf1_iqdac_igain_arm
;
/* [0x300a]: REG (rw) Q ampl/phase for IQ complex multiplier */
uint16_t
rf1_iqdac_qgain_arm
;
/* [0x300c]: REG (rw) I ampl/phase for IQ complex multiplier */
uint16_t
rf2_iqdac_igain_arm
;
/* [0x300e]: REG (rw) Q ampl/phase for IQ complex multiplier */
uint16_t
rf2_iqdac_qgain_arm
;
/* [0x3010]: REG (ro) I gain for IQ complex multiplier */
uint16_t
rf1_iqdac_igain
;
/* [0x30
02]: REG (rw
) I gain for IQ complex multiplier */
/* [0x30
12]: REG (ro
) I gain for IQ complex multiplier */
uint16_t
rf1_iqdac_qgain
;
/* [0x30
04]: REG (rw
) I gain for IQ complex multiplier */
/* [0x30
14]: REG (ro
) I gain for IQ complex multiplier */
uint16_t
rf2_iqdac_igain
;
/* [0x30
06]: REG (rw
) I gain for IQ complex multiplier */
/* [0x30
16]: REG (ro
) I gain for IQ complex multiplier */
uint16_t
rf2_iqdac_qgain
;
/* [0x30
0
8]: REG (rw) Select iqdac I + Q sources */
/* [0x30
1
8]: REG (rw) Select iqdac I + Q sources */
uint16_t
rf1_iqdac_ctrl
;
/* [0x30
0
a]: REG (rw) Select iqdac I + Q sources */
/* [0x30
1
a]: REG (rw) Select iqdac I + Q sources */
uint16_t
rf2_iqdac_ctrl
;
/* [0x30
0
c]: REG (rw) Select iqdac ram address */
/* [0x30
1
c]: REG (rw) Select iqdac ram address */
uint16_t
iqdac_ram_addr
;
/* [0x30
0
e]: REG (rw) iqdac ram data to be written at address iqdac_ram_addr */
/* [0x30
1
e]: REG (rw) iqdac ram data to be written at address iqdac_ram_addr */
uint16_t
iqdac_ram_data
;
/* [0x30
1
0]: REG (rw) Some magic controls bit tbd */
/* [0x30
2
0]: REG (rw) Some magic controls bit tbd */
uint16_t
iqdac_ram_write
;
/* [0x30
1
2]: REG (rw) Some magic controls bit tbd */
/* [0x30
2
2]: REG (rw) Some magic controls bit tbd */
uint16_t
iqdac_ram_play
;
/* [0x30
1
4]: REG (rw) (no description) */
/* [0x30
2
4]: REG (rw) (no description) */
uint16_t
rf1_dds_ftw_valid
;
/* padding to: 123
12
words */
/* padding to: 123
28
words */
uint8_t
__padding_2
[
2
];
/* [0x30
1
8]: REG (rw) Phase increment value to xilinx dds core */
/* [0x30
2
8]: REG (rw) Phase increment value to xilinx dds core */
uint64_t
rf1_dds_ftw
;
/* [0x30
2
0]: REG (rw) (no description) */
/* [0x30
3
0]: REG (rw) (no description) */
uint16_t
rf2_dds_ftw_valid
;
/* padding to: 123
28
words */
/* padding to: 123
44
words */
uint8_t
__padding_3
[
6
];
/* [0x30
2
8]: REG (rw) Phase increment value to xilinx dds core */
/* [0x30
3
8]: REG (rw) Phase increment value to xilinx dds core */
uint64_t
rf2_dds_ftw
;
/* [0x30
3
0]: REG (rw) Configures behaviour for how an nco_reset will operate */
/* [0x30
4
0]: REG (rw) Configures behaviour for how an nco_reset will operate */
uint16_t
nco_reset_ctrl
;
};
...
...
software/include/wr2rf_init_regs.h
View file @
08d1bc0b
...
...
@@ -2,8 +2,8 @@
#define __CHEBY__WR2RF_INIT_REGS__H__
#include "oc_spi16_regs.h"
#include "hwInfo.h"
#include "wr2rf_init_rf_regs.h"
#include "hwInfo.h"
#define WR2RF_INIT_REGS_SIZE 16384
/* 0x4000 = 16KB */
/* RF indentification */
...
...
software/include/wr2rf_rftrigger_regs.h
View file @
08d1bc0b
#ifndef __CHEBY__WR2RF_RFTRIGGER_REGS__H__
#define __CHEBY__WR2RF_RFTRIGGER_REGS__H__
#include "vtudiag_regs.h"
#include "trigunit_regs.h"
#include "vtudiag_regs.h"
#define WR2RF_RFTRIGGER_REGS_SIZE 272
/* 0x110 */
/* None */
...
...
software/include/wr2rf_vme_regs.h
View file @
08d1bc0b
...
...
@@ -21,7 +21,7 @@ struct wr2rf_vme_regs {
struct
wr2rf_ctrl_regs
ctrl
;
/* padding to: 16384 words */
uint8_t
__padding_0
[
40
46
];
uint8_t
__padding_0
[
40
30
];
};
#endif
/* __CHEBY__WR2RF_VME_REGS__H__ */
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