commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r7217 - in gnuradio/branches/features/inband-usb/usrp:


From: gnychis
Subject: [Commit-gnuradio] r7217 - in gnuradio/branches/features/inband-usb/usrp: fpga/inband_lib fpga/rbf/rev2 fpga/rbf/rev4 fpga/toplevel/usrp_inband_usb host/apps-inband host/lib/inband
Date: Mon, 17 Dec 2007 10:09:17 -0700 (MST)

Author: gnychis
Date: 2007-12-17 10:09:16 -0700 (Mon, 17 Dec 2007)
New Revision: 7217

Modified:
   gnuradio/branches/features/inband-usb/usrp/fpga/inband_lib/rx_buffer_inband.v
   gnuradio/branches/features/inband-usb/usrp/fpga/rbf/rev2/std_inband.rbf
   gnuradio/branches/features/inband-usb/usrp/fpga/rbf/rev4/std_inband.rbf
   
gnuradio/branches/features/inband-usb/usrp/fpga/toplevel/usrp_inband_usb/config.vh
   
gnuradio/branches/features/inband-usb/usrp/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.v
   gnuradio/branches/features/inband-usb/usrp/host/apps-inband/
   
gnuradio/branches/features/inband-usb/usrp/host/apps-inband/test_usrp_inband_rx.cc
   gnuradio/branches/features/inband-usb/usrp/host/lib/inband/usrp_rx.cc
   gnuradio/branches/features/inband-usb/usrp/host/lib/inband/usrp_rx.h
   
gnuradio/branches/features/inband-usb/usrp/host/lib/inband/usrp_usb_interface.cc
Log:
Merging -r7152:7216 from developers/gnychis/inband for I&Q fix.


Modified: 
gnuradio/branches/features/inband-usb/usrp/fpga/inband_lib/rx_buffer_inband.v
===================================================================
--- 
gnuradio/branches/features/inband-usb/usrp/fpga/inband_lib/rx_buffer_inband.v   
    2007-12-17 16:53:25 UTC (rev 7216)
+++ 
gnuradio/branches/features/inband-usb/usrp/fpga/inband_lib/rx_buffer_inband.v   
    2007-12-17 17:09:16 UTC (rev 7217)
@@ -58,123 +58,144 @@
                else if (rxstrobe)
                        adctime <= adctime + 1;
      
-    // USB side fifo
-    wire [11:0] rdusedw;
-    wire [11:0] wrusedw;
-    wire [15:0] fifodata;
-    wire WR;
-    wire have_space;
+  // USB side fifo
+  wire [11:0] rdusedw;
+  wire [11:0] wrusedw;
+  wire [15:0] fifodata;
+  wire [15:0] fifodata_il;
+  reg [15:0] fifodata_16;
+  wire WR;
+  wire have_space;
 
-    fifo_4kx16_dc      rx_usb_fifo (
-            .aclr ( reset ),
-            .data ( fifodata ),
-            .rdclk ( ~usbclk ),
-            .rdreq ( RD & ~read_count[8] ),
-            .wrclk ( rxclk ),
-            .wrreq ( WR ),
-            .q ( usbdata ),
-            .rdempty (  ),
-            .rdusedw ( rdusedw ),
-            .wrfull (  ),
-            .wrusedw ( wrusedw ) );
+  assign fifodata_il = fifodata_16;
+
+  fifo_4kx16_dc        rx_usb_fifo (
+    .aclr ( reset ),
+    .data ( fifodata ),
+    .rdclk ( ~usbclk ),
+    .rdreq ( RD & ~read_count[8] ),
+    .wrclk ( rxclk ),
+    .wrreq ( WR ),
+    .q ( usbdata ),
+    .rdempty (  ),
+    .rdusedw ( rdusedw ),
+    .wrfull (  ),
+    .wrusedw ( wrusedw ) );
     
