FPGA: Synchronize X300 RX frontends on time change

The frontend synchronization upon time change was removed, but is
required to synchronize the RX frontend modules when sharing LOs on
TwinRX.  This change restores the behavior.

Signed-off-by: michael-west <michael.west@ettus.com>


Original-commit: c70b479007ab9f578577dfb5c2de6660e877d9a3
This commit is contained in:
michael-west authored and Wade Fife committed 2023-05-10 14:22:42 -05:00
1 parent d6bcab7c8c
commit e9a6fe4e2e
6 files changed
+14 -6

No files matched your search

+2 -1
View File
@@ -683,7 +683,8 @@ module e31x_core #(
.pps (pps_radioclk), .pps (pps_radioclk),
.tb_timestamp (radio_time), .tb_timestamp (radio_time),
.tb_timestamp_last_pps (), .tb_timestamp_last_pps (),
.tb_period_ns_q32 () .tb_period_ns_q32 (),
.tb_changed ()
); );
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
+2 -1
View File
@@ -1021,7 +1021,8 @@ module e320_core #(
.pps (pps_radioclk), .pps (pps_radioclk),
.tb_timestamp (radio_time), .tb_timestamp (radio_time),
.tb_timestamp_last_pps (), .tb_timestamp_last_pps (),
.tb_period_ns_q32 () .tb_period_ns_q32 (),
.tb_changed ()
); );
+2 -1
View File
@@ -1109,7 +1109,8 @@ module n3xx_core #(
.pps (pps), .pps (pps),
.tb_timestamp (radio_time), .tb_timestamp (radio_time),
.tb_timestamp_last_pps (), .tb_timestamp_last_pps (),
.tb_period_ns_q32 () .tb_period_ns_q32 (),
.tb_changed ()
); );
+3 -1
View File
@@ -22,6 +22,7 @@ module bus_int #(
output [3:0] sw_rst, output [3:0] sw_rst,
// Timekeeper // Timekeeper
input pps, input pps,
output time_sync,
// Block connections // Block connections
input ce_clk, input ce_clk,
input ce_rst, input ce_rst,
@@ -545,7 +546,8 @@ module bus_int #(
.pps (pps), .pps (pps),
.tb_timestamp (radio_time_tb), .tb_timestamp (radio_time_tb),
.tb_timestamp_last_pps (radio_time_last_pps_tb), .tb_timestamp_last_pps (radio_time_last_pps_tb),
.tb_period_ns_q32 (period_ns_q32_tb) .tb_period_ns_q32 (period_ns_q32_tb),
.tb_changed (time_sync)
); );
// Latch state changes to SFP0+ pins. // Latch state changes to SFP0+ pins.
+3 -1
View File
@@ -250,6 +250,7 @@ module x300_core #(
wire [63:0] s00_axi_rdata, s01_axi_rdata; wire [63:0] s00_axi_rdata, s01_axi_rdata;
wire [1:0] s00_axi_rresp, s01_axi_rresp; wire [1:0] s00_axi_rresp, s01_axi_rresp;
wire [0:0] s00_axi_ruser, s01_axi_ruser; wire [0:0] s00_axi_ruser, s01_axi_ruser;
wire time_sync;
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
@@ -287,6 +288,7 @@ module x300_core #(
.leds(led_misc), .sw_rst(sw_rst), .leds(led_misc), .sw_rst(sw_rst),
// Timekeeper // Timekeeper
.pps(pps_rclk), .pps(pps_rclk),
.time_sync(time_sync),
// Block connections // Block connections
.ce_clk (ce_clk), .ce_clk (ce_clk),
.ce_rst (ce_rst), .ce_rst (ce_rst),
@@ -609,7 +611,7 @@ module x300_core #(
) x300_fe_core_i ( ) x300_fe_core_i (
.clk(radio_clk), .reset(radio_rst), .clk(radio_clk), .reset(radio_rst),
.set_stb(db_fe_set_stb[i]), .set_addr(db_fe_set_addr[i]), .set_data(db_fe_set_data[i]), .set_stb(db_fe_set_stb[i]), .set_addr(db_fe_set_addr[i]), .set_data(db_fe_set_data[i]),
.time_sync(), .time_sync(time_sync),
.tx_stb(tx_stb_r[i]), .tx_data_in(tx_data_r[i]), .tx_data_out(tx_data_out_r[i]), .tx_stb(tx_stb_r[i]), .tx_data_in(tx_data_r[i]), .tx_data_out(tx_data_out_r[i]),
.rx_stb(rx_stb_r[i]), .rx_data_in(rx_data_in_r[i]), .rx_data_out(rx_data_r[i]) .rx_stb(rx_stb_r[i]), .rx_data_in(rx_data_in_r[i]), .rx_data_out(rx_data_r[i])
); );
+2 -1
View File
@@ -339,7 +339,8 @@ module x4xx_core_common #(
.pps (pps_radioclk), .pps (pps_radioclk),
.tb_timestamp (radio_time), .tb_timestamp (radio_time),
.tb_timestamp_last_pps (), .tb_timestamp_last_pps (),
.tb_period_ns_q32 () .tb_period_ns_q32 (),
.tb_changed ()
); );