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
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
-- Do not edit. Generated on
Fri Apr 16 10:16:58
2021 by jgill
-- Do not edit. Generated on
Wed Sep 01 09:30:13
2021 by jgill
-- With Cheby 1.4.dev0 and these options:
-- -i wr2rf_vme_regs.cheby --gen-hdl wr2rf_vme_regs.vhd
...
...
@@ -367,17 +367,41 @@ entity wr2rf_vme_regs is
ctrl_rf2_rfnco_i
:
in
t_wishbone_master_in
;
ctrl_rf2_rfnco_o
:
out
t_wishbone_master_out
;
-- phase represented as a signed integer
ctrl_rf1_iqdac_phase_o
:
out
std_logic_vector
(
15
downto
0
);
-- phase represented as a signed integer
ctrl_rf2_iqdac_phase_o
:
out
std_logic_vector
(
15
downto
0
);
-- phase represented as a signed integer
ctrl_rf1_iqdac_phase_update_valid_o
:
out
std_logic
;
-- phase represented as a signed integer
ctrl_rf2_iqdac_phase_update_valid_o
:
out
std_logic
;
-- I ampl/phase for IQ complex multiplier
ctrl_rf1_iqdac_igain_arm_o
:
out
std_logic_vector
(
15
downto
0
);
-- Q ampl/phase for IQ complex multiplier
ctrl_rf1_iqdac_qgain_arm_o
:
out
std_logic_vector
(
15
downto
0
);
-- I ampl/phase for IQ complex multiplier
ctrl_rf2_iqdac_igain_arm_o
:
out
std_logic_vector
(
15
downto
0
);
-- Q ampl/phase for IQ complex multiplier
ctrl_rf2_iqdac_qgain_arm_o
:
out
std_logic_vector
(
15
downto
0
);
-- I gain for IQ complex multiplier
ctrl_rf1_iqdac_igain_
o
:
out
std_logic_vector
(
15
downto
0
);
ctrl_rf1_iqdac_igain_
i
:
in
std_logic_vector
(
15
downto
0
);
-- I gain for IQ complex multiplier
ctrl_rf1_iqdac_qgain_
o
:
out
std_logic_vector
(
15
downto
0
);
ctrl_rf1_iqdac_qgain_
i
:
in
std_logic_vector
(
15
downto
0
);
-- I gain for IQ complex multiplier
ctrl_rf2_iqdac_igain_
o
:
out
std_logic_vector
(
15
downto
0
);
ctrl_rf2_iqdac_igain_
i
:
in
std_logic_vector
(
15
downto
0
);
-- I gain for IQ complex multiplier
ctrl_rf2_iqdac_qgain_
o
:
out
std_logic_vector
(
15
downto
0
);
ctrl_rf2_iqdac_qgain_
i
:
in
std_logic_vector
(
15
downto
0
);
-- Select iqdac I + Q sources
ctrl_rf1_iqdac_ctrl_o
:
out
std_logic_vector
(
15
downto
0
);
...
...
@@ -704,18 +728,30 @@ architecture syn of wr2rf_vme_regs is
signal
ctrl_rf2_rfnco_tr
:
std_logic
;
signal
ctrl_rf2_rfnco_wack
:
std_logic
;
signal
ctrl_rf2_rfnco_rack
:
std_logic
;
signal
ctrl_rf1_iqdac_igain_reg
:
std_logic_vector
(
15
downto
0
);
signal
ctrl_rf1_iqdac_igain_wreq
:
std_logic
;
signal
ctrl_rf1_iqdac_igain_wack
:
std_logic
;
signal
ctrl_rf1_iqdac_qgain_reg
:
std_logic_vector
(
15
downto
0
);
signal
ctrl_rf1_iqdac_qgain_wreq
:
std_logic
;
signal
ctrl_rf1_iqdac_qgain_wack
:
std_logic
;
signal
ctrl_rf2_iqdac_igain_reg
:
std_logic_vector
(
15
downto
0
);
signal
ctrl_rf2_iqdac_igain_wreq
:
std_logic
;
signal
ctrl_rf2_iqdac_igain_wack
:
std_logic
;
signal
ctrl_rf2_iqdac_qgain_reg
:
std_logic_vector
(
15
downto
0
);
signal
ctrl_rf2_iqdac_qgain_wreq
:
std_logic
;
signal
ctrl_rf2_iqdac_qgain_wack
:
std_logic
;
signal
ctrl_rf1_iqdac_phase_reg
:
std_logic_vector
(
15
downto
0
);
signal
ctrl_rf1_iqdac_phase_wreq
:
std_logic
;
signal
ctrl_rf1_iqdac_phase_wack
:
std_logic
;
signal
ctrl_rf2_iqdac_phase_reg
:
std_logic_vector
(
15
downto
0
);
signal
ctrl_rf2_iqdac_phase_wreq
:
std_logic
;
signal
ctrl_rf2_iqdac_phase_wack
:
std_logic
;
signal
ctrl_rf1_iqdac_phase_update_valid_reg
:
std_logic
;
signal
ctrl_rf1_iqdac_phase_update_wreq
:
std_logic
;
signal
ctrl_rf1_iqdac_phase_update_wack
:
std_logic
;
signal
ctrl_rf2_iqdac_phase_update_valid_reg
:
std_logic
;
signal
ctrl_rf2_iqdac_phase_update_wreq
:
std_logic
;
signal
ctrl_rf2_iqdac_phase_update_wack
:
std_logic
;
signal
ctrl_rf1_iqdac_igain_arm_reg
:
std_logic_vector
(
15
downto
0
);
signal
ctrl_rf1_iqdac_igain_arm_wreq
:
std_logic
;
signal
ctrl_rf1_iqdac_igain_arm_wack
:
std_logic
;
signal
ctrl_rf1_iqdac_qgain_arm_reg
:
std_logic_vector
(
15
downto
0
);
signal
ctrl_rf1_iqdac_qgain_arm_wreq
:
std_logic
;
signal
ctrl_rf1_iqdac_qgain_arm_wack
:
std_logic
;
signal
ctrl_rf2_iqdac_igain_arm_reg
:
std_logic_vector
(
15
downto
0
);
signal
ctrl_rf2_iqdac_igain_arm_wreq
:
std_logic
;
signal
ctrl_rf2_iqdac_igain_arm_wack
:
std_logic
;
signal
ctrl_rf2_iqdac_qgain_arm_reg
:
std_logic_vector
(
15
downto
0
);
signal
ctrl_rf2_iqdac_qgain_arm_wreq
:
std_logic
;
signal
ctrl_rf2_iqdac_qgain_arm_wack
:
std_logic
;
signal
ctrl_rf1_iqdac_ctrl_reg
:
std_logic_vector
(
15
downto
0
);
signal
ctrl_rf1_iqdac_ctrl_wreq
:
std_logic
;
signal
ctrl_rf1_iqdac_ctrl_wack
:
std_logic
;
...
...
@@ -2185,70 +2221,146 @@ begin
ctrl_rf2_rfnco_o
.
we
<=
ctrl_rf2_rfnco_wt
;
ctrl_rf2_rfnco_o
.
dat
(
15
downto
0
)
<=
wr_dat_d0
;
-- Register ctrl_rf1_iqdac_
igain
ctrl_rf1_iqdac_
igain_o
<=
ctrl_rf1_iqdac_igain
_reg
;
-- Register ctrl_rf1_iqdac_
phase
ctrl_rf1_iqdac_
phase_o
<=
ctrl_rf1_iqdac_phase
_reg
;
process
(
clk_i
)
begin
if
rising_edge
(
clk_i
)
then
if
rst_n_i
=
'0'
then
ctrl_rf1_iqdac_
igain
_reg
<=
"0000000000000000"
;
ctrl_rf1_iqdac_
igain
_wack
<=
'0'
;
ctrl_rf1_iqdac_
phase
_reg
<=
"0000000000000000"
;
ctrl_rf1_iqdac_
phase
_wack
<=
'0'
;
else
if
ctrl_rf1_iqdac_
igain
_wreq
=
'1'
then
ctrl_rf1_iqdac_
igain
_reg
<=
wr_dat_d0
;
if
ctrl_rf1_iqdac_
phase
_wreq
=
'1'
then
ctrl_rf1_iqdac_
phase
_reg
<=
wr_dat_d0
;
end
if
;
ctrl_rf1_iqdac_
igain_wack
<=
ctrl_rf1_iqdac_igain
_wreq
;
ctrl_rf1_iqdac_
phase_wack
<=
ctrl_rf1_iqdac_phase
_wreq
;
end
if
;
end
if
;
end
process
;
-- Register ctrl_rf
1_iqdac_qgain
ctrl_rf
1_iqdac_qgain_o
<=
ctrl_rf1_iqdac_qgain
_reg
;
-- Register ctrl_rf
2_iqdac_phase
ctrl_rf
2_iqdac_phase_o
<=
ctrl_rf2_iqdac_phase
_reg
;
process
(
clk_i
)
begin
if
rising_edge
(
clk_i
)
then
if
rst_n_i
=
'0'
then
ctrl_rf
1_iqdac_qgain
_reg
<=
"0000000000000000"
;
ctrl_rf
1_iqdac_qgain
_wack
<=
'0'
;
ctrl_rf
2_iqdac_phase
_reg
<=
"0000000000000000"
;
ctrl_rf
2_iqdac_phase
_wack
<=
'0'
;
else
if
ctrl_rf
1_iqdac_qgain
_wreq
=
'1'
then
ctrl_rf
1_iqdac_qgain
_reg
<=
wr_dat_d0
;
if
ctrl_rf
2_iqdac_phase
_wreq
=
'1'
then
ctrl_rf
2_iqdac_phase
_reg
<=
wr_dat_d0
;
end
if
;
ctrl_rf
1_iqdac_qgain_wack
<=
ctrl_rf1_iqdac_qgain
_wreq
;
ctrl_rf
2_iqdac_phase_wack
<=
ctrl_rf2_iqdac_phase
_wreq
;
end
if
;
end
if
;
end
process
;
-- Register ctrl_rf
2_iqdac_igain
ctrl_rf
2_iqdac_igain_o
<=
ctrl_rf2_iqdac_igain
_reg
;
-- Register ctrl_rf
1_iqdac_phase_update
ctrl_rf
1_iqdac_phase_update_valid_o
<=
ctrl_rf1_iqdac_phase_update_valid
_reg
;
process
(
clk_i
)
begin
if
rising_edge
(
clk_i
)
then
if
rst_n_i
=
'0'
then
ctrl_rf
2_iqdac_igain_reg
<=
"0000000000000000"
;
ctrl_rf
2_iqdac_igain
_wack
<=
'0'
;
ctrl_rf
1_iqdac_phase_update_valid_reg
<=
'0'
;
ctrl_rf
1_iqdac_phase_update
_wack
<=
'0'
;
else
if
ctrl_rf2_iqdac_igain_wreq
=
'1'
then
ctrl_rf2_iqdac_igain_reg
<=
wr_dat_d0
;
if
ctrl_rf1_iqdac_phase_update_wreq
=
'1'
then
ctrl_rf1_iqdac_phase_update_valid_reg
<=
wr_dat_d0
(
0
);
else
ctrl_rf1_iqdac_phase_update_valid_reg
<=
'0'
;
end
if
;
ctrl_rf
2_iqdac_igain_wack
<=
ctrl_rf2_iqdac_igain
_wreq
;
ctrl_rf
1_iqdac_phase_update_wack
<=
ctrl_rf1_iqdac_phase_update
_wreq
;
end
if
;
end
if
;
end
process
;
-- Register ctrl_rf2_iqdac_
qgain
ctrl_rf2_iqdac_
qgain_o
<=
ctrl_rf2_iqdac_qgain
_reg
;
-- Register ctrl_rf2_iqdac_
phase_update
ctrl_rf2_iqdac_
phase_update_valid_o
<=
ctrl_rf2_iqdac_phase_update_valid
_reg
;
process
(
clk_i
)
begin
if
rising_edge
(
clk_i
)
then
if
rst_n_i
=
'0'
then
ctrl_rf2_iqdac_
qgain_reg
<=
"0000000000000000"
;
ctrl_rf2_iqdac_
qgain
_wack
<=
'0'
;
ctrl_rf2_iqdac_
phase_update_valid_reg
<=
'0'
;
ctrl_rf2_iqdac_
phase_update
_wack
<=
'0'
;
else
if
ctrl_rf2_iqdac_qgain_wreq
=
'1'
then
ctrl_rf2_iqdac_qgain_reg
<=
wr_dat_d0
;
if
ctrl_rf2_iqdac_phase_update_wreq
=
'1'
then
ctrl_rf2_iqdac_phase_update_valid_reg
<=
wr_dat_d0
(
0
);
else
ctrl_rf2_iqdac_phase_update_valid_reg
<=
'0'
;
end
if
;
ctrl_rf2_iqdac_
qgain_wack
<=
ctrl_rf2_iqdac_qgain
_wreq
;
ctrl_rf2_iqdac_
phase_update_wack
<=
ctrl_rf2_iqdac_phase_update
_wreq
;
end
if
;
end
if
;
end
process
;
-- Register ctrl_rf1_iqdac_igain_arm
ctrl_rf1_iqdac_igain_arm_o
<=
ctrl_rf1_iqdac_igain_arm_reg
;
process
(
clk_i
)
begin
if
rising_edge
(
clk_i
)
then
if
rst_n_i
=
'0'
then
ctrl_rf1_iqdac_igain_arm_reg
<=
"0000000000000000"
;
ctrl_rf1_iqdac_igain_arm_wack
<=
'0'
;
else
if
ctrl_rf1_iqdac_igain_arm_wreq
=
'1'
then
ctrl_rf1_iqdac_igain_arm_reg
<=
wr_dat_d0
;
end
if
;
ctrl_rf1_iqdac_igain_arm_wack
<=
ctrl_rf1_iqdac_igain_arm_wreq
;
end
if
;
end
if
;
end
process
;
-- Register ctrl_rf1_iqdac_qgain_arm
ctrl_rf1_iqdac_qgain_arm_o
<=
ctrl_rf1_iqdac_qgain_arm_reg
;
process
(
clk_i
)
begin
if
rising_edge
(
clk_i
)
then
if
rst_n_i
=
'0'
then
ctrl_rf1_iqdac_qgain_arm_reg
<=
"0000000000000000"
;
ctrl_rf1_iqdac_qgain_arm_wack
<=
'0'
;
else
if
ctrl_rf1_iqdac_qgain_arm_wreq
=
'1'
then
ctrl_rf1_iqdac_qgain_arm_reg
<=
wr_dat_d0
;
end
if
;
ctrl_rf1_iqdac_qgain_arm_wack
<=
ctrl_rf1_iqdac_qgain_arm_wreq
;
end
if
;
end
if
;
end
process
;
-- Register ctrl_rf2_iqdac_igain_arm
ctrl_rf2_iqdac_igain_arm_o
<=
ctrl_rf2_iqdac_igain_arm_reg
;
process
(
clk_i
)
begin
if
rising_edge
(
clk_i
)
then
if
rst_n_i
=
'0'
then
ctrl_rf2_iqdac_igain_arm_reg
<=
"0000000000000000"
;
ctrl_rf2_iqdac_igain_arm_wack
<=
'0'
;
else
if
ctrl_rf2_iqdac_igain_arm_wreq
=
'1'
then
ctrl_rf2_iqdac_igain_arm_reg
<=
wr_dat_d0
;
end
if
;
ctrl_rf2_iqdac_igain_arm_wack
<=
ctrl_rf2_iqdac_igain_arm_wreq
;
end
if
;
end
if
;
end
process
;
-- Register ctrl_rf2_iqdac_qgain_arm
ctrl_rf2_iqdac_qgain_arm_o
<=
ctrl_rf2_iqdac_qgain_arm_reg
;
process
(
clk_i
)
begin
if
rising_edge
(
clk_i
)
then
if
rst_n_i
=
'0'
then
ctrl_rf2_iqdac_qgain_arm_reg
<=
"0000000000000000"
;
ctrl_rf2_iqdac_qgain_arm_wack
<=
'0'
;
else
if
ctrl_rf2_iqdac_qgain_arm_wreq
=
'1'
then
ctrl_rf2_iqdac_qgain_arm_reg
<=
wr_dat_d0
;
end
if
;
ctrl_rf2_iqdac_qgain_arm_wack
<=
ctrl_rf2_iqdac_qgain_arm_wreq
;
end
if
;
end
if
;
end
process
;
-- Register ctrl_rf1_iqdac_igain
-- Register ctrl_rf1_iqdac_qgain
-- Register ctrl_rf2_iqdac_igain
-- Register ctrl_rf2_iqdac_qgain
-- Register ctrl_rf1_iqdac_ctrl
ctrl_rf1_iqdac_ctrl_o
<=
ctrl_rf1_iqdac_ctrl_reg
;
process
(
clk_i
)
begin
...
...
@@ -2461,7 +2573,7 @@ begin
end
process
;
-- Process for write requests.
process
(
wr_adr_d0
,
wr_req_d0
,
init_hwinfo_echo_wack
,
init_fw_update_wack
,
init_clock_ctrl_wack
,
init_wrcore_ctrl_wack
,
init_iodelay_ctrl_wack
,
init_mmcm_shift_wack
,
init_tmg_wack
,
init_lemo_rf1_t1_start_wack
,
init_lemo_rf1_t2_start_wack
,
init_lemo_rf2_t1_start_wack
,
init_lemo_rf2_t2_start_wack
,
init_lemo_rf1_t1_stop_wack
,
init_lemo_rf1_t2_stop_wack
,
init_lemo_rf2_t1_stop_wack
,
init_lemo_rf2_t2_stop_wack
,
init_tmgio1_wack
,
init_tmgio2_wack
,
init_tmgio3_wack
,
init_tmgio4_wack
,
init_tmgclk1_wack
,
init_tmgclk2_wack
,
init_lemo_wack
,
init_lemo_ext_wack
,
init_softstart_wack
,
init_softstop_wack
,
init_lemo_pulse_wack
,
init_pin_ctrl_wack
,
init_pll_ctrl_wack
,
init_dds_ctrl_wack
,
init_dds_ioupdate_wack
,
init_ocxo_ctrl_wack
,
init_nco_azimuthal_wack
,
init_nco_cabledelay_wack
,
init_nco_hb_wack
,
init_nco_h1_ftw_wack
,
init_nco_h1_prog_wack
,
init_nco_ctrl_wack
,
init_nco_update_wack
,
init_nco_loc_or_wrs_wack
,
init_svec_mup_ctrl_wack
,
init_svec_mup_rftrig_wack
,
init_svec_mup_fmc1_wack
,
init_svec_mup_fmc2_wack
,
init_wrc_page0_wack
,
init_wrc_page1_wack
,
init_txframe_ftw_h1_main_wack
,
init_txframe_ftw_h1_prog_wack
,
init_txframe_ftw_h1_on_wack
,
init_txframe_dftw_h1_slip1_wack
,
init_txframe_dftw_h1_slip2_wack
,
init_txframe_setpoint1_wack
,
init_txframe_setpoint2_wack
,
init_txframe_setpoint3_wack
,
init_txframe_setpoint4_wack
,
init_txframe_setpoint5_wack
,
init_txframe_setpoint6_wack
,
init_txframe_setpoint7_wack
,
init_txframe_setpoint8_wack
,
init_txframe_noise_wack
,
init_txframe_control_wack
,
init_pll_spi_wack
,
init_rf_spi_wack
,
init_rf_wack
,
init_framerxtx_wack
,
init_wrpc_wack
,
ctrl_rf1_vtus_wack
,
ctrl_rf2_vtus_wack
,
ctrl_rf1_rfnco_wack
,
ctrl_rf2_rfnco_wack
,
ctrl_rf1_iqdac_
igain_wack
,
ctrl_rf1_iqdac_qgain_wack
,
ctrl_rf2_iqdac_igain_wack
,
ctrl_rf2_iqdac_qgain
_wack
,
ctrl_rf1_iqdac_ctrl_wack
,
ctrl_rf2_iqdac_ctrl_wack
,
ctrl_iqdac_ram_addr_wack
,
ctrl_iqdac_ram_data_wack
,
ctrl_iqdac_ram_write_wack
,
ctrl_iqdac_ram_play_wack
,
ctrl_rf1_dds_ftw_valid_wack
,
ctrl_rf1_dds_ftw_wack
,
ctrl_rf2_dds_ftw_valid_wack
,
ctrl_rf2_dds_ftw_wack
,
ctrl_nco_reset_ctrl_wack
)
begin
process
(
wr_adr_d0
,
wr_req_d0
,
init_hwinfo_echo_wack
,
init_fw_update_wack
,
init_clock_ctrl_wack
,
init_wrcore_ctrl_wack
,
init_iodelay_ctrl_wack
,
init_mmcm_shift_wack
,
init_tmg_wack
,
init_lemo_rf1_t1_start_wack
,
init_lemo_rf1_t2_start_wack
,
init_lemo_rf2_t1_start_wack
,
init_lemo_rf2_t2_start_wack
,
init_lemo_rf1_t1_stop_wack
,
init_lemo_rf1_t2_stop_wack
,
init_lemo_rf2_t1_stop_wack
,
init_lemo_rf2_t2_stop_wack
,
init_tmgio1_wack
,
init_tmgio2_wack
,
init_tmgio3_wack
,
init_tmgio4_wack
,
init_tmgclk1_wack
,
init_tmgclk2_wack
,
init_lemo_wack
,
init_lemo_ext_wack
,
init_softstart_wack
,
init_softstop_wack
,
init_lemo_pulse_wack
,
init_pin_ctrl_wack
,
init_pll_ctrl_wack
,
init_dds_ctrl_wack
,
init_dds_ioupdate_wack
,
init_ocxo_ctrl_wack
,
init_nco_azimuthal_wack
,
init_nco_cabledelay_wack
,
init_nco_hb_wack
,
init_nco_h1_ftw_wack
,
init_nco_h1_prog_wack
,
init_nco_ctrl_wack
,
init_nco_update_wack
,
init_nco_loc_or_wrs_wack
,
init_svec_mup_ctrl_wack
,
init_svec_mup_rftrig_wack
,
init_svec_mup_fmc1_wack
,
init_svec_mup_fmc2_wack
,
init_wrc_page0_wack
,
init_wrc_page1_wack
,
init_txframe_ftw_h1_main_wack
,
init_txframe_ftw_h1_prog_wack
,
init_txframe_ftw_h1_on_wack
,
init_txframe_dftw_h1_slip1_wack
,
init_txframe_dftw_h1_slip2_wack
,
init_txframe_setpoint1_wack
,
init_txframe_setpoint2_wack
,
init_txframe_setpoint3_wack
,
init_txframe_setpoint4_wack
,
init_txframe_setpoint5_wack
,
init_txframe_setpoint6_wack
,
init_txframe_setpoint7_wack
,
init_txframe_setpoint8_wack
,
init_txframe_noise_wack
,
init_txframe_control_wack
,
init_pll_spi_wack
,
init_rf_spi_wack
,
init_rf_wack
,
init_framerxtx_wack
,
init_wrpc_wack
,
ctrl_rf1_vtus_wack
,
ctrl_rf2_vtus_wack
,
ctrl_rf1_rfnco_wack
,
ctrl_rf2_rfnco_wack
,
ctrl_rf1_iqdac_
phase_wack
,
ctrl_rf2_iqdac_phase_wack
,
ctrl_rf1_iqdac_phase_update_wack
,
ctrl_rf2_iqdac_phase_update_wack
,
ctrl_rf1_iqdac_igain_arm_wack
,
ctrl_rf1_iqdac_qgain_arm_wack
,
ctrl_rf2_iqdac_igain_arm_wack
,
ctrl_rf2_iqdac_qgain_arm
_wack
,
ctrl_rf1_iqdac_ctrl_wack
,
ctrl_rf2_iqdac_ctrl_wack
,
ctrl_iqdac_ram_addr_wack
,
ctrl_iqdac_ram_data_wack
,
ctrl_iqdac_ram_write_wack
,
ctrl_iqdac_ram_play_wack
,
ctrl_rf1_dds_ftw_valid_wack
,
ctrl_rf1_dds_ftw_wack
,
ctrl_rf2_dds_ftw_valid_wack
,
ctrl_rf2_dds_ftw_wack
,
ctrl_nco_reset_ctrl_wack
)
begin
init_hwinfo_echo_wreq
<=
(
others
=>
'0'
);
init_fw_update_we
<=
'0'
;
init_reconfigure_wreq
<=
'0'
;
...
...
@@ -2532,10 +2644,14 @@ begin
ctrl_rf2_vtus_we
<=
'0'
;
ctrl_rf1_rfnco_we
<=
'0'
;
ctrl_rf2_rfnco_we
<=
'0'
;
ctrl_rf1_iqdac_igain_wreq
<=
'0'
;
ctrl_rf1_iqdac_qgain_wreq
<=
'0'
;
ctrl_rf2_iqdac_igain_wreq
<=
'0'
;
ctrl_rf2_iqdac_qgain_wreq
<=
'0'
;
ctrl_rf1_iqdac_phase_wreq
<=
'0'
;
ctrl_rf2_iqdac_phase_wreq
<=
'0'
;
ctrl_rf1_iqdac_phase_update_wreq
<=
'0'
;
ctrl_rf2_iqdac_phase_update_wreq
<=
'0'
;
ctrl_rf1_iqdac_igain_arm_wreq
<=
'0'
;
ctrl_rf1_iqdac_qgain_arm_wreq
<=
'0'
;
ctrl_rf2_iqdac_igain_arm_wreq
<=
'0'
;
ctrl_rf2_iqdac_qgain_arm_wreq
<=
'0'
;
ctrl_rf1_iqdac_ctrl_wreq
<=
'0'
;
ctrl_rf2_iqdac_ctrl_wreq
<=
'0'
;
ctrl_iqdac_ram_addr_wreq
<=
'0'
;
...
...
@@ -3351,27 +3467,65 @@ begin
when
"1"
=>
case
wr_adr_d0
(
11
downto
3
)
is
when
"000000000"
=>
case
wr_adr_d0
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf1_iqdac_phase
ctrl_rf1_iqdac_phase_wreq
<=
wr_req_d0
;
wr_ack_int
<=
ctrl_rf1_iqdac_phase_wack
;
when
"01"
=>
-- Reg ctrl_rf2_iqdac_phase
ctrl_rf2_iqdac_phase_wreq
<=
wr_req_d0
;
wr_ack_int
<=
ctrl_rf2_iqdac_phase_wack
;
when
"10"
=>
-- Reg ctrl_rf1_iqdac_phase_update
ctrl_rf1_iqdac_phase_update_wreq
<=
wr_req_d0
;
wr_ack_int
<=
ctrl_rf1_iqdac_phase_update_wack
;
when
"11"
=>
-- Reg ctrl_rf2_iqdac_phase_update
ctrl_rf2_iqdac_phase_update_wreq
<=
wr_req_d0
;
wr_ack_int
<=
ctrl_rf2_iqdac_phase_update_wack
;
when
others
=>
wr_ack_int
<=
wr_req_d0
;
end
case
;
when
"000000001"
=>
case
wr_adr_d0
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf1_iqdac_igain_arm
ctrl_rf1_iqdac_igain_arm_wreq
<=
wr_req_d0
;
wr_ack_int
<=
ctrl_rf1_iqdac_igain_arm_wack
;
when
"01"
=>
-- Reg ctrl_rf1_iqdac_qgain_arm
ctrl_rf1_iqdac_qgain_arm_wreq
<=
wr_req_d0
;
wr_ack_int
<=
ctrl_rf1_iqdac_qgain_arm_wack
;
when
"10"
=>
-- Reg ctrl_rf2_iqdac_igain_arm
ctrl_rf2_iqdac_igain_arm_wreq
<=
wr_req_d0
;
wr_ack_int
<=
ctrl_rf2_iqdac_igain_arm_wack
;
when
"11"
=>
-- Reg ctrl_rf2_iqdac_qgain_arm
ctrl_rf2_iqdac_qgain_arm_wreq
<=
wr_req_d0
;
wr_ack_int
<=
ctrl_rf2_iqdac_qgain_arm_wack
;
when
others
=>
wr_ack_int
<=
wr_req_d0
;
end
case
;
when
"000000010"
=>
case
wr_adr_d0
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf1_iqdac_igain
ctrl_rf1_iqdac_igain_wreq
<=
wr_req_d0
;
wr_ack_int
<=
ctrl_rf1_iqdac_igain_wack
;
wr_ack_int
<=
wr_req_d0
;
when
"01"
=>
-- Reg ctrl_rf1_iqdac_qgain
ctrl_rf1_iqdac_qgain_wreq
<=
wr_req_d0
;
wr_ack_int
<=
ctrl_rf1_iqdac_qgain_wack
;
wr_ack_int
<=
wr_req_d0
;
when
"10"
=>
-- Reg ctrl_rf2_iqdac_igain
ctrl_rf2_iqdac_igain_wreq
<=
wr_req_d0
;
wr_ack_int
<=
ctrl_rf2_iqdac_igain_wack
;
wr_ack_int
<=
wr_req_d0
;
when
"11"
=>
-- Reg ctrl_rf2_iqdac_qgain
ctrl_rf2_iqdac_qgain_wreq
<=
wr_req_d0
;
wr_ack_int
<=
ctrl_rf2_iqdac_qgain_wack
;
wr_ack_int
<=
wr_req_d0
;
when
others
=>
wr_ack_int
<=
wr_req_d0
;
end
case
;
when
"0000000
0
1"
=>
when
"0000000
1
1"
=>
case
wr_adr_d0
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf1_iqdac_ctrl
...
...
@@ -3392,7 +3546,7 @@ begin
when
others
=>
wr_ack_int
<=
wr_req_d0
;
end
case
;
when
"000000
01
0"
=>
when
"000000
10
0"
=>
case
wr_adr_d0
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_iqdac_ram_write
...
...
@@ -3409,7 +3563,7 @@ begin
when
others
=>
wr_ack_int
<=
wr_req_d0
;
end
case
;
when
"000000
01
1"
=>
when
"000000
10
1"
=>
case
wr_adr_d0
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf1_dds_ftw
...
...
@@ -3430,7 +3584,7 @@ begin
when
others
=>
wr_ack_int
<=
wr_req_d0
;
end
case
;
when
"0000001
0
0"
=>
when
"0000001
1
0"
=>
case
wr_adr_d0
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf2_dds_ftw_valid
...
...
@@ -3439,7 +3593,7 @@ begin
when
others
=>
wr_ack_int
<=
wr_req_d0
;
end
case
;
when
"0000001
0
1"
=>
when
"0000001
1
1"
=>
case
wr_adr_d0
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf2_dds_ftw
...
...
@@ -3460,7 +3614,7 @@ begin
when
others
=>
wr_ack_int
<=
wr_req_d0
;
end
case
;
when
"00000
011
0"
=>
when
"00000
100
0"
=>
case
wr_adr_d0
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_nco_reset_ctrl
...
...
@@ -3481,7 +3635,7 @@ begin
end
process
;
-- Process for read requests.
process
(
adr_int
,
rd_req_int
,
init_hwinfo_serialNumber_i
,
init_hwinfo_ident_cardID_i
,
init_hwinfo_ident_extendedID_i
,
init_hwinfo_ident_jtagRemoteDisable_i
,
init_hwinfo_firmwareVersion_i
,
init_hwinfo_memMapVersion_i
,
init_hwinfo_echo_echo_reg
,
init_fw_update_i
.
dat
,
init_fw_update_rack
,
init_clock_ctrl_clk_sel_reg
,
init_clock_ctrl_mmcm_reset_reg
,
init_wrcore_ctrl_reset_n_reg
,
init_iodelay_ctrl_reset_reg
,
init_clock_status_mmcm_locked_i
,
init_clock_status_shift_busy_i
,
init_tmg_io_term_reg
,
init_tmg_io_oe_reg
,
init_tmg_clk_term_reg
,
init_tmg_clk_oe_reg
,
init_lemo_rf1_t1_start_sel_reg
,
init_lemo_rf1_t2_start_sel_reg
,
init_lemo_rf2_t1_start_sel_reg
,
init_lemo_rf2_t2_start_sel_reg
,
init_lemo_rf1_t1_stop_sel_reg
,
init_lemo_rf1_t2_stop_sel_reg
,
init_lemo_rf2_t1_stop_sel_reg
,
init_lemo_rf2_t2_stop_sel_reg
,
init_tmgio1_osel_reg
,
init_tmgio2_osel_reg
,
init_tmgio3_osel_reg
,
init_tmgio4_osel_reg
,
init_tmgclk1_osel_reg
,
init_tmgclk2_osel_reg
,
init_lemo_gpio_reg
,
init_lemo_ext_sel_reg
,
init_softstart_sel_reg
,
init_softstop_sel_reg
,
init_lemo_pulse_ext_reg
,
init_pin_ctrl_ext_10m_dir_reg
,
init_pin_ctrl_ext_pps_dir_reg
,
init_pll_status_error_i
,
init_pll_status_locked_i
,
init_pll_ctrl_sync_reg
,
init_dds_ctrl_reset_reg
,
init_dds_ctrl_profile_reg
,
init_dds_ioupdate_fdelay_reg
,
init_dds_ioupdate_odelay_reg
,
init_dds_status_sync_error_i
,
init_ocxo_ctrl_enable_reg
,
init_ocxo_uptime_val_i
,
init_nco_azimuthal_value_reg
,
init_nco_cabledelay_value_reg
,
init_nco_hb_value_reg
,
init_nco_h1_ftw_value_reg
,
init_nco_h1_prog_value_reg
,
init_nco_ctrl_reset_nco_reg
,
init_nco_ctrl_reset_slip_reg
,
init_nco_ctrl_reset_fsk_reg
,
init_nco_ctrl_rate_reg
,
init_nco_loc_or_wrs_params_sel_reg
,
init_svec_mup_ctrl_gpio_sel_reg
,
init_svec_mup_ctrl_led_sel_reg
,
init_svec_mup_ctrl_bclk_rfclk_sel_reg
,
init_svec_mup_ctrl_ila_sel_reg
,
init_svec_mup_rftrig_t1stop_reg
,
init_svec_mup_rftrig_t1start_reg
,
init_svec_mup_rftrig_t2stop_reg
,
init_svec_mup_rftrig_t2start_reg
,
init_svec_mup_fmc1_term_reg
,
init_svec_mup_fmc1_oe_n_reg
,
init_svec_mup_fmc1_led_reg
,
init_svec_mup_fmc2_term_reg
,
init_svec_mup_fmc2_oe_n_reg
,
init_svec_mup_fmc2_led_reg
,
init_wrs_rxframe_ftw_value_i
,
init_wrs_rxframe_ctrl_i
,
init_wrs_rxframe_counter_i
,
init_wrs_rxframe_rxwrtimestamp_i
,
init_wrs_rxframe_txwrtimestamp_i
,
init_wrs_rxframe_rftimestamp_i
,
init_wrc_tai_value_i
,
init_wrc_cycles_value_i
,
init_wrc_status_linkup_i
,
init_wrc_status_time_valid_i
,
init_wrc_page0_reg
,
init_wrc_page1_reg
,
init_txframe_ftw_h1_main_reg
,
init_txframe_ftw_h1_prog_reg
,
init_txframe_ftw_h1_on_reg
,
init_txframe_dftw_h1_slip1_reg
,
init_txframe_dftw_h1_slip2_reg
,
init_txframe_setpoint1_reg
,
init_txframe_setpoint2_reg
,
init_txframe_setpoint3_reg
,
init_txframe_setpoint4_reg
,
init_txframe_setpoint5_reg
,
init_txframe_setpoint6_reg
,
init_txframe_setpoint7_reg
,
init_txframe_setpoint8_reg
,
init_txframe_noise_reg
,
init_txframe_control_reg
,
init_pll_spi_i
.
dat
,
init_pll_spi_rack
,
init_rf_spi_i
.
dat
,
init_rf_spi_rack
,
init_rf_i
.
dat
,
init_rf_rack
,
init_framerxtx_i
.
dat
,
init_framerxtx_rack
,
init_wrpc_i
.
dat
,
init_wrpc_rack
,
ctrl_rf1_vtus_i
.
dat
,
ctrl_rf1_vtus_rack
,
ctrl_rf2_vtus_i
.
dat
,
ctrl_rf2_vtus_rack
,
ctrl_rf1_rfnco_i
.
dat
,
ctrl_rf1_rfnco_rack
,
ctrl_rf2_rfnco_i
.
dat
,
ctrl_rf2_rfnco_rack
,
ctrl_rf1_iqdac_
igain_reg
,
ctrl_rf1_iqdac_qgain_reg
,
ctrl_rf2_iqdac_igain_reg
,
ctrl_rf2_iqdac_qgain_reg
,
ctrl_rf1_iqdac_ctrl_reg
,
ctrl_rf2_iqdac_ctrl_reg
,
ctrl_iqdac_ram_addr_reg
,
ctrl_iqdac_ram_data_reg
,
ctrl_iqdac_ram_write_reg
,
ctrl_iqdac_ram_play_reg
,
ctrl_rf1_dds_ftw_valid_reg
,
ctrl_rf1_dds_ftw_reg
,
ctrl_rf2_dds_ftw_valid_reg
,
ctrl_rf2_dds_ftw_reg
,
ctrl_nco_reset_ctrl_mask_dds_reg
,
ctrl_nco_reset_ctrl_mask_rfnco_ch1_reg
,
ctrl_nco_reset_ctrl_mask_rfnco_ch2_reg
,
ctrl_nco_reset_ctrl_mask_rf1_trig1_reg
,
ctrl_nco_reset_ctrl_mask_rf2_trig1_reg
)
begin
process
(
adr_int
,
rd_req_int
,
init_hwinfo_serialNumber_i
,
init_hwinfo_ident_cardID_i
,
init_hwinfo_ident_extendedID_i
,
init_hwinfo_ident_jtagRemoteDisable_i
,
init_hwinfo_firmwareVersion_i
,
init_hwinfo_memMapVersion_i
,
init_hwinfo_echo_echo_reg
,
init_fw_update_i
.
dat
,
init_fw_update_rack
,
init_clock_ctrl_clk_sel_reg
,
init_clock_ctrl_mmcm_reset_reg
,
init_wrcore_ctrl_reset_n_reg
,
init_iodelay_ctrl_reset_reg
,
init_clock_status_mmcm_locked_i
,
init_clock_status_shift_busy_i
,
init_tmg_io_term_reg
,
init_tmg_io_oe_reg
,
init_tmg_clk_term_reg
,
init_tmg_clk_oe_reg
,
init_lemo_rf1_t1_start_sel_reg
,
init_lemo_rf1_t2_start_sel_reg
,
init_lemo_rf2_t1_start_sel_reg
,
init_lemo_rf2_t2_start_sel_reg
,
init_lemo_rf1_t1_stop_sel_reg
,
init_lemo_rf1_t2_stop_sel_reg
,
init_lemo_rf2_t1_stop_sel_reg
,
init_lemo_rf2_t2_stop_sel_reg
,
init_tmgio1_osel_reg
,
init_tmgio2_osel_reg
,
init_tmgio3_osel_reg
,
init_tmgio4_osel_reg
,
init_tmgclk1_osel_reg
,
init_tmgclk2_osel_reg
,
init_lemo_gpio_reg
,
init_lemo_ext_sel_reg
,
init_softstart_sel_reg
,
init_softstop_sel_reg
,
init_lemo_pulse_ext_reg
,
init_pin_ctrl_ext_10m_dir_reg
,
init_pin_ctrl_ext_pps_dir_reg
,
init_pll_status_error_i
,
init_pll_status_locked_i
,
init_pll_ctrl_sync_reg
,
init_dds_ctrl_reset_reg
,
init_dds_ctrl_profile_reg
,
init_dds_ioupdate_fdelay_reg
,
init_dds_ioupdate_odelay_reg
,
init_dds_status_sync_error_i
,
init_ocxo_ctrl_enable_reg
,
init_ocxo_uptime_val_i
,
init_nco_azimuthal_value_reg
,
init_nco_cabledelay_value_reg
,
init_nco_hb_value_reg
,
init_nco_h1_ftw_value_reg
,
init_nco_h1_prog_value_reg
,
init_nco_ctrl_reset_nco_reg
,
init_nco_ctrl_reset_slip_reg
,
init_nco_ctrl_reset_fsk_reg
,
init_nco_ctrl_rate_reg
,
init_nco_loc_or_wrs_params_sel_reg
,
init_svec_mup_ctrl_gpio_sel_reg
,
init_svec_mup_ctrl_led_sel_reg
,
init_svec_mup_ctrl_bclk_rfclk_sel_reg
,
init_svec_mup_ctrl_ila_sel_reg
,
init_svec_mup_rftrig_t1stop_reg
,
init_svec_mup_rftrig_t1start_reg
,
init_svec_mup_rftrig_t2stop_reg
,
init_svec_mup_rftrig_t2start_reg
,
init_svec_mup_fmc1_term_reg
,
init_svec_mup_fmc1_oe_n_reg
,
init_svec_mup_fmc1_led_reg
,
init_svec_mup_fmc2_term_reg
,
init_svec_mup_fmc2_oe_n_reg
,
init_svec_mup_fmc2_led_reg
,
init_wrs_rxframe_ftw_value_i
,
init_wrs_rxframe_ctrl_i
,
init_wrs_rxframe_counter_i
,
init_wrs_rxframe_rxwrtimestamp_i
,
init_wrs_rxframe_txwrtimestamp_i
,
init_wrs_rxframe_rftimestamp_i
,
init_wrc_tai_value_i
,
init_wrc_cycles_value_i
,
init_wrc_status_linkup_i
,
init_wrc_status_time_valid_i
,
init_wrc_page0_reg
,
init_wrc_page1_reg
,
init_txframe_ftw_h1_main_reg
,
init_txframe_ftw_h1_prog_reg
,
init_txframe_ftw_h1_on_reg
,
init_txframe_dftw_h1_slip1_reg
,
init_txframe_dftw_h1_slip2_reg
,
init_txframe_setpoint1_reg
,
init_txframe_setpoint2_reg
,
init_txframe_setpoint3_reg
,
init_txframe_setpoint4_reg
,
init_txframe_setpoint5_reg
,
init_txframe_setpoint6_reg
,
init_txframe_setpoint7_reg
,
init_txframe_setpoint8_reg
,
init_txframe_noise_reg
,
init_txframe_control_reg
,
init_pll_spi_i
.
dat
,
init_pll_spi_rack
,
init_rf_spi_i
.
dat
,
init_rf_spi_rack
,
init_rf_i
.
dat
,
init_rf_rack
,
init_framerxtx_i
.
dat
,
init_framerxtx_rack
,
init_wrpc_i
.
dat
,
init_wrpc_rack
,
ctrl_rf1_vtus_i
.
dat
,
ctrl_rf1_vtus_rack
,
ctrl_rf2_vtus_i
.
dat
,
ctrl_rf2_vtus_rack
,
ctrl_rf1_rfnco_i
.
dat
,
ctrl_rf1_rfnco_rack
,
ctrl_rf2_rfnco_i
.
dat
,
ctrl_rf2_rfnco_rack
,
ctrl_rf1_iqdac_
phase_reg
,
ctrl_rf2_iqdac_phase_reg
,
ctrl_rf1_iqdac_igain_arm_reg
,
ctrl_rf1_iqdac_qgain_arm_reg
,
ctrl_rf2_iqdac_igain_arm_reg
,
ctrl_rf2_iqdac_qgain_arm_reg
,
ctrl_rf1_iqdac_igain_i
,
ctrl_rf1_iqdac_qgain_i
,
ctrl_rf2_iqdac_igain_i
,
ctrl_rf2_iqdac_qgain_i
,
ctrl_rf1_iqdac_ctrl_reg
,
ctrl_rf2_iqdac_ctrl_reg
,
ctrl_iqdac_ram_addr_reg
,
ctrl_iqdac_ram_data_reg
,
ctrl_iqdac_ram_write_reg
,
ctrl_iqdac_ram_play_reg
,
ctrl_rf1_dds_ftw_valid_reg
,
ctrl_rf1_dds_ftw_reg
,
ctrl_rf2_dds_ftw_valid_reg
,
ctrl_rf2_dds_ftw_reg
,
ctrl_nco_reset_ctrl_mask_dds_reg
,
ctrl_nco_reset_ctrl_mask_rfnco_ch1_reg
,
ctrl_nco_reset_ctrl_mask_rfnco_ch2_reg
,
ctrl_nco_reset_ctrl_mask_rf1_trig1_reg
,
ctrl_nco_reset_ctrl_mask_rf2_trig1_reg
)
begin
-- By default ack read requests
rd_dat_d0
<=
(
others
=>
'X'
);
init_fw_update_re
<=
'0'
;
...
...
@@ -4428,27 +4582,71 @@ begin
when
"1"
=>
case
adr_int
(
11
downto
3
)
is
when
"000000000"
=>
case
adr_int
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf1_iqdac_phase
rd_ack_d0
<=
rd_req_int
;
rd_dat_d0
<=
ctrl_rf1_iqdac_phase_reg
;
when
"01"
=>
-- Reg ctrl_rf2_iqdac_phase
rd_ack_d0
<=
rd_req_int
;
rd_dat_d0
<=
ctrl_rf2_iqdac_phase_reg
;
when
"10"
=>
-- Reg ctrl_rf1_iqdac_phase_update
rd_ack_d0
<=
rd_req_int
;
rd_dat_d0
(
0
)
<=
'0'
;
rd_dat_d0
(
15
downto
1
)
<=
(
others
=>
'0'
);
when
"11"
=>
-- Reg ctrl_rf2_iqdac_phase_update
rd_ack_d0
<=
rd_req_int
;
rd_dat_d0
(
0
)
<=
'0'
;
rd_dat_d0
(
15
downto
1
)
<=
(
others
=>
'0'
);
when
others
=>
rd_ack_d0
<=
rd_req_int
;
end
case
;
when
"000000001"
=>
case
adr_int
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf1_iqdac_igain_arm
rd_ack_d0
<=
rd_req_int
;
rd_dat_d0
<=
ctrl_rf1_iqdac_igain_arm_reg
;
when
"01"
=>
-- Reg ctrl_rf1_iqdac_qgain_arm
rd_ack_d0
<=
rd_req_int
;
rd_dat_d0
<=
ctrl_rf1_iqdac_qgain_arm_reg
;
when
"10"
=>
-- Reg ctrl_rf2_iqdac_igain_arm
rd_ack_d0
<=
rd_req_int
;
rd_dat_d0
<=
ctrl_rf2_iqdac_igain_arm_reg
;
when
"11"
=>
-- Reg ctrl_rf2_iqdac_qgain_arm
rd_ack_d0
<=
rd_req_int
;
rd_dat_d0
<=
ctrl_rf2_iqdac_qgain_arm_reg
;
when
others
=>
rd_ack_d0
<=
rd_req_int
;
end
case
;
when
"000000010"
=>
case
adr_int
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf1_iqdac_igain
rd_ack_d0
<=
rd_req_int
;
rd_dat_d0
<=
ctrl_rf1_iqdac_igain_
reg
;
rd_dat_d0
<=
ctrl_rf1_iqdac_igain_
i
;
when
"01"
=>
-- Reg ctrl_rf1_iqdac_qgain
rd_ack_d0
<=
rd_req_int
;
rd_dat_d0
<=
ctrl_rf1_iqdac_qgain_
reg
;
rd_dat_d0
<=
ctrl_rf1_iqdac_qgain_
i
;
when
"10"
=>
-- Reg ctrl_rf2_iqdac_igain
rd_ack_d0
<=
rd_req_int
;
rd_dat_d0
<=
ctrl_rf2_iqdac_igain_
reg
;
rd_dat_d0
<=
ctrl_rf2_iqdac_igain_
i
;
when
"11"
=>
-- Reg ctrl_rf2_iqdac_qgain
rd_ack_d0
<=
rd_req_int
;
rd_dat_d0
<=
ctrl_rf2_iqdac_qgain_
reg
;
rd_dat_d0
<=
ctrl_rf2_iqdac_qgain_
i
;
when
others
=>
rd_ack_d0
<=
rd_req_int
;
end
case
;
when
"0000000
0
1"
=>
when
"0000000
1
1"
=>
case
adr_int
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf1_iqdac_ctrl
...
...
@@ -4469,7 +4667,7 @@ begin
when
others
=>
rd_ack_d0
<=
rd_req_int
;
end
case
;
when
"000000
01
0"
=>
when
"000000
10
0"
=>
case
adr_int
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_iqdac_ram_write
...
...
@@ -4486,7 +4684,7 @@ begin
when
others
=>
rd_ack_d0
<=
rd_req_int
;
end
case
;
when
"000000
01
1"
=>
when
"000000
10
1"
=>
case
adr_int
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf1_dds_ftw
...
...
@@ -4507,7 +4705,7 @@ begin
when
others
=>
rd_ack_d0
<=
rd_req_int
;
end
case
;
when
"0000001
0
0"
=>
when
"0000001
1
0"
=>
case
adr_int
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf2_dds_ftw_valid
...
...
@@ -4516,7 +4714,7 @@ begin
when
others
=>
rd_ack_d0
<=
rd_req_int
;
end
case
;
when
"0000001
0
1"
=>
when
"0000001
1
1"
=>
case
adr_int
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_rf2_dds_ftw
...
...
@@ -4537,7 +4735,7 @@ begin
when
others
=>
rd_ack_d0
<=
rd_req_int
;
end
case
;
when
"00000
011
0"
=>
when
"00000
100
0"
=>
case
adr_int
(
2
downto
1
)
is
when
"00"
=>
-- Reg ctrl_nco_reset_ctrl
...
...
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