[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r6450 - in gnuradio/branches/developers/jcorgan/radar:
From: |
jcorgan |
Subject: |
[Commit-gnuradio] r6450 - in gnuradio/branches/developers/jcorgan/radar: config gr-radar-mono/src/fpga gr-radar-mono/src/fpga/lib gr-radar-mono/src/fpga/models gr-radar-mono/src/fpga/tb gr-radar-mono/src/fpga/top |
Date: |
Mon, 17 Sep 2007 12:49:51 -0600 (MDT) |
Author: jcorgan
Date: 2007-09-17 12:49:51 -0600 (Mon, 17 Sep 2007)
New Revision: 6450
Added:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/models/
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/models/Makefile.am
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/models/fifo_1clk.v
Modified:
gnuradio/branches/developers/jcorgan/radar/config/grc_gr_radar_mono.m4
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/Makefile.am
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/Makefile.am
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar.v
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_control.v
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_rx.v
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/tb/radar_tb.sav
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/tb/radar_tb.sh
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/top/
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.rbf
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v
Log:
Receiver streaming in debug mode now working.
Modified: gnuradio/branches/developers/jcorgan/radar/config/grc_gr_radar_mono.m4
===================================================================
--- gnuradio/branches/developers/jcorgan/radar/config/grc_gr_radar_mono.m4
2007-09-15 23:26:49 UTC (rev 6449)
+++ gnuradio/branches/developers/jcorgan/radar/config/grc_gr_radar_mono.m4
2007-09-17 18:49:51 UTC (rev 6450)
@@ -27,6 +27,7 @@
gr-radar-mono/src/fpga/Makefile \
gr-radar-mono/src/fpga/top/Makefile \
gr-radar-mono/src/fpga/lib/Makefile \
+ gr-radar-mono/src/fpga/models/Makefile \
gr-radar-mono/src/fpga/tb/Makefile \
gr-radar-mono/src/lib/Makefile \
gr-radar-mono/src/python/Makefile \
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/Makefile.am
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/Makefile.am
2007-09-15 23:26:49 UTC (rev 6449)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/Makefile.am
2007-09-17 18:49:51 UTC (rev 6450)
@@ -21,4 +21,4 @@
include $(top_srcdir)/Makefile.common
-SUBDIRS = lib top tb
+SUBDIRS = lib top tb models
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/Makefile.am
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/Makefile.am
2007-09-15 23:26:49 UTC (rev 6449)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/Makefile.am
2007-09-17 18:49:51 UTC (rev 6450)
@@ -31,4 +31,4 @@
fifo32_4k.v \
cordic_nco.v
-MOSTLYCLEANFILES = *~
+MOSTLYCLEANFILES = *~ *.bak
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar.v
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar.v
2007-09-15 23:26:49 UTC (rev 6449)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar.v
2007-09-17 18:49:51 UTC (rev 6450)
@@ -25,7 +25,7 @@
tx_side_o,tx_strobe_o,tx_dac_i_o,tx_dac_q_o,
rx_adc_i_i,rx_adc_q_i,
rx_strobe_o,rx_ech_i_o,rx_ech_q_o);
-
+
// System interface
input clk_i; // Master clock @ 64 MHz
input [6:0] saddr_i; // Configuration bus address
@@ -53,6 +53,7 @@
wire rx_enable; // Receiver enable
wire tx_ctrl; // Transmitter on control
wire rx_ctrl; // Receiver on control
+ wire [15:0] pulse_num; // Count of pulses since tx_enabled
// Configuration
wire [15:0] ampl; // Pulse amplitude
@@ -63,7 +64,7 @@
(.clk_i(clk_i),.saddr_i(saddr_i),.sdata_i(sdata_i),.s_strobe_i(s_strobe_i),
.reset_o(reset),.tx_side_o(tx_side_o),.dbg_o(debug_enabled),
.tx_strobe_o(tx_strobe_o),.tx_ctrl_o(tx_ctrl),.rx_ctrl_o(rx_ctrl),
- .ampl_o(ampl),.fstart_o(fstart),.fincr_o(fincr));
+ .ampl_o(ampl),.fstart_o(fstart),.fincr_o(fincr),.pulse_num_o(pulse_num));
radar_tx transmitter
( .clk_i(clk_i),.rst_i(reset),.ena_i(tx_ctrl),.strobe_i(tx_strobe_o),
@@ -72,7 +73,7 @@
radar_rx receiver
( .clk_i(clk_i),.rst_i(reset),.ena_i(rx_ctrl),.dbg_i(debug_enabled),
- .rx_in_i_i(rx_adc_i_i),.rx_in_q_i(rx_adc_q_i),
+ .pulse_num_i(pulse_num),.rx_in_i_i(rx_adc_i_i),.rx_in_q_i(rx_adc_q_i),
.rx_strobe_o(rx_strobe_o),.rx_i_o(rx_ech_i_o),.rx_q_o(rx_ech_q_o) );
endmodule // radar
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_control.v
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_control.v
2007-09-15 23:26:49 UTC (rev 6449)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_control.v
2007-09-17 18:49:51 UTC (rev 6450)
@@ -21,10 +21,9 @@
`include "../lib/radar_config.vh"
-module radar_control(clk_i,saddr_i,sdata_i,s_strobe_i,
- reset_o,tx_side_o,dbg_o,
- tx_strobe_o,tx_ctrl_o,rx_ctrl_o,
- ampl_o,fstart_o,fincr_o);
+module radar_control(clk_i,saddr_i,sdata_i,s_strobe_i,reset_o,
+ tx_side_o,dbg_o,tx_strobe_o,tx_ctrl_o,rx_ctrl_o,
+ ampl_o,fstart_o,fincr_o,pulse_num_o);
// System interface
input clk_i; // Master clock @ 64 MHz
@@ -42,7 +41,8 @@
output [15:0] ampl_o;
output [31:0] fstart_o;
output [31:0] fincr_o;
-
+ output [15:0] pulse_num_o;
+
// Internal configuration
wire lp_ena;
wire md_ena;
@@ -94,12 +94,14 @@
reg [3:0] state;
reg [31:0] count;
-
+ reg [15:0] pulse_num_o;
+
always @(posedge clk_i)
if (reset_o)
begin
state <= `ST_ON;
count <= 32'b0;
+ pulse_num_o <= 16'b0;
end
else
case (state)
@@ -108,6 +110,7 @@
begin
state <= `ST_SW;
count <= 32'b0;
+ pulse_num_o <= pulse_num_o + 16'b1;
end
else
count <= count + 32'b1;
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_rx.v
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_rx.v
2007-09-15 23:26:49 UTC (rev 6449)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_rx.v
2007-09-17 18:49:51 UTC (rev 6450)
@@ -22,9 +22,8 @@
`include "../../../../usrp/firmware/include/fpga_regs_common.v"
`include "../../../../usrp/firmware/include/fpga_regs_standard.v"
-module radar_rx(clk_i,rst_i,ena_i,dbg_i,
- rx_in_i_i,rx_in_q_i,
- rx_i_o,rx_q_o,rx_strobe_o);
+module radar_rx(clk_i,rst_i,ena_i,dbg_i,pulse_num_i,rx_in_i_i,
+ rx_in_q_i,rx_i_o,rx_q_o,rx_strobe_o);
input clk_i;
input rst_i;
@@ -33,11 +32,12 @@
input [15:0] rx_in_i_i;
input [15:0] rx_in_q_i;
+ input [15:0] pulse_num_i;
output [15:0] rx_i_o;
output [15:0] rx_q_o;
output reg rx_strobe_o;
-
+
reg [15:0] count;
always @(posedge clk_i)
@@ -46,71 +46,63 @@
else
count <= count + 16'b1;
- wire [31:0] fifo_data = dbg_i ? {count[15:0],16'hAA55} :
{rx_in_i_i,rx_in_q_i};
+ wire [31:0] fifo_inp = dbg_i ? {count[15:0],pulse_num_i[15:0]} :
{rx_in_i_i,rx_in_q_i};
- // Need to buffer received samples as they come in at 32 bits per cycle
- // but the rx_buffer.v fifo is only 16 bits wide.
- //
- reg fifo_read;
+ // Buffer incoming samples every clock
wire [31:0] fifo_out;
+ reg fifo_ack;
wire fifo_empty;
+
+// Use model if simulating, otherwise Altera Megacell
+`ifdef SIMULATION
+ fifo_1clk #(32, 4096) buffer(.clock(clk_i),.sclr(rst_i),
+ .data(fifo_inp),.wrreq(ena_i),
+ .rdreq(fifo_ack),.q(fifo_out),
+ .empty(fifo_empty));
+`else
+ fifo32_4k buffer(.clock(clk_i),.sclr(rst_i),
+ .data(fifo_inp),.wrreq(ena_i),
+ .rdreq(fifo_ack),.q(fifo_out),
+ .empty(fifo_empty));
+`endif
- fifo32_4k fifo(.clock(clk_i),.sclr(rst_i),
- .data(fifo_data),.wrreq(ena_i),
- .q(fifo_out),.rdreq(fifo_read),
- .empty(fifo_empty) );
+ // Write samples to rx_fifo every third clock
+ `define ST_FIFO_IDLE 3'b001
+ `define ST_FIFO_STROBE 3'b010
+ `define ST_FIFO_ACK 3'b100
- `define ST_RD_IDLE 4'b0001
- `define ST_RD_REQ 4'b0010
- `define ST_WR_FIFO 4'b0100
- `define ST_RD_DELAY 4'b1000
+ reg [2:0] state;
- reg [3:0] state;
- reg [3:0] delay;
-
always @(posedge clk_i)
- if (rst_i | ~ena_i)
+ if (rst_i)
begin
- state <= `ST_RD_IDLE;
- delay <= 4'd0;
+ state <= `ST_FIFO_IDLE;
rx_strobe_o <= 1'b0;
- fifo_read <= 1'b0;
+ fifo_ack <= 1'b0;
end
else
case (state)
- `ST_RD_IDLE:
+ `ST_FIFO_IDLE:
+ if (!fifo_empty)
+ begin
+ // Tell rx_fifo sample is ready
+ rx_strobe_o <= 1'b1;
+ state <= `ST_FIFO_STROBE;
+ end
+ `ST_FIFO_STROBE:
begin
- if (!fifo_empty)
- begin
- fifo_read <= 1'b1;
- state <= `ST_RD_REQ;
- end
+ rx_strobe_o <= 1'b0;
+ // Ack our FIFO
+ fifo_ack <= 1'b1;
+ state <= `ST_FIFO_ACK;
end
-
- `ST_RD_REQ:
+ `ST_FIFO_ACK:
begin
- fifo_read <= 1'b0;
- rx_strobe_o <= 1'b1;
- state <= `ST_WR_FIFO;
+ fifo_ack <= 1'b0;
+ state <= `ST_FIFO_IDLE;
end
-
- `ST_WR_FIFO:
- begin
- rx_strobe_o <= 1'b0;
- state <= `ST_RD_DELAY;
- end
-
- `ST_RD_DELAY:
- if (delay == 7)
- begin
- delay <= 0;
- state <= `ST_RD_IDLE;
- end
- else
- delay <= delay + 1'b1;
-
endcase // case(state)
-
+
assign rx_i_o = fifo_out[31:16];
assign rx_q_o = fifo_out[15:0];
Property changes on:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/models
___________________________________________________________________
Name: svn:ignore
+ Makefile
Makefile.in
Added:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/models/Makefile.am
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/models/Makefile.am
(rev 0)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/models/Makefile.am
2007-09-17 18:49:51 UTC (rev 6450)
@@ -0,0 +1,27 @@
+#
+# Copyright 2007 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+#
+
+include $(top_srcdir)/Makefile.common
+
+EXTRA_DIST = \
+ fifo_1clk.v
+
+MOSTLYCLEANFILES = *~
Added:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/models/fifo_1clk.v
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/models/fifo_1clk.v
(rev 0)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/models/fifo_1clk.v
2007-09-17 18:49:51 UTC (rev 6450)
@@ -0,0 +1,88 @@
+/* -*- verilog -*- */
+/*
+ * Copyright (C) 2003 Matt Ettus
+ * Copyright (C) 2007 Corgan Enterprises LLC
+ *
+ * GNU Radio is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * GNU Radio is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Radio; see the file COPYING. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+
+// Model of Altera FIFO with common clock domain
+
+module fifo_1clk(data, wrreq, rdreq, clock, sclr, q,
+ full, empty, usedw);
+
+ parameter width = 32;
+ parameter depth = 4096;
+ //`define rd_req 0; // Set this to 0 for rd_ack, 1 for rd_req
+
+ input [31:0] data;
+ input wrreq;
+ input rdreq;
+ input clock;
+ input sclr;
+ output [31:0] q;
+ output full;
+ output empty;
+ output [11:0] usedw;
+
+ reg [width-1:0] mem [0:depth-1];
+ reg [7:0] rdptr;
+ reg [7:0] wrptr;
+
+`ifdef rd_req
+ reg [width-1:0] q;
+`else
+ wire [width-1:0] q;
+`endif
+
+ reg [11:0] usedw;
+
+ integer i;
+
+ always @( sclr)
+ begin
+ wrptr <= #1 0;
+ rdptr <= #1 0;
+ for(i=0;i<depth;i=i+1)
+ mem[i] <= #1 0;
+ end
+
+ always @(posedge clock)
+ if(wrreq)
+ begin
+ wrptr <= #1 wrptr+1;
+ mem[wrptr] <= #1 data;
+ end
+
+ always @(posedge clock)
+ if(rdreq)
+ begin
+ rdptr <= #1 rdptr+1;
+`ifdef rd_req
+ q <= #1 mem[rdptr];
+`endif
+ end
+
+`ifdef rd_req
+`else
+ assign q = mem[rdptr];
+`endif
+
+ always @(posedge clock)
+ usedw <= #1 wrptr - rdptr;
+
+ assign empty = (wrptr == rdptr);
+endmodule
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/tb/radar_tb.sav
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/tb/radar_tb.sav
2007-09-15 23:26:49 UTC (rev 6449)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/tb/radar_tb.sav
2007-09-17 18:49:51 UTC (rev 6450)
@@ -1,4 +1,4 @@
-*-24.808464 9235000 -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
+*-24.712317 7100000 -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
radar_tb.clk
radar_tb.ena
@@ -28,7 +28,22 @@
-
@28
radar_tb.fifo_strobe
address@hidden
address@hidden
radar_tb.fifo_i[15:0]
@22
radar_tb.fifo_q[15:0]
address@hidden
+-
address@hidden
+radar_tb.uut.pulse_num[15:0]
+radar_tb.uut.receiver.count[15:0]
address@hidden
+radar_tb.uut.receiver.fifo_empty
+radar_tb.uut.receiver.fifo_rd
address@hidden
+radar_tb.uut.receiver.fifo_inp[31:0]
+radar_tb.uut.receiver.fifo_out[31:0]
address@hidden
+radar_tb.uut.receiver.state[2:0]
address@hidden
+-
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/tb/radar_tb.sh
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/tb/radar_tb.sh
2007-09-15 23:26:49 UTC (rev 6449)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/tb/radar_tb.sh
2007-09-17 18:49:51 UTC (rev 6450)
@@ -1,3 +1,7 @@
#!/bin/sh
-iverilog -y ../lib/ -y ../../../../usrp/fpga/sdr_lib \
+iverilog \
+ -D SIMULATION \
+ -y ../lib/ \
+ -y ../../../../usrp/fpga/sdr_lib \
+ -y ../models/ \
radar_tb.v -o radar_tb && ./radar_tb > radar_tb.out
Property changes on:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/top
___________________________________________________________________
Name: svn:ignore
- *.qmsg
*.qws
*.eqn
*.done
*.htm
*.rpt
*.ini
*.fsf
*.jam
*.jbc
*.pin
*.pof
*.rbf
*.smsg
*.sof
*.ttf
*.summary
db
Makefile
Makefile.in
+ *.qmsg
*.qws
*.eqn
*.done
*.htm
*.rpt
*.ini
*.fsf
*.jam
*.jbc
*.pin
*.pof
*.rbf
*.smsg
*.sof
*.ttf
*.summary
undo_redo.txt
db
Makefile
Makefile.in
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.rbf
===================================================================
(Binary files differ)
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v
2007-09-15 23:26:49 UTC (rev 6449)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v
2007-09-17 18:49:51 UTC (rev 6450)
@@ -155,7 +155,7 @@
assign capabilities[7] = 0; // `TX_CAP_HB;
assign capabilities[6:4] = 1; // `TX_CAP_NCHAN;
assign capabilities[3] = 0; // `RX_CAP_HB;
- assign capabilities[2:0] = 1; // `RX_CAP_NCHAN;
+ assign capabilities[2:0] = 2; // `RX_CAP_NCHAN;
serial_io serial_io
( .master_clk(clk64),.serial_clock(SCLK),.serial_data_in(SDI),
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r6450 - in gnuradio/branches/developers/jcorgan/radar: config gr-radar-mono/src/fpga gr-radar-mono/src/fpga/lib gr-radar-mono/src/fpga/models gr-radar-mono/src/fpga/tb gr-radar-mono/src/fpga/top,
jcorgan <=