[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r5668 - in gnuradio/branches/developers/jcorgan/snd/gr
From: |
jcorgan |
Subject: |
[Commit-gnuradio] r5668 - in gnuradio/branches/developers/jcorgan/snd/gr-sounder/src: fpga/lib fpga/tb fpga/top python |
Date: |
Mon, 4 Jun 2007 14:03:12 -0600 (MDT) |
Author: jcorgan
Date: 2007-06-04 14:03:11 -0600 (Mon, 04 Jun 2007)
New Revision: 5668
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/lfsr_constants.v
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder.v
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder_rx.v
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder_tx.v
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.sav
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.v
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/top/usrp_sounder.rbf
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder.py
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/usrp_sounder.py
Log:
Work in progress, debugging receiver correlator.
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/lfsr_constants.v
===================================================================
---
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/lfsr_constants.v
2007-06-04 19:24:30 UTC (rev 5667)
+++
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/lfsr_constants.v
2007-06-04 20:03:11 UTC (rev 5668)
@@ -19,33 +19,48 @@
// Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA
//
-module lfsr_constants(degree_i,mask_o,len_o);
- input wire [4:0] degree_i;
- output reg [15:0] mask_o;
- output wire [15:0] len_o;
+module lfsr_constants(clk_i,rst_i,degree_i,mask_o,rx_len_o,tx_len_o);
+ input clk_i;
+ input rst_i;
+ input [4:0] degree_i;
+ output reg [15:0] mask_o;
+ output reg [16:0] tx_len_o;
+ output reg [16:0] rx_len_o;
+
+ integer len;
- assign len_o = (1 << degree_i) - 1;
-
- always @*
- case (degree_i)
- 5'd00: mask_o = 16'h0000;
- 5'd01: mask_o = 16'h0001;
- 5'd02: mask_o = 16'h0003;
- 5'd03: mask_o = 16'h0005;
- 5'd04: mask_o = 16'h0009;
- 5'd05: mask_o = 16'h0012;
- 5'd06: mask_o = 16'h0021;
- 5'd07: mask_o = 16'h0041;
- 5'd08: mask_o = 16'h008E;
- 5'd09: mask_o = 16'h0108;
- 5'd10: mask_o = 16'h0204;
- 5'd11: mask_o = 16'h0402;
- 5'd12: mask_o = 16'h0829;
- 5'd13: mask_o = 16'h100D;
- 5'd14: mask_o = 16'h2015;
- 5'd15: mask_o = 16'h4001;
- 5'd16: mask_o = 16'h8016;
- default: mask_o = 16'h0000;
- endcase // case(degree_i)
+ always @(posedge clk_i)
+ if (rst_i)
+ begin
+ tx_len_o <= 17'b0;
+ rx_len_o <= 17'b0;
+ mask_o <= 16'b0;
+ end
+ else
+ begin
+ tx_len_o <= (1 << degree_i)-2;
+ rx_len_o <= ((1 << degree_i) << 1)-3;
+
+ case (degree_i)
+ 5'd00: mask_o <= 16'h0000;
+ 5'd01: mask_o <= 16'h0001;
+ 5'd02: mask_o <= 16'h0003;
+ 5'd03: mask_o <= 16'h0005;
+ 5'd04: mask_o <= 16'h0009;
+ 5'd05: mask_o <= 16'h0012;
+ 5'd06: mask_o <= 16'h0021;
+ 5'd07: mask_o <= 16'h0041;
+ 5'd08: mask_o <= 16'h008E;
+ 5'd09: mask_o <= 16'h0108;
+ 5'd10: mask_o <= 16'h0204;
+ 5'd11: mask_o <= 16'h0402;
+ 5'd12: mask_o <= 16'h0829;
+ 5'd13: mask_o <= 16'h100D;
+ 5'd14: mask_o <= 16'h2015;
+ 5'd15: mask_o <= 16'h4001;
+ 5'd16: mask_o <= 16'h8016;
+ default: mask_o <= 16'h0000;
+ endcase // case(degree_i)
+ end // else: !if(rst_i)
endmodule // lfsr_constants
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder.v
===================================================================
--- gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder.v
2007-06-04 19:24:30 UTC (rev 5667)
+++ gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder.v
2007-06-04 20:03:11 UTC (rev 5668)
@@ -53,18 +53,27 @@
wire loopback;
wire [4:0] degree;
+ wire [13:0] ampl;
wire [15:0] mask;
- wire [15:0] len;
+ wire [16:0] tx_len;
+ wire [16:0] rx_len;
setting_reg #(`FR_USER_0) sr_mode
(
.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
.out({loopback,receive,transmit,reset}) );
setting_reg #(`FR_USER_1) sr_lfsr_degree
- (
.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),.out(degree)
);
+ (
.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
+ .out(degree) );
- lfsr_constants constants(.degree_i(degree),.mask_o(mask),.len_o(len));
+ setting_reg #(`FR_USER_2) sr_lfsr_ampl
+ (
.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
+ .out(ampl) );
+ lfsr_constants constants
+ (.clk_i(clk_i),.rst_i(rst_i),.degree_i(degree),.mask_o(mask),
+ .rx_len_o(rx_len),.tx_len_o(tx_len) );
+
// Loopback implementation
wire [13:0] tx_i, tx_q;
wire [15:0] tx_i_ext, tx_q_ext;
@@ -80,13 +89,14 @@
sounder_tx transmitter
( .clk_i(clk_i),.rst_i(reset),.ena_i(transmit),
- .strobe_i(tx_strobe_i),.mask_i(mask),
+ .strobe_i(tx_strobe_i),.mask_i(mask),.ampl_i(ampl),
.tx_i_o(tx_i),.tx_q_o(tx_q) );
sounder_rx receiver
( .clk_i(clk_i),.rst_i(reset),.ena_i(receive),
-
.rx_strobe_i(rx_strobe_i),.tx_strobe_i(tx_strobe_i),.mask_i(mask),.degree_i(degree),.len_i(len),
+ .rx_strobe_i(rx_strobe_i),.tx_strobe_i(tx_strobe_i),
+ .mask_i(mask),.degree_i(degree),.tx_len_i(tx_len),.rx_len_i(rx_len),
.rx_in_i_i(rx_i),.rx_in_q_i(rx_q),.rx_i_o(rx_imp_i_o),.rx_q_o(rx_imp_q_o),
- .rx_strobe_o(rx_strobe_o),.loop_i(loopback));
+ .rx_strobe_o(rx_strobe_o));
endmodule // sounder
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder_rx.v
===================================================================
---
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder_rx.v
2007-06-04 19:24:30 UTC (rev 5667)
+++
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder_rx.v
2007-06-04 20:03:11 UTC (rev 5668)
@@ -19,9 +19,9 @@
// Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA
//
-module
sounder_rx(clk_i,rst_i,ena_i,rx_strobe_i,tx_strobe_i,mask_i,degree_i,len_i,
- rx_in_i_i,rx_in_q_i,rx_i_o,rx_q_o,rx_strobe_o,
- loop_i);
+module sounder_rx(clk_i,rst_i,ena_i,rx_strobe_i,tx_strobe_i,mask_i,degree_i,
+ rx_len_i,tx_len_i,rx_in_i_i,rx_in_q_i,rx_i_o,rx_q_o,
+ rx_strobe_o);
input clk_i; // Master clock
input rst_i; // Subsystem reset
@@ -31,7 +31,9 @@
input [15:0] mask_i; // PN code LFSR mask
input [4:0] degree_i; // PN code LFSR sequency degree
- input [15:0] len_i; // PN code LFSR sequence length
+ input [16:0] rx_len_i; // PN code length in receiver clocks
+ input [16:0] tx_len_i; // PN code length in transmit clocks
+
input [15:0] rx_in_i_i; // I channel on receive
input [15:0] rx_in_q_i; // Q channel on receive
@@ -39,17 +41,17 @@
output [15:0] rx_q_o; // Q channel of impulse response
output rx_strobe_o; // Impulse response value ready
- input loop_i; // Implement loopback
-
- wire strobe_in = loop_i ? tx_strobe_i : rx_strobe_i;
- wire [16:0] len = loop_i ? (len_i - 1) : ((len_i << 1) - 2);
-
- strobe #(17) phase_strobe(.clk_i(clk_i),.rst_i(rst_i),.ena_i(ena_i),
- .rate_i(len),.strobe_i(strobe_in),.strobe_o(rx_strobe_o),
- .count_o());
+ strobe #(17) rx_phase_strobe(.clk_i(clk_i),.rst_i(rst_i),.ena_i(ena_i),
+
.rate_i(rx_len_i),.strobe_i(rx_strobe_i),.strobe_o(rx_strobe_o),
+ .count_o());
+ wire ref_skip;
+ strobe #(17) tx_phase_strobe(.clk_i(clk_i),.rst_i(rst_i),.ena_i(ena_i),
+
.rate_i(tx_len_i),.strobe_i(tx_strobe_i),.strobe_o(ref_skip),
+ .count_o());
+
wire pn_ref;
- wire ref_strobe = tx_strobe_i & ~rx_strobe_o; // Retard reference phase
once per period
+ wire ref_strobe = tx_strobe_i & ~ref_skip; // Retard reference phase once
per period
lfsr ref_code
(
.clk_i(clk_i),.rst_i(rst_i),.ena_i(ena_i),.strobe_i(ref_strobe),.mask_i(mask_i),.pn_o(pn_ref)
);
@@ -82,7 +84,7 @@
sum_i <= 0;
sum_q <= 0;
end
- else if (strobe_in)
+ else if (rx_strobe_i)
begin
sum_i = sum_i + prod_i;
sum_q = sum_q + prod_q;
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-06-04 19:24:30 UTC (rev 5667)
+++
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder_tx.v
2007-06-04 20:03:11 UTC (rev 5668)
@@ -22,24 +22,23 @@
`include "../../../../usrp/firmware/include/fpga_regs_common.v"
`include "../../../../usrp/firmware/include/fpga_regs_standard.v"
-`define MAX_VALUE 14'h1FFF // 2s complement
-`define MIN_VALUE 14'h2001
-
-module sounder_tx(clk_i,rst_i,ena_i,strobe_i,mask_i,tx_i_o,tx_q_o);
+module sounder_tx(clk_i,rst_i,ena_i,strobe_i,ampl_i,mask_i,tx_i_o,tx_q_o);
input clk_i;
input rst_i;
input ena_i;
input strobe_i;
+ input [13:0] ampl_i;
input [15:0] mask_i;
output [13:0] tx_i_o;
output [13:0] tx_q_o;
wire pn;
-
+ wire [13:0] min_value = (~ampl_i)+14'b1;
+
lfsr pn_code
(
.clk_i(clk_i),.rst_i(rst_i),.ena_i(ena_i),.strobe_i(strobe_i),.mask_i(mask_i),.pn_o(pn)
);
- assign tx_i_o = ena_i ? (pn ? `MAX_VALUE : `MIN_VALUE) : 14'b0; // Bipolar
+ assign tx_i_o = ena_i ? (pn ? ampl_i : min_value) : 14'b0; // Bipolar
assign tx_q_o = 14'b0;
endmodule // sounder_tx
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.sav
===================================================================
---
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.sav
2007-06-04 19:24:30 UTC (rev 5667)
+++
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.sav
2007-06-04 20:03:11 UTC (rev 5668)
@@ -1,4 +1,4 @@
-*-24.753519 93900000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1
+*-30.950331 3972700000 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1
@28
sounder_tb.uut.clk_i
sounder_tb.rst
@@ -6,7 +6,6 @@
@22
sounder_tb.sdata[31:0]
@28
-sounder_tb.uut.reset
sounder_tb.uut.transmit
sounder_tb.uut.receive
sounder_tb.uut.loopback
@@ -14,27 +13,34 @@
-
@22
sounder_tb.uut.degree[4:0]
-sounder_tb.uut.len[15:0]
@200
-
address@hidden
-sounder_tb.tx_dac_i[13:0]
address@hidden
+sounder_tb.fifo_i[15:0]
+sounder_tb.fifo_q[15:0]
@200
-
@22
-sounder_tb.fifo_strobe
address@hidden
-sounder_tb.fifo_i[15:0]
address@hidden
-sounder_tb.fifo_q[15:0]
+sounder_tb.tx_dac_i[13:0]
@200
-
+-
address@hidden
+sounder_tb.uut.reset
+sounder_tb.uut.receiver.rx_strobe_i
+sounder_tb.uut.receiver.tx_strobe_i
@22
-sounder_tb.uut.transmitter.pn_code.pn_o
+sounder_tb.fifo_strobe
address@hidden
+sounder_tb.uut.receiver.ref_strobe
+sounder_tb.uut.transmitter.pn
sounder_tb.uut.receiver.pn_ref
@200
-
address@hidden
-sounder_tb.tx_strobe
address@hidden
+sounder_tb.uut.receiver.rx_len_i[16:0]
+sounder_tb.uut.receiver.tx_len_i[16:0]
address@hidden
+sounder_tb.uut.receiver.prod_i[31:0]
@8420
sounder_tb.uut.receiver.sum_i[31:0]
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.v
===================================================================
---
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.v
2007-06-04 19:24:30 UTC (rev 5667)
+++
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.v
2007-06-04 20:03:11 UTC (rev 5668)
@@ -19,7 +19,7 @@
// Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA
//
-`timescale 1ns/1ps
+`timescale 1ns/100ps
`include "../lib/sounder.v"
@@ -30,6 +30,7 @@
`define bmFR_MODE_LP 32'h0008
`define FR_DEGREE 7'd65
+`define FR_AMPL 7'd66
module sounder_tb;
@@ -101,9 +102,10 @@
initial
begin
- $monitor($time, " clk=%b rst=%b tx_strobe=%b fifo_strobe=%b phs=%x
pn_o=%b pn_ref=%b fifo_i=%x fifo_q=",
- clk, uut.reset, tx_strobe, fifo_strobe,
uut.receiver.phase_strobe.count_o,
- uut.transmitter.pn, uut.receiver.pn_ref, fifo_i, fifo_q);
+ $monitor($time, " clk=%b rst=%b tx_strobe=%b fifo_strobe=%b rxphs=%x
txphs=%x pn_o=%b pn_ref=%b sum_i=%x sum_q=%x fifo_i=%x fifo_q=",
+ clk, uut.reset, tx_strobe, fifo_strobe,
uut.receiver.rx_phase_strobe.count_o,
+
uut.receiver.tx_phase_strobe.count_o,uut.transmitter.pn, uut.receiver.pn_ref,
+ uut.receiver.sum_i,uut.receiver.sum_q,fifo_i, fifo_q);
$dumpfile("sounder_tb.vcd");
$dumpvars(0, sounder_tb);
end
@@ -141,6 +143,14 @@
end
endtask // set_degree
+ // Set the PN amplitude
+ task set_amplitude;
+ input [13:0] ampl;
+ begin
+ write_cfg_register(`FR_AMPL, ampl);
+ end
+ endtask // set_ampl
+
// Turn on or off the transmitter
task enable_tx;
input tx;
@@ -179,9 +189,12 @@
begin
#20 set_reset(1);
#20 set_degree(degree);
+ #20 set_amplitude(14'h1000);
#20 enable_tx(1);
+ #20 enable_rx(0);
+ #20 enable_lp(0);
#20 set_reset(0);
- #(uut.len*20); // One PN code period
+ #(uut.rx_len*20); // One PN code period
end
endtask // test_tx
@@ -197,16 +210,33 @@
#20 enable_rx(1);
#20 enable_lp(1);
#20 set_reset(0);
- #((uut.len+1)*uut.len*20*2);
+ #((uut.rx_len+1)*uut.rx_len*20*2);
end
endtask // test_lp
+ // Test receiver only functionality
+ task test_rx;
+ input [5:0] degree;
+
+ begin
+ #20 set_reset(1);
+ #20 set_degree(degree);
+ #20 enable_tx(0);
+ #20 enable_rx(1);
+ #20 enable_lp(0);
+ #20 set_reset(0);
+ #((uut.rx_len+1)*uut.rx_len*20*2);
+ end
+ endtask // test_lp
+
// Execute tests
initial
begin
- // #20 test_tx(12);
- #20 test_lp(12);
+ #20 test_tx(8);
+ #20 test_lp(8);
+ #20 test_rx(8);
#100 $finish;
end
+
endmodule
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/top/usrp_sounder.rbf
===================================================================
(Binary files differ)
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder.py
===================================================================
--- gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder.py
2007-06-04 19:24:30 UTC (rev 5667)
+++ gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/sounder.py
2007-06-04 20:03:11 UTC (rev 5668)
@@ -32,6 +32,7 @@
bmFR_MODE_LP = 1 << 3 # bit 3: enable digital loopback
FR_DEGREE = usrp.FR_USER_1
+FR_AMPL = usrp.FR_USER_2
def pick_subdevice(u):
"""
@@ -47,15 +48,18 @@
return (0, 0)
class sounder_tx:
- def __init__(self, loopback=False,verbose=False):
+ def __init__(self, loopback=False,ampl=4096,verbose=False,debug=False):
self._loopback=loopback
+ self._amplitude = ampl
self._verbose = verbose
+ self._debug = debug
self._u = usrp.sink_s(fpga_filename='usrp_sounder.rbf')
if not self._loopback:
self._subdev_spec = usrp.pick_tx_subdevice(self._u)
self._subdev = usrp.selected_subdev(self._u, self._subdev_spec)
if self._verbose:
print "Using", self._subdev.name(), "for sounder transmitter."
+ self.set_amplitude(ampl)
self._u.start()
def tune(self, frequency):
@@ -65,6 +69,12 @@
if result == False:
raise RuntimeError("Failed to set transmitter frequency.")
+ def set_amplitude(self, ampl):
+ self._amplitude = ampl
+ if self._debug:
+ print "Writing amplitude register with:", hex(self._mode)
+ self._u._write_fpga_reg(FR_AMPL, self._amplitude)
+
class sounder_rx:
def
__init__(self,subdev_spec=None,gain=None,length=1,msgq=None,loopback=False,verbose=False,debug=False):
self._subdev_spec = subdev_spec
@@ -103,6 +113,9 @@
def set_gain(self, gain):
self._gain = gain
+ if self._loopback:
+ return
+
if self._gain is None:
# if no gain was specified, use the mid-point in dB
g = self._subdev.gain_range()
@@ -131,13 +144,14 @@
class sounder:
- def
__init__(self,transmit=False,receive=False,loopback=False,rx_subdev_spec=None,
+ def
__init__(self,transmit=False,receive=False,loopback=False,rx_subdev_spec=None,ampl=0x1FFF,
frequency=0.0,rx_gain=None,degree=12,length=1,msgq=None,verbose=False,debug=False):
self._transmit = transmit
self._receive = receive
self._loopback = loopback
self._rx_subdev_spec = rx_subdev_spec
self._frequency = frequency
+ self._amplitude = ampl
self._rx_gain = rx_gain
self._degree = degree
self._length = length
@@ -152,7 +166,8 @@
self._receiving = False
if self._transmit:
- self._trans =
sounder_tx(loopback=self._loopback,verbose=self._verbose)
+ self._trans =
sounder_tx(loopback=self._loopback,ampl=self._amplitude,
+ verbose=self._verbose)
self._u = self._trans._u
if self._receive:
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/usrp_sounder.py
===================================================================
---
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/usrp_sounder.py
2007-06-04 19:24:30 UTC (rev 5667)
+++
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/usrp_sounder.py
2007-06-04 20:03:11 UTC (rev 5668)
@@ -40,6 +40,8 @@
help="set frequency to FREQ in Hz, default is %default",
metavar="FREQ")
parser.add_option("-d", "--degree", type="int", default=12,
help="set sounding sequence degree (2-12), default is
%default,")
+ parser.add_option("-a", "--amplitude", type="int", default=4096,
+ help="set waveform amplitude, default is %default,")
parser.add_option("-t", "--transmit", action="store_true", default=False,
help="enable sounding transmitter")
parser.add_option("-r", "--receive", action="store_true", default=False,
@@ -78,7 +80,7 @@
msgq = gr.msg_queue()
s =
sounder(transmit=options.transmit,receive=options.receive,loopback=options.loopback,
rx_subdev_spec=options.rx_subdev_spec,frequency=options.frequency,rx_gain=options.gain,
-
degree=options.degree,length=length,msgq=msgq,verbose=options.verbose,
+
degree=options.degree,length=length,msgq=msgq,verbose=options.verbose,ampl=options.amplitude,
debug=options.debug)
s.start()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r5668 - in gnuradio/branches/developers/jcorgan/snd/gr-sounder/src: fpga/lib fpga/tb fpga/top python,
jcorgan <=