commit-gnuradio
[Top][All Lists]
Advanced

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

[Commit-gnuradio] r5041 - in gnuradio/branches/developers/jcorgan/snd/gr


From: jcorgan
Subject: [Commit-gnuradio] r5041 - in gnuradio/branches/developers/jcorgan/snd/gr-sounder/src: fpga/lib fpga/rbf/rev2 fpga/rbf/rev4 python
Date: Wed, 18 Apr 2007 10:13:32 -0600 (MDT)

Author: jcorgan
Date: 2007-04-18 10:13:32 -0600 (Wed, 18 Apr 2007)
New Revision: 5041

Added:
   
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/usrp_sounder.py
Removed:
   gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder.py
Modified:
   gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/lfsr.v
   gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder_tx.v
   
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/rbf/rev2/usrp_sounder.rbf
   
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/rbf/rev4/usrp_sounder.rbf
   gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/Makefile.am
Log:
Make lfsr mask programmable.

Modified: 
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/lfsr.v
===================================================================
--- gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/lfsr.v     
2007-04-18 04:28:12 UTC (rev 5040)
+++ gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/lfsr.v     
2007-04-18 16:13:32 UTC (rev 5041)
@@ -19,28 +19,29 @@
 //  Foundation, Inc., 51 Franklin Street, Boston, MA  02110-1301  USA
 //
 
-module lfsr(clk_i,rst_i,ena_i,strobe_i,bit_o);
+module lfsr(clk_i,rst_i,ena_i,strobe_i,mask_i,bit_o);
    input clk_i;
    input rst_i;
    input ena_i;
    input strobe_i;
+   input [15:0] mask_i;
    
    output bit_o;
 
-   reg [10:0] shifter;
+   reg  [15:0] shifter;
+   wire [15:0] taps = shifter & mask_i;
 
-   // x^11 + x^2 + 1
-   // M-sequence of length 2^11-1 (2047) @ 32 MHz = ~64us
-   // ~7.6 impulse vector updates per second
+   wire parity = taps[15]^taps[14]^taps[13]^taps[12]^
+                taps[11]^taps[10]^taps[9]^taps[8]^
+                taps[7]^taps[6]^taps[5]^taps[4]^
+                taps[3]^taps[2]^taps[1]^taps[0];
    
-   wire parity = shifter[10]^shifter[1];
-
    always @(posedge clk_i)
      if (rst_i | ~ena_i)
-       shifter <= 11'd1;
+       shifter <= 16'd1;
      else
        if (strobe_i)
-        shifter <= {shifter[9:0],parity};
+        shifter <= {shifter[14:0],parity};
 
    assign bit_o = shifter[0];
    

Modified: 
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder_tx.v
===================================================================
--- 
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder_tx.v   
    2007-04-18 04:28:12 UTC (rev 5040)
+++ 
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder_tx.v   
    2007-04-18 16:13:32 UTC (rev 5041)
@@ -36,11 +36,16 @@
    output [15:0] tx_q_o;
    output [15:0] debug_o;
 
-   wire bit;
+   wire out;
+   wire [15:0] mask;
 
-   lfsr 
pn(.clk_i(clk_i),.rst_i(rst_i),.ena_i(ena_i),.strobe_i(strobe_i),.bit_o(bit));
+   setting_reg #(`FR_USER_0) 
+     
sr_lfsr_mask(.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
+             .out(mask));
+
+   lfsr 
pn(.clk_i(clk_i),.rst_i(rst_i),.ena_i(ena_i),.strobe_i(strobe_i),.mask_i(mask),.bit_o(out));
    
-   assign tx_i_o = bit ? 16'h7FFF : 16'h8000;   
+   assign tx_i_o = out ? 16'h7FFF : 16'h8000;   
    assign tx_q_o = 16'b0;
    assign debug_o = 16'hAA55;
          

Modified: 
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/rbf/rev2/usrp_sounder.rbf
===================================================================
(Binary files differ)

Modified: 
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/rbf/rev4/usrp_sounder.rbf
===================================================================
(Binary files differ)

Modified: 
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/Makefile.am
===================================================================
--- gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/Makefile.am  
2007-04-18 04:28:12 UTC (rev 5040)
+++ gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/Makefile.am  
2007-04-18 16:13:32 UTC (rev 5041)
@@ -22,8 +22,10 @@
 include $(top_srcdir)/Makefile.common
 
 EXTRA_DIST =           \
-       sounder.py      \
        qa_nothing.py   \
        run_tests.in
 
+bin_SCRIPTS =          \
+       usrp_sounder.py
+       
 MOSTLYCLEANFILES = *~ *.pyc *.pyo

Deleted: 
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder.py

Copied: 
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/usrp_sounder.py 
(from rev 5040, 
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder.py)
===================================================================
--- 
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/usrp_sounder.py  
                            (rev 0)
+++ 
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/usrp_sounder.py  
    2007-04-18 16:13:32 UTC (rev 5041)
@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+
+from gnuradio import gr, usrp
+from gnuradio import eng_notation
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+import math
+
+# Set to 0 for 32 MHz tx clock, 1 for 64 MHz tx clock
+# Must match config.vh in FPGA code
+TX_RATE_MAX = 0
+_tx_freq_divisor = 32e6*(TX_RATE_MAX+1)
+
+class sounder_tx:
+    def __init__(self, frequency, mask):
+       self.trans = usrp.sink_s(fpga_filename='usrp_sounder.rbf')
+        self.subdev_spec = usrp.pick_tx_subdevice(self.trans)
+        self.subdev = usrp.selected_subdev(self.trans, self.subdev_spec)
+        self.trans.tune(0, self.subdev, frequency)
+        self.set_mask(mask);
+        
+    def turn_on(self):
+       self.trans.start()
+       
+    def turn_off(self):
+       self.trans.stop()
+
+    def set_mask(self, value):
+        return self.trans._write_fpga_reg(usrp.FR_USER_0, value);
+
+def test_transmit(options):
+    t = sounder_tx(options.frequency, options.mask)
+    t.turn_on()
+    raw_input('Press return to stop transmitter.')
+    t.turn_off()
+
+def main():
+    parser = OptionParser(option_class=eng_option)
+    parser.add_option("-f", "--frequency", type="eng_float", default=0.0,
+                      help="set frequency to FREQ in Hz, default is %default", 
metavar="FREQ")
+
+    (options, args) = parser.parse_args()
+
+    options.mask = 0x0801;
+
+    if len(args) != 0:
+        parser.print_help()
+        sys.exit(1)
+
+    test_transmit(options)
+    
+if __name__ == "__main__":
+    main()





reply via email to

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