[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r5491 - in gnuradio/branches/developers/jcorgan/snd/gr
From: |
jcorgan |
Subject: |
[Commit-gnuradio] r5491 - in gnuradio/branches/developers/jcorgan/snd/gr-sounder/src: fpga/lib fpga/tb fpga/top python |
Date: |
Thu, 17 May 2007 20:43:29 -0600 (MDT) |
Author: jcorgan
Date: 2007-05-17 20:43:28 -0600 (Thu, 17 May 2007)
New Revision: 5491
Added:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.sh
Removed:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb_test.sh
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder_rx.v
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/strobe.v
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/Makefile.am
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/test_lp.sh
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/test_rx.sh
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/test_tx.sh
Log:
Work in progress. Digital loopback works in simulation and on FPGA.
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-05-18 02:34:09 UTC (rev 5490)
+++
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/sounder_rx.v
2007-05-18 02:43:28 UTC (rev 5491)
@@ -48,35 +48,48 @@
.rate_i(len),.strobe_i(strobe_in),.strobe_o(rx_strobe_o),
.count_o());
- // Must register these for RX FIFO as it grabs the value one clock after
strobe
- reg [15:0] rx_i_o;
- reg [15:0] rx_q_o;
+ wire pn_ref;
+ wire ref_strobe = tx_strobe_i & ~rx_strobe_o; // 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)
);
- // For debugging, accumulate the sum of the input over one phase period
- reg [31:0] sum_i;
- wire [31:0] sum_scaled_i = sum_i << (5'd16-degree_i);
+ wire [5:0] offset = (5'd16-degree_i);
- wire [31:0] i_ext;
- wire [31:0] q_ext;
+ reg [31:0] sum_i, sum_q;
+ reg [31:0] total_i, total_q;
+ wire [31:0] scaled_i = total_i << offset;
+ wire [31:0] scaled_q = total_q << offset;
+ wire [31:0] i_ext, q_ext;
sign_extend #(16,32) i_extender(rx_in_i_i, i_ext);
sign_extend #(16,32) q_extender(rx_in_q_i, q_ext);
+ wire [31:0] prod_i = pn_ref ? i_ext : -i_ext;
+ wire [31:0] prod_q = pn_ref ? q_ext : -q_ext;
+
always @(posedge clk_i)
if (rst_i | ~ena_i)
begin
sum_i <= 0;
- rx_i_o <= 0;
- rx_q_o <= 0;
+ sum_q <= 0;
+ total_i <= 0;
+ total_q <= 0;
end
else if (rx_strobe_o)
begin
- rx_i_o <= sum_scaled_i[31:16];
- rx_q_o <= sum_scaled_i[15:0];
- sum_i <= i_ext;
+ total_i <= sum_i + prod_i;
+ total_q <= sum_q + prod_q;
+ sum_i <= 0;
+ sum_q <= 0;
end
else if (strobe_in)
- sum_i <= sum_i + i_ext;
+ begin
+ sum_i = sum_i + prod_i;
+ sum_q = sum_q + prod_q;
+ end
+ assign rx_i_o = scaled_i[31:16];
+ assign rx_q_o = scaled_q[31:16];
+
endmodule // sounder_rx
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/strobe.v
===================================================================
--- gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/strobe.v
2007-05-18 02:34:09 UTC (rev 5490)
+++ gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/lib/strobe.v
2007-05-18 02:43:28 UTC (rev 5491)
@@ -35,14 +35,14 @@
always @(posedge clk_i)
if(rst_i | ~ena_i)
- counter <= 0;
+ counter <= 32'hFFFFFFFF; // First period is short by one
else if(strobe_i)
- if(counter == 0)
- counter <= rate_i;
+ if(counter == rate_i)
+ counter <= 0;
else
- counter <= counter - 1;
+ counter <= counter + 1;
- assign strobe_o = ~|counter & ~rst_i & ena_i & strobe_i;
+ assign strobe_o = (counter == rate_i) & strobe_i;
assign count_o = counter;
endmodule // strobe
Property changes on:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb
___________________________________________________________________
Name: svn:ignore
- Makefile
Makefile.in
*.vcd
sounder_tb
*.out
+ Makefile
Makefile.in
*.vcd
sounder_tb
*.out*
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/Makefile.am
===================================================================
--- gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/Makefile.am
2007-05-18 02:34:09 UTC (rev 5490)
+++ gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/Makefile.am
2007-05-18 02:43:28 UTC (rev 5491)
@@ -27,4 +27,4 @@
sounder_tb_test.sh \
sounder_tb_wave.sh
-MOSTLYCLEANFILES = *~ *.vcd *.out sounder_tb
\ No newline at end of file
+MOSTLYCLEANFILES = *~ *.vcd *.out* sounder_tb
\ No newline at end of file
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-05-18 02:34:09 UTC (rev 5490)
+++
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.sav
2007-05-18 02:43:28 UTC (rev 5491)
@@ -1,4 +1,4 @@
-*-17.000000 321700 -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
+*-26.117517 250000000 -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
@@ -18,23 +18,17 @@
@200
-
@28
-sounder_tb.tx_strobe
sounder_tb.tx_dac_i[13:0]
@200
-
address@hidden
-sounder_tb.fifo_strobe
@22
+sounder_tb.fifo_strobe
sounder_tb.fifo_i[15:0]
sounder_tb.fifo_q[15:0]
@200
-
address@hidden
-sounder_tb.uut.transmitter.pn_code.pn_o
-sounder_tb.uut.transmitter.tx_i_o[13:0]
@22
-sounder_tb.uut.receiver.phase_strobe.count_o[16:0]
-sounder_tb.uut.receiver.i_ext[31:0]
address@hidden
-sounder_tb.uut.receiver.sum_i[31:0]
-sounder_tb.uut.receiver.sum_scaled_i[31:0]
+sounder_tb.uut.transmitter.pn_code.pn_o
+sounder_tb.uut.receiver.pn_ref
address@hidden
+-
Copied:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.sh
(from rev 5486,
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb_test.sh)
===================================================================
---
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.sh
(rev 0)
+++
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.sh
2007-05-18 02:43:28 UTC (rev 5491)
@@ -0,0 +1,7 @@
+#!/bin/sh
+iverilog -y ../lib/ -y ../../../../usrp/fpga/sdr_lib \
+ sounder_tb.v -o sounder_tb && \
+./sounder_tb > sounder_tb.out && \
+grep 'rst=0' sounder_tb.out | grep 'clk=1' > sounder_tb.out2 && \
+grep 'tx_strobe=1' sounder_tb.out2 > sounder_tb.out3
+
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-05-18 02:34:09 UTC (rev 5490)
+++
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb.v
2007-05-18 02:43:28 UTC (rev 5491)
@@ -67,11 +67,11 @@
.tx_strobe_i(tx_strobe),.tx_dac_i_o(tx_dac_i),.tx_dac_q_o(tx_dac_q),
.rx_strobe_i(rx_strobe),.rx_adc_i_i(rx_adc_i),.rx_adc_q_i(rx_adc_q),
.rx_strobe_o(fifo_strobe),.rx_imp_i_o(fifo_i),.rx_imp_q_o(fifo_q));
-
+
// Drive tx_strobe @ half clock rate
always @(posedge clk)
- tx_strobe = ~tx_strobe;
-
+ tx_strobe <= ~tx_strobe;
+
// Start up initialization
initial
begin
@@ -101,6 +101,9 @@
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);
$dumpfile("sounder_tb.vcd");
$dumpvars(0, sounder_tb);
end
@@ -178,6 +181,8 @@
#20 set_degree(degree);
#20 enable_tx(1);
#20 set_reset(0);
+ #(uut.len*20); // One PN code period
+
end
endtask // test_tx
@@ -192,15 +197,16 @@
#20 enable_rx(1);
#20 enable_lp(1);
#20 set_reset(0);
+ #((uut.len+1)*uut.len*20);
end
endtask // test_lp
// Execute tests
initial
begin
- #20 test_lp(8);
-
- #10000 $finish;
+ #20 test_tx(12);
+ #20 test_lp(12);
+ #100 $finish;
end
endmodule
Deleted:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/fpga/tb/sounder_tb_test.sh
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/test_lp.sh
===================================================================
--- gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/test_lp.sh
2007-05-18 02:34:09 UTC (rev 5490)
+++ gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/test_lp.sh
2007-05-18 02:43:28 UTC (rev 5491)
@@ -1,4 +1,4 @@
#!/bin/sh
-usrp_sounder.py -r -l -t -n4095 -d12
+usrp_sounder.py -r -l -t -n5000 -d12
hexdump output.dat >output.hex
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/test_rx.sh
===================================================================
--- gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/test_rx.sh
2007-05-18 02:34:09 UTC (rev 5490)
+++ gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/test_rx.sh
2007-05-18 02:43:28 UTC (rev 5491)
@@ -1,4 +1,4 @@
#!/bin/sh
-usrp_sounder.py -r -n4095 -d12
+usrp_sounder.py -r -n5000 -d12
hexdump output.dat >output.hex
Modified:
gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/test_tx.sh
===================================================================
--- gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/test_tx.sh
2007-05-18 02:34:09 UTC (rev 5490)
+++ gnuradio/branches/developers/jcorgan/snd/gr-sounder/src/python/test_tx.sh
2007-05-18 02:43:28 UTC (rev 5491)
@@ -1,3 +1,3 @@
#!/bin/sh
-usrp_sounder.py -t -d12
+usrp_sounder.py -t -f 16M -d12
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r5491 - in gnuradio/branches/developers/jcorgan/snd/gr-sounder/src: fpga/lib fpga/tb fpga/top python,
jcorgan <=