Merged r6045:6116 from jcorgan/radar into trunk. Updates gr-radar-mono with work...
[debian/gnuradio] / gr-radar-mono / src / fpga / top / usrp_radar_mono.v
index 891af235386bdca364767ba91bcd8bd3098f64ef..f6f862938f83aaa0dfe0b2fdf005192078cd6f31 100644 (file)
@@ -95,28 +95,30 @@ module usrp_radar_mono
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // 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(),
@@ -140,10 +142,9 @@ module usrp_radar_mono
 
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // 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)
           );
    
@@ -152,9 +153,9 @@ module usrp_radar_mono
 
    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),
@@ -172,8 +173,8 @@ module usrp_radar_mono
        .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(),