ad9361/tdd: Fix generation of tx_valid_* signals
In FDD mode the tx_valid_* signals are generated inside the axi_ad9361_tx module, in function of the selected dac data rate. In TDD mode, these signals are gated by the tdd_enable and tdd_tx_dp_en signals. In other words, the tx_valid_* signals will be valid just when tdd_enable and tdd_tx_dp_en is active.main
parent
b3324b3ef9
commit
4b08df9ed6
|
@ -392,7 +392,6 @@ module axi_ad9361 (
|
||||||
axi_ad9361_tdd i_tdd(
|
axi_ad9361_tdd i_tdd(
|
||||||
.clk(clk),
|
.clk(clk),
|
||||||
.rst(rst),
|
.rst(rst),
|
||||||
.tdd_tx_dp_en(tdd_tx_dp_en_s),
|
|
||||||
.tdd_rx_vco_en(tdd_rx_vco_en_s),
|
.tdd_rx_vco_en(tdd_rx_vco_en_s),
|
||||||
.tdd_tx_vco_en(tdd_tx_vco_en_s),
|
.tdd_tx_vco_en(tdd_tx_vco_en_s),
|
||||||
.tdd_rx_rf_en(tdd_rx_rf_en_s),
|
.tdd_rx_rf_en(tdd_rx_rf_en_s),
|
||||||
|
|
|
@ -48,7 +48,6 @@ module axi_ad9361_tdd (
|
||||||
|
|
||||||
// control signals from the tdd control
|
// control signals from the tdd control
|
||||||
|
|
||||||
tdd_tx_dp_en,
|
|
||||||
tdd_rx_vco_en,
|
tdd_rx_vco_en,
|
||||||
tdd_tx_vco_en,
|
tdd_tx_vco_en,
|
||||||
tdd_rx_rf_en,
|
tdd_rx_rf_en,
|
||||||
|
@ -91,7 +90,6 @@ module axi_ad9361_tdd (
|
||||||
|
|
||||||
// control signals from the tdd control
|
// control signals from the tdd control
|
||||||
|
|
||||||
output tdd_tx_dp_en;
|
|
||||||
output tdd_rx_vco_en;
|
output tdd_rx_vco_en;
|
||||||
output tdd_tx_vco_en;
|
output tdd_tx_vco_en;
|
||||||
output tdd_rx_rf_en;
|
output tdd_rx_rf_en;
|
||||||
|
@ -159,15 +157,17 @@ module axi_ad9361_tdd (
|
||||||
|
|
||||||
wire [23:0] tdd_counter_status;
|
wire [23:0] tdd_counter_status;
|
||||||
|
|
||||||
assign tdd_dbg = {tdd_counter_status, tdd_enable_s, tdd_tx_dp_en,
|
wire tdd_tx_dp_en_s;
|
||||||
|
|
||||||
|
assign tdd_dbg = {tdd_counter_status, tdd_enable_s, tdd_tx_dp_en_s,
|
||||||
tdd_rx_vco_en, tdd_tx_vco_en, tdd_rx_rf_en, tdd_tx_rf_en};
|
tdd_rx_vco_en, tdd_tx_vco_en, tdd_rx_rf_en, tdd_tx_rf_en};
|
||||||
|
|
||||||
// tx data flow control
|
// tx data flow control
|
||||||
|
|
||||||
assign tdd_tx_valid_i0 = tx_valid_i0 & tdd_enable_s;
|
assign tdd_tx_valid_i0 = (tdd_enable_s == 1'b1) ? (tx_valid_i0 & tdd_tx_dp_en_s) : tx_valid_i0;
|
||||||
assign tdd_tx_valid_q0 = tx_valid_q0 & tdd_enable_s;
|
assign tdd_tx_valid_q0 = (tdd_enable_s == 1'b1) ? (tx_valid_q0 & tdd_tx_dp_en_s) : tx_valid_q0;
|
||||||
assign tdd_tx_valid_i1 = tx_valid_i1 & tdd_enable_s;
|
assign tdd_tx_valid_i1 = (tdd_enable_s == 1'b1) ? (tx_valid_i1 & tdd_tx_dp_en_s) : tx_valid_i1;
|
||||||
assign tdd_tx_valid_q1 = tx_valid_q1 & tdd_enable_s;
|
assign tdd_tx_valid_q1 = (tdd_enable_s == 1'b1) ? (tx_valid_q1 & tdd_tx_dp_en_s) : tx_valid_q1;
|
||||||
|
|
||||||
// instantiations
|
// instantiations
|
||||||
|
|
||||||
|
@ -243,7 +243,7 @@ module axi_ad9361_tdd (
|
||||||
.tdd_tx_off_2(tdd_tx_off_2_s),
|
.tdd_tx_off_2(tdd_tx_off_2_s),
|
||||||
.tdd_tx_dp_on_2(tdd_tx_dp_on_2_s),
|
.tdd_tx_dp_on_2(tdd_tx_dp_on_2_s),
|
||||||
.tdd_tx_dp_off_2(tdd_tx_dp_off_2_s),
|
.tdd_tx_dp_off_2(tdd_tx_dp_off_2_s),
|
||||||
.tdd_tx_dp_en(tdd_tx_dp_en),
|
.tdd_tx_dp_en(tdd_tx_dp_en_s),
|
||||||
.tdd_rx_vco_en(tdd_rx_vco_en),
|
.tdd_rx_vco_en(tdd_rx_vco_en),
|
||||||
.tdd_tx_vco_en(tdd_tx_vco_en),
|
.tdd_tx_vco_en(tdd_tx_vco_en),
|
||||||
.tdd_rx_rf_en(tdd_rx_rf_en),
|
.tdd_rx_rf_en(tdd_rx_rf_en),
|
||||||
|
|
|
@ -180,7 +180,6 @@ module up_tdd_cntrl (
|
||||||
|
|
||||||
wire up_wreq_s;
|
wire up_wreq_s;
|
||||||
wire up_rreq_s;
|
wire up_rreq_s;
|
||||||
wire up_cntrl_xfer_done;
|
|
||||||
|
|
||||||
wire [ 7:0] up_tdd_status_s;
|
wire [ 7:0] up_tdd_status_s;
|
||||||
|
|
||||||
|
@ -352,7 +351,7 @@ module up_tdd_cntrl (
|
||||||
up_tdd_tx_only,
|
up_tdd_tx_only,
|
||||||
up_tdd_burst_count
|
up_tdd_burst_count
|
||||||
}),
|
}),
|
||||||
.up_xfer_done(up_cntrl_xfer_done),
|
.up_xfer_done(),
|
||||||
.d_rst(rst),
|
.d_rst(rst),
|
||||||
.d_clk(clk),
|
.d_clk(clk),
|
||||||
.d_data_cntrl({tdd_enable,
|
.d_data_cntrl({tdd_enable,
|
||||||
|
|
Loading…
Reference in New Issue