////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Transmit Side
+ wire tx_side;
wire [13:0] tx_i, tx_q;
wire [13:0] tx_dac;
+ wire tx_sync;
dac_interface dac(.clk_i(clk64),.rst_i(tx_dsp_reset),.ena_i(enable_tx),
.strobe_i(tx_sample_strobe),.tx_i_i(tx_i),.tx_q_i(tx_q),
- .tx_data_o(tx_dac),.tx_sync_o(TXSYNC_A));
+ .tx_data_o(tx_dac),.tx_sync_o(tx_sync));
- assign tx_a = tx_dac;
-
- // Wedge DAC #2 at zero
- assign TXSYNC_B = 1'b0;
- assign tx_b = 14'b0;
+ // Route transmitted signal to side A or side B
+ assign tx_a = tx_side ? 14'b0 : tx_dac;
+ assign tx_b = tx_side ? tx_dac : 14'b0;
+ assign TXSYNC_A = tx_side ? 1'b0 : tx_sync;
+ assign TXSYNC_B = tx_side ? tx_sync : 1'b0;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Receive Side
- wire rx_sample_strobe, rx_strobe;
+ wire rx_strobe;
wire [15:0] rx_adc0_i, rx_adc0_q;
wire [15:0] rx_buf_i, rx_buf_q;
adc_interface adc_interface(.clock(clk64),.reset(rx_dsp_reset),.enable(enable_rx),
.serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe),
- .rx_a_a(rx_a_a),.rx_b_a(rx_b_a),.rx_a_b(),.rx_b_b(),
+ .rx_a_a(rx_a_a),.rx_b_a(rx_b_a),.rx_a_b(rx_a_b),.rx_b_b(rx_b_b),
.rssi_0(),.rssi_1(),.rssi_2(),.rssi_3(),
.ddc0_in_i(rx_adc0_i),.ddc0_in_q(rx_adc0_q),
.ddc1_in_i(),.ddc1_in_q(),
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Top level application
-
radar radar_mono ( .clk_i(clk64),.saddr_i(serial_addr),.sdata_i(serial_data),.s_strobe_i(serial_strobe),
- .tx_strobe_o(tx_sample_strobe),.tx_dac_i_o(tx_i),.tx_dac_q_o(tx_q),
- .rx_strobe_i(rx_sample_strobe),.rx_adc_i_i(rx_adc0_i),.rx_adc_q_i(rx_adc0_q),
+ .tx_side_o(tx_side),.tx_strobe_o(tx_sample_strobe),.tx_dac_i_o(tx_i),.tx_dac_q_o(tx_q),
+ .rx_adc_i_i(rx_adc0_i),.rx_adc_q_i(rx_adc0_q),
.rx_strobe_o(rx_strobe),.rx_ech_i_o(rx_buf_i),.rx_ech_q_o(rx_buf_q)
);
wire [31:0] capabilities;
assign capabilities[7] = 0; // `TX_CAP_HB;
- assign capabilities[6:4] = 2; // `TX_CAP_NCHAN;
+ assign capabilities[6:4] = 1; // `TX_CAP_NCHAN;
assign capabilities[3] = 0; // `RX_CAP_HB;
- assign capabilities[2:0] = 2; // `RX_CAP_NCHAN;
+ assign capabilities[2:0] = 1; // `RX_CAP_NCHAN;
serial_io serial_io
( .master_clk(clk64),.serial_clock(SCLK),.serial_data_in(SDI),
.tx_dsp_reset(tx_dsp_reset),.rx_dsp_reset(rx_dsp_reset),
.enable_tx(enable_tx),.enable_rx(enable_rx),
.interp_rate(),.decim_rate(),
- .tx_sample_strobe(),.strobe_interp(), // tx_sample_strobe now generated by radar transmitter module
- .rx_sample_strobe(rx_sample_strobe),.strobe_decim(),
+ .tx_sample_strobe(),.strobe_interp(),
+ .rx_sample_strobe(),.strobe_decim(),
.tx_empty(tx_empty),
.debug_0(),.debug_1(),
.debug_2(),.debug_3(),