[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r6003 - in gnuradio/branches/developers/jcorgan/radar/
From: |
jcorgan |
Subject: |
[Commit-gnuradio] r6003 - in gnuradio/branches/developers/jcorgan/radar/gr-radar-mono: . doc src/fpga/lib src/fpga/tb src/fpga/top src/python |
Date: |
Tue, 17 Jul 2007 15:40:33 -0600 (MDT) |
Author: jcorgan
Date: 2007-07-17 15:40:32 -0600 (Tue, 17 Jul 2007)
New Revision: 6003
Added:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/doc/registers.ods
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/README
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/doc/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_config.vh
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/lib/radar_tx.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.v
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.srf
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/python/radar_mono.py
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/python/usrp_radar_mono.py
Log:
Implemented pulse state machine and CW output.
Modified: gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/README
===================================================================
--- gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/README
2007-07-17 17:48:00 UTC (rev 6002)
+++ gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/README
2007-07-17 21:40:32 UTC (rev 6003)
@@ -11,4 +11,4 @@
Johnathan Corgan
Corgan Enterprises LLC
address@hidden
-7/11/2007
+7/17/2007
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/doc/Makefile.am
===================================================================
--- gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/doc/Makefile.am
2007-07-17 17:48:00 UTC (rev 6002)
+++ gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/doc/Makefile.am
2007-07-17 21:40:32 UTC (rev 6003)
@@ -21,3 +21,4 @@
include $(top_srcdir)/Makefile.common
+EXTRA_DIST = registers.ods
\ No newline at end of file
Added:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/doc/registers.ods
===================================================================
(Binary files differ)
Property changes on:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/doc/registers.ods
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
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-07-17 17:48:00 UTC (rev 6002)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar.v
2007-07-17 21:40:32 UTC (rev 6003)
@@ -45,25 +45,29 @@
output [15:0] rx_ech_i_o; // I channel processed echos to Rx FIFO
output [15:0] rx_ech_q_o; // Q channel processed echos to Rx FIFO
+ // Application control
wire reset; // Master application reset
wire tx_enable; // Transmitter enable
wire rx_enable; // Receiver enable
-
- wire [15:0] ampl;
- wire [31:0] freq; // temporary
+ wire tx_ctrl; // Transmitter on control
+ wire rx_ctrl; // Receiver on control
+
+ // Configuration
+ wire [15:0] ampl; // Pulse amplitude
+ wire [31:0] freq; // Temporary, for frequency response
testing
radar_control controller
-
(.clk_i(clk_i),.s_strobe_i(s_strobe_i),.saddr_i(saddr_i),.sdata_i(sdata_i),
- .reset_o(reset),.tx_ena_o(tx_enable),.rx_ena_o(rx_enable),
- .ampl_o(ampl),.freq_o(freq),.tx_strobe_o(tx_strobe_o));
+
(.clk_i(clk_i),.saddr_i(saddr_i),.sdata_i(sdata_i),.s_strobe_i(s_strobe_i),
+
.reset_o(reset),.tx_strobe_o(tx_strobe_o),.tx_ctrl_o(tx_ctrl),.rx_ctrl_o(rx_ctrl),
+ .ampl_o(ampl),.freq_o(freq));
radar_tx transmitter
- ( .clk_i(clk_i),.rst_i(reset),.ena_i(tx_enable),
- .ampl_i(ampl),.freq_i(freq),
- .strobe_i(tx_strobe_o),.tx_i_o(tx_dac_i_o),.tx_q_o(tx_dac_q_o) );
+ ( .clk_i(clk_i),.rst_i(reset),.ena_i(tx_ctrl),
+ .ampl_i(ampl),.freq_i(freq),.strobe_i(tx_strobe_o),
+ .tx_i_o(tx_dac_i_o),.tx_q_o(tx_dac_q_o) );
radar_rx receiver
- ( .clk_i(clk_i),.rst_i(reset),.ena_i(rx_enable),
+ ( .clk_i(clk_i),.rst_i(reset),.ena_i(rx_ctrl & 1'b0), // Disable receiver
for now
.strobe_i(rx_strobe_i),.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) );
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_config.vh
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_config.vh
2007-07-17 17:48:00 UTC (rev 6002)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_config.vh
2007-07-17 21:40:32 UTC (rev 6003)
@@ -24,8 +24,11 @@
`define FR_RADAR_MODE `FR_USER_0
`define bmFR_RADAR_MODE_RESET 32'h0001
-`define bmFR_RADAR_MODE_TX 32'h0002
-`define bmFR_RADAR_MODE_RX 32'h0004
+`define FR_RADAR_TON `FR_USER_1
+`define FR_RADAR_TSW `FR_USER_2
+`define FR_RADAR_TLOOK `FR_USER_3
+`define FR_RADAR_TIDLE `FR_USER_4
+
`define FR_RADAR_AMPL `FR_USER_5
`define FR_RADAR_FREQ1N `FR_USER_8
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-07-17 17:48:00 UTC (rev 6002)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_control.v
2007-07-17 21:40:32 UTC (rev 6003)
@@ -22,8 +22,8 @@
`include "../lib/radar_config.vh"
module radar_control(clk_i,saddr_i,sdata_i,s_strobe_i,
- reset_o,tx_ena_o,rx_ena_o,ampl_o,freq_o,
- tx_strobe_o);
+ reset_o,tx_strobe_o,tx_ctrl_o,rx_ctrl_o,
+ ampl_o,freq_o);
// System interface
input clk_i; // Master clock @ 64 MHz
@@ -31,44 +31,108 @@
input [31:0] sdata_i; // Configuration bus data
input s_strobe_i; // Configuration bus write
- // Configuration outputs
+ // Control and configuration outputs
output reset_o;
- output tx_ena_o;
- output rx_ena_o;
-
+ output tx_strobe_o;
+ output tx_ctrl_o;
+ output rx_ctrl_o;
output [15:0] ampl_o;
output [31:0] freq_o;
-
- // Control signal outputs
- output tx_strobe_o;
-
+
// Internal configuration
wire lp_ena;
wire dr_ena;
wire md_ena;
- wire [1:0] chirps;
+ wire [1:0] chirps;
+ wire [15:0] t_on;
+ wire [15:0] t_sw;
+ wire [15:0] t_look;
+ wire [31:0] t_idle;
- // Master control state machine
- reg [31:0] phase;
-
// Configuration from host
- setting_reg #(`FR_RADAR_MODE)
sr_mode(.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
-
.out({chirps,md_ena,dr_ena,lp_ena,rx_ena_o,tx_ena_o,reset_o}));
+ setting_reg #(`FR_RADAR_MODE)
sr_mode(.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
+
.out({chirps,md_ena,dr_ena,lp_ena,reset_o}));
- setting_reg #(`FR_RADAR_AMPL)
sr_ampl(.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
- .out(ampl_o));
+ setting_reg #(`FR_RADAR_TON)
sr_ton(.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
+ .out(t_on));
+
+ setting_reg #(`FR_RADAR_TSW)
sr_tsw(.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
+ .out(t_sw));
+
+ setting_reg #(`FR_RADAR_TLOOK)
sr_tlook(.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
+ .out(t_look));
+
+ setting_reg #(`FR_RADAR_TIDLE)
sr_tidle(.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
+ .out(t_idle));
+
+ setting_reg #(`FR_RADAR_AMPL)
sr_ampl(.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
+ .out(ampl_o));
setting_reg #(`FR_RADAR_FREQ1N)
sr_freq(.clock(clk_i),.reset(1'b0),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
.out(freq_o));
- // Master time base
+ // Pulse state machine
+ `define ST_ON 4'b0001
+ `define ST_SW 4'b0010
+ `define ST_LOOK 4'b0100
+ `define ST_IDLE 4'b1000
+
+ reg [3:0] state;
+ reg [31:0] count;
+
always @(posedge clk_i)
if (reset_o)
- phase <= 32'b0;
+ begin
+ state <= `ST_ON;
+ count <= 32'b0;
+ end
else
- phase <= phase + 32'b1;
+ case (state)
+ `ST_ON:
+ if (count == {16'b0,t_on})
+ begin
+ state <= `ST_SW;
+ count <= 32'b0;
+ end
+ else
+ count <= count + 32'b1;
+
+ `ST_SW:
+ if (count == {16'b0,t_sw})
+ begin
+ state <= `ST_LOOK;
+ count <= 32'b0;
+ end
+ else
+ count <= count + 24'b1;
+
+ `ST_LOOK:
+ if (count == {16'b0,t_look})
+ begin
+ state <= `ST_IDLE;
+ count <= 32'b0;
+ end
+ else
+ count <= count + 32'b1;
+
+ `ST_IDLE:
+ if (count == t_idle)
+ begin
+ state <= `ST_ON;
+ count <= 24'b0;
+ end
+ else
+ count <= count + 32'b1;
+
+ default: // Invalid state, reset state machine
+ begin
+ state <= `ST_ON;
+ count <= 32'b0;
+ end
+ endcase
- // 32 MHz
- assign tx_strobe_o = phase[0];
+ assign tx_strobe_o = count[0]; // Drive DAC inputs at 32 MHz
+ assign tx_ctrl_o = (state == `ST_ON);
+ assign rx_ctrl_o = (state == `ST_LOOK);
endmodule // radar_control
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-07-17 17:48:00 UTC (rev 6002)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_rx.v
2007-07-17 21:40:32 UTC (rev 6003)
@@ -22,8 +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,strobe_i,saddr_i,sdata_i,s_strobe_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,strobe_i,saddr_i,sdata_i,s_strobe_i,
+ rx_in_i_i,rx_in_q_i,rx_i_o,rx_q_o,rx_strobe_o);
input clk_i;
input rst_i;
@@ -36,7 +36,7 @@
input [15:0] rx_in_i_i;
input [15:0] rx_in_q_i;
-
+
output [15:0] rx_i_o;
output [15:0] rx_q_o;
output rx_strobe_o;
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_tx.v
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_tx.v
2007-07-17 17:48:00 UTC (rev 6002)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/lib/radar_tx.v
2007-07-17 21:40:32 UTC (rev 6003)
@@ -19,7 +19,8 @@
// Foundation, Inc., 51 Franklin Street, Boston, MA 02110-1301 USA
//
-module radar_tx(clk_i,rst_i,ena_i,strobe_i,ampl_i,freq_i,tx_i_o,tx_q_o);
+module radar_tx(clk_i,rst_i,ena_i,strobe_i,
+ ampl_i,freq_i,tx_i_o,tx_q_o);
// System control
input clk_i;
input rst_i;
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-07-17 17:48:00 UTC (rev 6002)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/tb/radar_tb.sav
2007-07-17 21:40:32 UTC (rev 6003)
@@ -1,19 +1,19 @@
-*-20.514782 1460000 -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
+*-22.712532 61300000 -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
radar_tb.rst
radar_tb.uut.reset
-radar_tb.uut.tx_enable
radar_tb.uut.rx_enable
@200
-
address@hidden
+radar_tb.uut.controller.ampl_o[15:0]
@24
radar_tb.uut.freq[31:0]
address@hidden
-radar_tb.uut.controller.ampl_o[15:0]
@200
-
+-
@28
radar_tb.tx_strobe
@8420
@@ -21,5 +21,6 @@
radar_tb.uut.tx_dac_q_o[13:0]
@200
-
address@hidden
-radar_tb.uut.controller.phase[31:0]
address@hidden
+radar_tb.uut.controller.tx_ctrl_o
+radar_tb.uut.controller.rx_ctrl_o
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/tb/radar_tb.v
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/tb/radar_tb.v
2007-07-17 17:48:00 UTC (rev 6002)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/tb/radar_tb.v
2007-07-17 21:40:32 UTC (rev 6003)
@@ -117,32 +117,48 @@
end
endtask // reset
- // Enable/disable transmitter
- task enable_tx;
- input enabled;
-
+ // Waveform on time
+ task set_ton;
+ input [23:0] t_on;
+
begin
- mode = enabled ? (mode | `bmFR_RADAR_MODE_TX) : (mode &
~`bmFR_RADAR_MODE_TX);
- write_cfg_register(`FR_RADAR_MODE, mode);
+ write_cfg_register(`FR_RADAR_TON, t_on);
end
- endtask // enable_tx
-
- // Enable/disable receiver
- task enable_rx;
- input enabled;
-
+ endtask // set_ton
+
+ // Transmitter switching time
+ task set_tsw;
+ input [23:0] t_sw;
+
begin
- mode = enabled ? (mode | `bmFR_RADAR_MODE_RX) : (mode &
~`bmFR_RADAR_MODE_RX);
- write_cfg_register(`FR_RADAR_MODE, mode);
+ write_cfg_register(`FR_RADAR_TSW, t_sw);
end
- endtask // enable_rx
-
+ endtask // t_sw
+
+ // Receiver look time
+ task set_tlook;
+ input [23:0] t_look;
+
+ begin
+ write_cfg_register(`FR_RADAR_TLOOK, t_look);
+ end
+ endtask // set_tlook
+
+ // Inter-pulse idle time
+ task set_tidle;
+ input [23:0] t_idle;
+
+ begin
+ write_cfg_register(`FR_RADAR_TIDLE, t_idle);
+ end
+ endtask // set_tidle
+
// Waveform amplitude
task set_amplitude;
- input [13:0] amp;
+ input [31:0] ampl;
begin
- write_cfg_register(`FR_RADAR_AMPL, amp);
+ write_cfg_register(`FR_RADAR_AMPL, ampl);
end
endtask // set_amplitude
@@ -159,12 +175,17 @@
task test_tx;
begin
#20 set_reset(1);
+
+ #20 set_ton(320-1); // 5us on time
+ #20 set_tsw(26-1); // 406ns switching time
+ #20 set_tlook(320-1); // 5us look time
+ #20 set_tidle(3174-1); // 60us pulse period
+
#20 set_amplitude(16'd9946);
#20 set_frequency(32'h08000000);
- #20 enable_tx(1);
- #20 enable_rx(0);
+
#20 set_reset(0);
- #10000;
+ #200000;
end
endtask // test_tx
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.srf
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.srf
2007-07-17 17:48:00 UTC (rev 6002)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.srf
2007-07-17 21:40:32 UTC (rev 6003)
@@ -128,3 +128,8 @@
{ "Warning" "WFIOMGR_BIDIR_OR_OUTPUT_WITH_TRIVIAL_DATAIN" "18 " "Warning:
Following * pins have nothing, GND, or VCC driving datain port -- changes to
this connectivity may change fitting results" { { "Info"
"IFIOMGR_BIDIR_OR_OUTPUT_WITH_TRIVIAL_DATAIN_SUB" "tx_b\[13\] GND " "Info: Pin
tx_b\[13\] has GND driving its datain port" { } { { "usrp_radar_mono.v" "" {
Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 }
} { "c:/altera/71sp1/quartus/bin/Assignment Editor.qase" "" { Assignment
"c:/altera/71sp1/quartus/bin/Assignment Editor.qase" 1 { { 0 "tx_b\[13\]" } } }
} { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan
"c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[13] }
"NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" {
Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" {
tx_b[13] } "NODE_NAME" } } } 0 0 "Pin %1!s! has %2!s! driving its datain port"
1 0 "" 0} } { } 0 0 "Following %1!d! pins have nothing, GND, or VCC driving
datain port -- changes to this connectivity may change fitting results" 0 0 ""
0}
{ "Warning" "WFIOMGR_BIDIR_OR_OUTPUT_WITH_TRIVIAL_DATAIN" "18 " "Warning:
Following * pins have nothing, GND, or VCC driving datain port -- changes to
this connectivity may change fitting results" { { "Info"
"IFIOMGR_BIDIR_OR_OUTPUT_WITH_TRIVIAL_DATAIN_SUB" "TXSYNC_B GND " "Info: Pin
TXSYNC_B has GND driving its datain port" { } { { "usrp_radar_mono.v" "" {
Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 44 -1 0 }
} { "c:/altera/71sp1/quartus/bin/Assignment Editor.qase" "" { Assignment
"c:/altera/71sp1/quartus/bin/Assignment Editor.qase" 1 { { 0 "TXSYNC_B" } } } }
{ "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan
"c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { TXSYNC_B }
"NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" {
Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" {
TXSYNC_B } "NODE_NAME" } } } 0 0 "Pin %1!s! has %2!s! driving its datain port"
1 0 "" 0} } { } 0 0 "Following %1!d! pins have nothing, GND, or VCC driving
datain port -- changes to this connectivity may change fitting results" 0 0 ""
0}
{ "Warning" "WFIOMGR_BIDIR_OR_OUTPUT_WITH_TRIVIAL_DATAIN" "18 " "Warning:
Following * pins have nothing, GND, or VCC driving datain port -- changes to
this connectivity may change fitting results" { { "Info"
"IFIOMGR_BIDIR_OR_OUTPUT_WITH_TRIVIAL_DATAIN_SUB" "usbrdy\[0\] GND " "Info: Pin
usbrdy\[0\] has GND driving its datain port" { } { { "usrp_radar_mono.v" "" {
Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 49 -1 0 }
} { "c:/altera/71sp1/quartus/bin/Assignment Editor.qase" "" { Assignment
"c:/altera/71sp1/quartus/bin/Assignment Editor.qase" 1 { { 0 "usbrdy\[0\]" } }
} } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan
"c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { usbrdy[0] }
"NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" {
Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" {
usbrdy[0] } "NODE_NAME" } } } 0 0 "Pin %1!s! has %2!s! driving its datain
port" 1 0 "" 0} } { } 0 0 "Following %1!d! pins have nothing, GND, or VCC
driving datain port -- changes to this connectivity may change fitting results"
0 0 "" 0}
+{ "Warning" "WSGN_WIDTH_MISMATCH_OUTPUT_PORT" "out sr_ampl 16 32 " "Warning:
Port \"out\" on the entity instantiation of \"sr_ampl\" is connected to a
signal of width 16. The formal width of the signal in the module is 32. Extra
bits will be left dangling without any fanout logic." { } { {
"../lib/radar_control.v" "sr_ampl" { Text
"H:/gnuradio/radar/gr-radar-mono/src/fpga/lib/radar_control.v" 69 0 0 } } } 0
0 "Port \"%1!s!\" on the entity instantiation of \"%2!s!\" is connected to a
signal of width %3!d!. The formal width of the signal in the module is %4!d!.
Extra bits will be left dangling without any fanout logic." 1 0 "" 0}
+{ "Warning" "WSGN_WIDTH_MISMATCH_OUTPUT_PORT" "out sr_tlook 16 32 " "Warning:
Port \"out\" on the entity instantiation of \"sr_tlook\" is connected to a
signal of width 16. The formal width of the signal in the module is 32. Extra
bits will be left dangling without any fanout logic." { } { {
"../lib/radar_control.v" "sr_tlook" { Text
"H:/gnuradio/radar/gr-radar-mono/src/fpga/lib/radar_control.v" 63 0 0 } } } 0
0 "Port \"%1!s!\" on the entity instantiation of \"%2!s!\" is connected to a
signal of width %3!d!. The formal width of the signal in the module is %4!d!.
Extra bits will be left dangling without any fanout logic." 1 0 "" 0}
+{ "Warning" "WSGN_WIDTH_MISMATCH_OUTPUT_PORT" "out sr_tsw 16 32 " "Warning:
Port \"out\" on the entity instantiation of \"sr_tsw\" is connected to a signal
of width 16. The formal width of the signal in the module is 32. Extra bits
will be left dangling without any fanout logic." { } { {
"../lib/radar_control.v" "sr_tsw" { Text
"H:/gnuradio/radar/gr-radar-mono/src/fpga/lib/radar_control.v" 60 0 0 } } } 0
0 "Port \"%1!s!\" on the entity instantiation of \"%2!s!\" is connected to a
signal of width %3!d!. The formal width of the signal in the module is %4!d!.
Extra bits will be left dangling without any fanout logic." 1 0 "" 0}
+{ "Warning" "WSGN_WIDTH_MISMATCH_OUTPUT_PORT" "out sr_ton 16 32 " "Warning:
Port \"out\" on the entity instantiation of \"sr_ton\" is connected to a signal
of width 16. The formal width of the signal in the module is 32. Extra bits
will be left dangling without any fanout logic." { } { {
"../lib/radar_control.v" "sr_ton" { Text
"H:/gnuradio/radar/gr-radar-mono/src/fpga/lib/radar_control.v" 57 0 0 } } } 0
0 "Port \"%1!s!\" on the entity instantiation of \"%2!s!\" is connected to a
signal of width %3!d!. The formal width of the signal in the module is %4!d!.
Extra bits will be left dangling without any fanout logic." 1 0 "" 0}
+{ "Warning" "WSGN_WIDTH_MISMATCH_OUTPUT_PORT" "out sr_mode 6 32 " "Warning:
Port \"out\" on the entity instantiation of \"sr_mode\" is connected to a
signal of width 6. The formal width of the signal in the module is 32. Extra
bits will be left dangling without any fanout logic." { } { {
"../lib/radar_control.v" "sr_mode" { Text
"H:/gnuradio/radar/gr-radar-mono/src/fpga/lib/radar_control.v" 54 0 0 } } } 0
0 "Port \"%1!s!\" on the entity instantiation of \"%2!s!\" is connected to a
signal of width %3!d!. The formal width of the signal in the module is %4!d!.
Extra bits will be left dangling without any fanout logic." 1 0 "" 0}
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/python/radar_mono.py
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/python/radar_mono.py
2007-07-17 17:48:00 UTC (rev 6002)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/python/radar_mono.py
2007-07-17 21:40:32 UTC (rev 6003)
@@ -30,17 +30,15 @@
#-----------------------------------------------------------------------
FR_RADAR_MODE = usrp.FR_USER_0 # Operational mode
bmFR_RADAR_MODE_RESET = 1 << 0 # bit 0: active high reset
-bmFR_RADAR_MODE_TX = 1 << 1 # bit 1: enable transmitter
-#bmFR_RADAR_MODE_RX = 1 << 2 # bit 2: enable receiver
-#bmFR_RADAR_MODE_LP = 1 << 3 # bit 3: enable digital loopback
-#bmFR_RADAR_MODE_DR = 1 << 4 # bit 4: enable on-board deramping
-#bmFR_RADAR_MODE_MD = 1 << 5 # bit 5: enable echo metadata
-#bmFR_RADAR_MODE_CHIRPS = 3 << 6 # bit 6,7: number of chirp center
frequencies
+#bmFR_RADAR_MODE_LP = 1 << 1 # bit 1: enable digital loopback
+#bmFR_RADAR_MODE_DR = 1 << 2 # bit 2: enable on-board deramping
+#bmFR_RADAR_MODE_MD = 1 << 3 # bit 3: enable echo metadata
+#bmFR_RADAR_MODE_CHIRPS = 3 << 4 # bit 4,5: number of chirp center
frequencies
-#FR_RADAR_TON = usrp.FR_USER_1 # 16-bit transmitter on time in clocks
-#FR_RADAR_TSW = usrp.FR_USER_2 # 16-bit transmitter switch time in
clocks
-#FR_RADAR_TLOOK = usrp.FR_USER_3 # 16-bit receiver look time in clocks
-#FR_RADAR_TIDLE = usrp.FR_USER_4 # 32-bit inter-pulse idle time
+FR_RADAR_TON = usrp.FR_USER_1 # 16-bit transmitter on time in clocks
+FR_RADAR_TSW = usrp.FR_USER_2 # 16-bit transmitter switch time in
clocks
+FR_RADAR_TLOOK = usrp.FR_USER_3 # 16-bit receiver look time in clocks
+FR_RADAR_TIDLE = usrp.FR_USER_4 # 32-bit inter-pulse idle time
FR_RADAR_AMPL = usrp.FR_USER_5 # 16-bit pulse amplitude (2s
complement) into CORDIC
#FR_RADAR_FSTART = usrp.FR_USER_6 # 32-bit FTW for chirp start frequency
#FR_RADAR_FINCR = usrp.FR_USER_7 # 32-bit FTW increment per transmit
clock
@@ -50,17 +48,17 @@
# Temporarily use this for transmitter frequency calibration
FR_RADAR_FREQ1N = usrp.FR_USER_8 # 24-bit N register for chirp #1
-FR_RADAR_FREQ1R = usrp.FR_USER_9 # 24-bit R register for chirp #1
-FR_RADAR_FREQ1C = usrp.FR_USER_10 # 24-bit control register for chirp #1
-FR_RADAR_FREQ2N = usrp.FR_USER_11 # 24-bit N register for chirp #2
-FR_RADAR_FREQ2R = usrp.FR_USER_12 # 24-bit R register for chirp #2
-FR_RADAR_FREQ2C = usrp.FR_USER_13 # 24-bit control register for chirp #2
-FR_RADAR_FREQ3N = usrp.FR_USER_14 # 24-bit N register for chirp #3
-FR_RADAR_FREQ3R = usrp.FR_USER_15 # 24-bit R register for chirp #3
-FR_RADAR_FREQ3C = usrp.FR_USER_16 # 24-bit control register for chirp #3
-FR_RADAR_FREQ4N = usrp.FR_USER_17 # 24-bit N register for chirp #4
-FR_RADAR_FREQ4R = usrp.FR_USER_18 # 24-bit R register for chirp #4
-FR_RADAR_FREQ4C = usrp.FR_USER_19 # 24-bit control register for chirp #4
+#FR_RADAR_FREQ1R = usrp.FR_USER_9 # 24-bit R register for chirp #1
+#FR_RADAR_FREQ1C = usrp.FR_USER_10 # 24-bit control register for chirp #1
+#FR_RADAR_FREQ2N = usrp.FR_USER_11 # 24-bit N register for chirp #2
+#FR_RADAR_FREQ2R = usrp.FR_USER_12 # 24-bit R register for chirp #2
+#FR_RADAR_FREQ2C = usrp.FR_USER_13 # 24-bit control register for chirp #2
+#FR_RADAR_FREQ3N = usrp.FR_USER_14 # 24-bit N register for chirp #3
+#FR_RADAR_FREQ3R = usrp.FR_USER_15 # 24-bit R register for chirp #3
+#FR_RADAR_FREQ3C = usrp.FR_USER_16 # 24-bit control register for chirp #3
+#FR_RADAR_FREQ4N = usrp.FR_USER_17 # 24-bit N register for chirp #4
+#FR_RADAR_FREQ4R = usrp.FR_USER_18 # 24-bit R register for chirp #4
+#FR_RADAR_FREQ4C = usrp.FR_USER_19 # 24-bit control register for chirp #4
#-----------------------------------------------------------------------
# Transmitter object. Uses usrp_sink, but only for a handle to the
@@ -74,9 +72,45 @@
self._u = usrp.sink_s(fpga_filename='usrp_radar_mono.rbf')
self._subdev_spec = (0,0); # FPGA code only implements side A
self._subdev = usrp.selected_subdev(self._u, self._subdev_spec)
+ self._ton_ticks = 0
+ self._tsw_ticks = 0
+ self._tlook_ticks = 0
+ self._tidle_ticks = 0
+
if self._verbose:
print "Using", self._subdev.name(), "for radar transmitter."
+ def set_ton(self, ton):
+ self._ton_ticks = 2*(int(ton*64e6)/2)-1 # Even number, then subtract 1
+ if self._verbose:
+ print "Setting pulse on time to", ton, " sec
("+`self._ton_ticks+1`+" ticks)"
+ self._u._write_fpga_reg(FR_RADAR_TON, self._ton_ticks)
+
+ def set_tsw(self, tsw):
+ self._tsw_ticks = 2*(int(tsw*64e6)/2)-1 # Even number, then subtract 1
+ if self._verbose:
+ print "Setting pulse switching time to", tsw, " sec
("+`self._tsw_ticks+1`+" ticks)"
+ self._u._write_fpga_reg(FR_RADAR_TSW, self._tsw_ticks)
+
+ def set_tlook(self, tlook):
+ self._tlook_ticks = 2*(int(tlook*64e6)/2)-1 # Even number, then
subtract 1
+ if self._verbose:
+ print "Setting receiver look time to", tlook, " sec
("+`self._tlook_ticks+1`+" ticks)"
+ self._u._write_fpga_reg(FR_RADAR_TLOOK, self._tlook_ticks)
+
+ def set_prf(self, prf):
+ period = 2*int(32e6/prf)
+ self._tidle_ticks =
period-(self._ton_ticks+self._tsw_ticks+self._tlook_ticks+3)-1
+ if self._verbose:
+ print "Setting PRF to", prf, "Hz ("+`self._tidle_ticks+1`+" ticks
idle time)"
+ self._u._write_fpga_reg(FR_RADAR_TIDLE, self._tidle_ticks)
+
+ def set_amplitude(self, ampl):
+ self._amplitude = int(ampl*9946/100.0) # CORDIC gain correction
+ if self._debug:
+ print "Writing amplitude register with:", hex(self._amplitude)
+ self._u._write_fpga_reg(FR_RADAR_AMPL, self._amplitude)
+
def tune(self, center_freq, waveform_freq):
self._center_freq = center_freq
self._waveform_freq = waveform_freq
@@ -89,12 +123,6 @@
raise RuntimeError("Failed to set transmitter frequency.")
self._u._write_fpga_reg(FR_RADAR_FREQ1N, self._ftw)
- def set_amplitude(self, ampl):
- self._amplitude = int(ampl*9946/100.0) # CORDIC gain correction
- if self._debug:
- print "Writing amplitude register with:", hex(self._amplitude)
- self._u._write_fpga_reg(FR_RADAR_AMPL, self._amplitude)
-
def start(self):
self._u.start()
@@ -181,48 +209,26 @@
self._debug = debug
self._mode = 0
- self._transmitting = False
self._trans = radar_tx(verbose=self._verbose, debug=self._debug)
self.set_reset(True)
- def set_amplitude(self, ampl):
- self._trans.set_amplitude(ampl)
-
- def tune(self, center_freq, waveform_freq):
- self._trans.tune(center_freq, waveform_freq)
-
def _write_mode(self):
if self._debug:
print "Writing mode register with:", hex(self._mode)
self._trans._u._write_fpga_reg(FR_RADAR_MODE, self._mode)
- def enable_tx(self, value):
+ def set_reset(self, value):
if value:
- if self._verbose:
- print "Enabling transmitter."
- self._mode |= bmFR_RADAR_MODE_TX
- self._transmitting = True
+ if self._debug:
+ print "Asserting reset."
+ self._mode |= bmFR_RADAR_MODE_RESET
else:
- if self._verbose:
- print "Disabling transmitter."
- self._mode &= ~bmFR_RADAR_MODE_TX
- self._transmitting = False
+ if self._debug:
+ print "De-asserting reset."
+ self._mode &= ~bmFR_RADAR_MODE_RESET
self._write_mode()
-
+
"""
- def enable_rx(self, value):
- if value:
- self._mode |= bmFR_RADAR_MODE_RX
- self._write_mode()
- self._rcvr.start()
- self._receiving = True
- else:
- self._rcvr.stop()
- self._mode &= ~bmFR_RADAR_MODE_RX
- self._write_mode()
- self._receiving = False
- """
- """
def set_loopback(self, value):
if value:
if self._verbose:
@@ -235,27 +241,31 @@
self._write_mode()
"""
- def set_reset(self, value):
- if value:
- if self._debug:
- print "Asserting reset."
- self._mode |= bmFR_RADAR_MODE_RESET
- else:
- if self._debug:
- print "De-asserting reset."
- self._mode &= ~bmFR_RADAR_MODE_RESET
- self._write_mode()
+ def set_ton(self, ton):
+ self._trans.set_ton(ton)
+
+ def set_tsw(self, tsw):
+ self._trans.set_tsw(tsw)
+
+ def set_tlook(self, tlook):
+ self._trans.set_tlook(tlook)
+
+ def set_prf(self, prf):
+ self._trans.set_prf(prf)
+ def set_amplitude(self, ampl):
+ self._trans.set_amplitude(ampl)
+
+ def tune(self, center_freq, waveform_freq):
+ self._trans.tune(center_freq, waveform_freq)
+
def start(self):
self._trans.start()
- self.enable_tx(True)
self.set_reset(False)
def stop(self):
self.set_reset(True)
self._trans.stop()
- if self._transmitting:
- self.enable_tx(False)
def __del__(self):
self.stop()
Modified:
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/python/usrp_radar_mono.py
===================================================================
---
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/python/usrp_radar_mono.py
2007-07-17 17:48:00 UTC (rev 6002)
+++
gnuradio/branches/developers/jcorgan/radar/gr-radar-mono/src/python/usrp_radar_mono.py
2007-07-17 21:40:32 UTC (rev 6003)
@@ -34,10 +34,18 @@
parser.add_option("-f", "--frequency", type="eng_float", default=0.0,
help="set transmitter center frequency to FREQ in Hz,
default is %default", metavar="FREQ")
# Temporary for debugging transmitter frequency response
- parser.add_option("-w", "--waveform-frequency", type="eng_float",
default=1e3,
+ parser.add_option("-w", "--waveform-frequency", type="eng_float",
default=1e6,
help="set waveform offset frequency to FREQ in Hz,
default is %default", metavar="FREQ")
parser.add_option("-a", "--amplitude", type="eng_float", default=100,
help="set waveform amplitude in % full scale, default is
%default,")
+ parser.add_option("", "--ton", type="eng_float", default=5e-6,
+ help="set pulse on period in seconds, default is
%default,")
+ parser.add_option("", "--tsw", type="eng_float", default=406.25e-9,
+ help="set transmitter switching period in seconds,
default is %default,")
+ parser.add_option("", "--tlook", type="eng_float", default=5e-6,
+ help="set receiver look time in seconds, default is
%default,")
+ parser.add_option("", "--prf", type="eng_float", default=10e3,
+ help="set pulse repetition frequency in Hz, default is
%default,")
parser.add_option("-v", "--verbose", action="store_true", default=False,
help="enable verbose output, default is disabled")
parser.add_option("-D", "--debug", action="store_true", default=False,
@@ -69,8 +77,13 @@
msgq = gr.msg_queue()
s = radar(msgq=msgq,verbose=options.verbose,debug=options.debug)
+ s.set_ton(options.ton)
+ s.set_tsw(options.tsw)
+ s.set_tlook(options.tlook)
+ s.set_prf(options.prf)
s.set_amplitude(options.amplitude)
s.tune(options.frequency, options.waveform_frequency)
+
s.start()
"""
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r6003 - in gnuradio/branches/developers/jcorgan/radar/gr-radar-mono: . doc src/fpga/lib src/fpga/tb src/fpga/top src/python,
jcorgan <=