-     assign have_pkt_rdy = (rdusedw >= 12'd256);
-     assign have_space = (wrusedw < 12'd760);
+  assign have_pkt_rdy = (rdusedw >= 12'd256);
+  assign have_space = (wrusedw < 12'd760);
         
-        // Rx side fifos
-        wire chan_rdreq;
-        wire [15:0] chan_fifodata;
-        wire [9:0] chan_usedw;
-        wire [NUM_CHAN:0] chan_empty;
-        wire [3:0] rd_select;
-        wire [NUM_CHAN:0] rx_full;
+  // Rx side fifos
+  wire chan_rdreq;
+  wire [15:0] chan_fifodata;
+  wire [9:0] chan_usedw;
+  wire [NUM_CHAN:0] chan_empty;
+  wire [3:0] rd_select;
+  wire [NUM_CHAN:0] rx_full;
         
-        packet_builder #(NUM_CHAN) rx_pkt_builer (
-            .rxclk ( rxclk ),
-            .reset ( reset ),
-            .adctime ( adctime ),
-            .channels ( 4'd1 ), //need to be tested and changed to channels 
-            .chan_rdreq ( chan_rdreq ),
-            .chan_fifodata ( chan_fifodata ),
-            .chan_empty ( chan_empty ),
-            .rd_select ( rd_select ),
-            .chan_usedw ( chan_usedw ),
-            .WR ( WR ),
-            .fifodata ( fifodata ),
-            .have_space ( have_space ),
-             .rssi_0(rssi_0), .rssi_1(rssi_1),
-             .rssi_2(rssi_2),.rssi_3(rssi_3), .debugbus(debug),
-             .underrun(tx_underrun));
+  packet_builder #(NUM_CHAN) rx_pkt_builer (
+    .rxclk ( rxclk ),
+    .reset ( reset ),
+    .adctime ( adctime ),
+    .channels ( 4'd1 ), //need to be tested and changed to channels 
+    .chan_rdreq ( chan_rdreq ),
+    .chan_fifodata ( chan_fifodata ),
+    .chan_empty ( chan_empty ),
+    .rd_select ( rd_select ),
+    .chan_usedw ( chan_usedw ),
+    .WR ( WR ),
+    .fifodata ( fifodata ),
+    .have_space ( have_space ),
+      .rssi_0(rssi_0), .rssi_1(rssi_1),
+      .rssi_2(rssi_2),.rssi_3(rssi_3), .debugbus(debug),
+      .underrun(tx_underrun));
         
-        // Detect overrun
+  // Detect overrun
+  always @(posedge rxclk)
+    if(reset)
+      rx_overrun <= 1'b0;
+    else if(rx_full[0])
+      rx_overrun <= 1'b1;
+    else if(clear_status)
+      rx_overrun <= 1'b0;
 
-    always @(posedge rxclk)
-        if(reset)
-            rx_overrun <= 1'b0;
-        else if(rx_full[0])
-            rx_overrun <= 1'b1;
-        else if(clear_status)
-            rx_overrun <= 1'b0;
-
                
-        // TODO write this genericly
-        wire [15:0]ch[NUM_CHAN:0];
-        assign ch[0] = ch_0;
-        
-        wire cmd_empty;
+  // TODO write this genericly
+  wire [15:0]ch[NUM_CHAN:0];
+  assign ch[0] = ch_0;
+       
+  wire cmd_empty;
+       
+  always @(posedge rxclk)
+    if(reset)
+      rx_WR_enabled <= 1;
+    else if(cmd_empty)
+      rx_WR_enabled <= 1;
+    else if(rx_WR_done)
+      rx_WR_enabled <= 0;
 
-    always @(posedge rxclk)
-        if(reset)
-            rx_WR_enabled <= 1;
-        else if(cmd_empty)
-            rx_WR_enabled <= 1;
-        else if(rx_WR_done)
-            rx_WR_enabled <= 0;
+  // Switching of channels
+  reg [3:0] store_next;
+  always @(posedge rxclk)
+  if(reset)
+    store_next <= #1 4'd0;
+  else if(rxstrobe & (store_next == 0))
+    store_next <= #1 4'd1;
+  else if(~rx_full & (store_next == 4'd2))
+    store_next <= #1 4'd0;
+  else if(~rx_full & (store_next != 0))
+    store_next <= #1 store_next + 4'd1;
 
-       wire [15:0] dataout [0:NUM_CHAN];
-       wire [9:0]  usedw       [0:NUM_CHAN];
-       wire empty[0:NUM_CHAN];
+  always @*
+    case(store_next)
+      4'd1 : fifodata_16 = ch_0;
+      4'd2 : fifodata_16 = ch_1;
+      default: fifodata_16 = 16'hFFFF;
+    endcase
+
+  wire [15:0] dataout [0:NUM_CHAN];
+  wire [9:0]  usedw    [0:NUM_CHAN];
+  wire empty[0:NUM_CHAN];
        
-     generate for (i = 0 ; i < NUM_CHAN; i = i + 1)
-       begin : generate_channel_fifos
-       
-       wire rdreq;
+  generate for (i = 0 ; i < NUM_CHAN; i = i + 1)
+    begin : generate_channel_fifos
 
-       assign rdreq = (rd_select == i) & chan_rdreq;
+      wire rdreq;
 
-       fifo_1kx16 rx_chan_fifo (
-                .aclr ( reset ),
-                .clock ( rxclk ),
-                .data ( ch[i] ),
-                .rdreq ( rdreq ),
-             .wrreq ( ~rx_full[i] & rxstrobe),
-                .empty (empty[i]),
-                .full (rx_full[i]),
-                .q ( dataout[i]),
-             .usedw ( usedw[i]),
-             .almost_empty(chan_empty[i])
-       );
-       end
-     endgenerate
+      assign rdreq = (rd_select == i) & chan_rdreq;
+
+      fifo_1kx16 rx_chan_fifo (
+      .aclr ( reset ),
+      .clock ( rxclk ),
+      .data ( fifodata_il ),
+      .rdreq ( rdreq ),
+      .wrreq ( ~rx_full[i] & (store_next != 0)),
+      .empty (empty[i]),
+      .full (rx_full[i]),
+      .q ( dataout[i]),
+      .usedw ( usedw[i]),
+      .almost_empty(chan_empty[i])
+      );
+    end
+  endgenerate
        
-     wire [7:0] debug;
+  wire [7:0] debug;
         
-        fifo_1kx16 rx_cmd_fifo (
-                .aclr ( reset ),
-                .clock ( rxclk ),
-                .data ( rx_databus ),
-                .rdreq ( (rd_select == NUM_CHAN) & chan_rdreq ),
-             .wrreq ( rx_WR & rx_WR_enabled),
-                .empty ( cmd_empty),
-                .full ( rx_full[NUM_CHAN] ),
-                .q ( dataout[NUM_CHAN]),
-             .usedw ( usedw[NUM_CHAN] )
-       );
+  fifo_1kx16 rx_cmd_fifo (
+    .aclr ( reset ),
+    .clock ( rxclk ),
+    .data ( rx_databus ),
+    .rdreq ( (rd_select == NUM_CHAN) & chan_rdreq ),
+    .wrreq ( rx_WR & rx_WR_enabled),
+    .empty ( cmd_empty),
+    .full ( rx_full[NUM_CHAN] ),
+    .q ( dataout[NUM_CHAN]),
+    .usedw ( usedw[NUM_CHAN] )
+  );
        
-       assign chan_empty[NUM_CHAN] = cmd_empty | rx_WR_enabled;
-       assign chan_fifodata = dataout[rd_select];
-       assign chan_usedw = usedw[rd_select];
-       assign debugbus = {4'd0, rxclk, debug, chan_usedw==0, rx_full[0], 
chan_empty[0]};
-                            
+  assign chan_empty[NUM_CHAN] = cmd_empty | rx_WR_enabled;
+  assign chan_fifodata = dataout[rd_select];
+  assign chan_usedw = usedw[rd_select];
+  assign debugbus = {4'd0, rxclk, rxstrobe, store_next[3], store_next[1], 
store_next[0]};
 
 endmodule

Modified: 
gnuradio/branches/features/inband-usb/usrp/fpga/rbf/rev2/std_inband.rbf
===================================================================
(Binary files differ)

Modified: 
gnuradio/branches/features/inband-usb/usrp/fpga/rbf/rev4/std_inband.rbf
===================================================================
(Binary files differ)

Modified: 
gnuradio/branches/features/inband-usb/usrp/fpga/toplevel/usrp_inband_usb/config.vh
===================================================================
--- 
gnuradio/branches/features/inband-usb/usrp/fpga/toplevel/usrp_inband_usb/config.vh
  2007-12-17 16:53:25 UTC (rev 7216)
+++ 
gnuradio/branches/features/inband-usb/usrp/fpga/toplevel/usrp_inband_usb/config.vh
  2007-12-17 17:09:16 UTC (rev 7217)
@@ -34,7 +34,7 @@
 //  `include "../include/common_config_1rxhb_1tx.vh"
 
 // Uncomment this for 2 rx channels (w/ halfband) & 2 transmit channels
-`include "../include/common_config_2rxhb_2tx.vh"
+  `include "../include/common_config_2rxhb_2tx.vh"
 
 // Uncomment this for 4 rx channels (w/o halfband) & 0 transmit channels
 //`include "../include/common_config_4rx_0tx.vh"

Modified: 
gnuradio/branches/features/inband-usb/usrp/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.v
===================================================================
--- 
gnuradio/branches/features/inband-usb/usrp/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.v
  2007-12-17 16:53:25 UTC (rev 7216)
+++ 
gnuradio/branches/features/inband-usb/usrp/fpga/toplevel/usrp_inband_usb/usrp_inband_usb.v
  2007-12-17 17:09:16 UTC (rev 7217)
@@ -267,7 +267,7 @@
           .rx_databus(rx_databus),
           .rx_WR_done(rx_WR_done),
           .rx_WR_enabled(rx_WR_enabled),
-          .debugbus(),
+          .debugbus(rx_debugbus),
           .rssi_0(rssi_0), .rssi_1(rssi_1), .rssi_2(rssi_2), .rssi_3(rssi_3),
           .tx_underrun(tx_underrun));
    `else


Property changes on: gnuradio/branches/features/inband-usb/usrp/host/apps-inband
___________________________________________________________________
Name: svn:ignore
   - Makefile
Makefile.in
.la
.lo
.deps
.libs
*.la
*.lo
*.dat
.*.swp
usrper
usrper2
test_input
test_fusb
test_usrp
test_usrp0
test_usrp_standard_rx
test_usrp_standard_tx
test_usrp_inband_timestamps
test_usrp_inband_registers
test_usrp_inband_rx
test_usrp_inband_tx
test_usrp_basic_rx
check_order_quickly
usrp_cal_dc_offset
test_usrp_inband_cs
read_packets
test_usrp_inband_ping
test_usrp_inband_underrun
test_usrp_inband_overrun
gmac_mbh.cc
test_gmac_tx

   + Makefile
Makefile.in
.la
.lo
.deps
.libs
*.la
*.lo
*.dat
.*.swp
usrper
usrper2
test_input
test_fusb
test_usrp
test_usrp0
test_usrp_standard_rx
test_usrp_standard_tx
test_usrp_standard_2tx
test_usrp_inband_timestamps
test_usrp_inband_registers
test_usrp_inband_rx
test_usrp_inband_tx
test_usrp_basic_rx
check_order_quickly
usrp_cal_dc_offset
test_usrp_inband_cs
read_packets
test_usrp_inband_ping
test_usrp_inband_underrun
test_usrp_inband_overrun
gmac_mbh.cc
test_gmac_tx


Modified: 
gnuradio/branches/features/inband-usb/usrp/host/apps-inband/test_usrp_inband_rx.cc
===================================================================
--- 
gnuradio/branches/features/inband-usb/usrp/host/apps-inband/test_usrp_inband_rx.cc
  2007-12-17 16:53:25 UTC (rev 7216)
+++ 
gnuradio/branches/features/inband-usb/usrp/host/apps-inband/test_usrp_inband_rx.cc
  2007-12-17 17:09:16 UTC (rev 7217)
@@ -98,7 +98,7 @@
   pmt_t usrp_dict = pmt_make_dict();
   
   // To test the application without a USRP
-  bool fake_usrp_p = true;
+  bool fake_usrp_p = false;
   if(fake_usrp_p) {
     pmt_dict_set(usrp_dict, 
                  pmt_intern("fake-usrp"),

Modified: gnuradio/branches/features/inband-usb/usrp/host/lib/inband/usrp_rx.cc
===================================================================
--- gnuradio/branches/features/inband-usb/usrp/host/lib/inband/usrp_rx.cc       
2007-12-17 16:53:25 UTC (rev 7216)
+++ gnuradio/branches/features/inband-usb/usrp/host/lib/inband/usrp_rx.cc       
2007-12-17 17:09:16 UTC (rev 7217)
@@ -44,12 +44,11 @@
 
 usrp_rx::usrp_rx(mb_runtime *rt, const std::string &instance_name, pmt_t 
user_arg)
   : mb_mblock(rt, instance_name, user_arg),
-    d_disk_write(false)
+    d_disk_write(false),
+    d_disk_write_pkt(true)   // if true, writes full packet, else just the 
payload
 {
   d_cs = define_port("cs", "usrp-rx-cs", true, mb_port::EXTERNAL);
   
-  //d_disk_write=true;
-  
   if(d_disk_write) {
     d_ofile.open("rx_data.dat",std::ios::binary|std::ios::out);
     d_cs_ofile.open("rx_cs.dat",std::ios::binary|std::ios::out);
@@ -151,8 +150,12 @@
     if(d_disk_write) {
       if(pkt->chan() == CONTROL_CHAN)
         d_cs_ofile.write((const char *)pkt, transport_pkt::max_pkt_size());
-      else
-        d_ofile.write((const char *)pkt, transport_pkt::max_pkt_size());
+      else {
+        if(d_disk_write_pkt)
+          d_ofile.write((const char *)pkt, transport_pkt::max_pkt_size());
+        else
+          d_ofile.write((const char *)pkt->payload(), 
transport_pkt::max_payload());
+      }
 
       d_cs_ofile.flush();
       d_ofile.flush();

Modified: gnuradio/branches/features/inband-usb/usrp/host/lib/inband/usrp_rx.h
===================================================================
--- gnuradio/branches/features/inband-usb/usrp/host/lib/inband/usrp_rx.h        
2007-12-17 16:53:25 UTC (rev 7216)
+++ gnuradio/branches/features/inband-usb/usrp/host/lib/inband/usrp_rx.h        
2007-12-17 17:09:16 UTC (rev 7217)
@@ -37,6 +37,7 @@
   usrp_standard_rx     *d_urx;
   
   bool d_disk_write;
+  bool d_disk_write_pkt;
   std::ofstream d_ofile;
   std::ofstream d_cs_ofile;
   

Modified: 
gnuradio/branches/features/inband-usb/usrp/host/lib/inband/usrp_usb_interface.cc
===================================================================
--- 
gnuradio/branches/features/inband-usb/usrp/host/lib/inband/usrp_usb_interface.cc
    2007-12-17 16:53:25 UTC (rev 7216)
+++ 
gnuradio/branches/features/inband-usb/usrp/host/lib/inband/usrp_usb_interface.cc
    2007-12-17 17:09:16 UTC (rev 7217)
@@ -342,7 +342,7 @@
     return;
   }
 
-  if(!d_urx->set_rx_freq (0, d_rf_freq)) {
+  if(!d_urx->set_rx_freq (0, -d_rf_freq)) {
     if (verbose)
       std::cout << "[usrp_server] Failed to set center frequency on RX\n";
     reply_data = pmt_list2(invocation_handle, PMT_F);
@@ -353,11 +353,11 @@
   if (verbose)
     std::cout << "[USRP_USB_INTERFACE] Setup RX channel\n";
     
-  d_utx->_write_fpga_reg(FR_DEBUG_EN,0xf);
-  d_utx->_write_oe(0, 0xffff, 0xffff);
-  d_urx->_write_oe(0, 0xffff, 0xffff);
-  d_utx->_write_oe(1, 0xffff, 0xffff);
-  d_urx->_write_oe(1, 0xffff, 0xffff);
+//  d_utx->_write_fpga_reg(FR_DEBUG_EN,0xf);
+//  d_utx->_write_oe(0, 0xffff, 0xffff);
+//  d_urx->_write_oe(0, 0xffff, 0xffff);
+//  d_utx->_write_oe(1, 0xffff, 0xffff);
+//  d_urx->_write_oe(1, 0xffff, 0xffff);
 
   d_cs->send(s_response_usrp_open, pmt_list2(invocation_handle, PMT_T));
 }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]