From 60d88c4aef7c5c1851028046eb67fdfe162c82c4 Mon Sep 17 00:00:00 2001 From: jcorgan Date: Tue, 4 Sep 2007 03:21:23 +0000 Subject: [PATCH] Merged r6045:6116 from jcorgan/radar into trunk. Updates gr-radar-mono with work-in-progress. git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@6283 221aa14e-8319-0410-a670-987f0aec2ac5 --- gr-radar-mono/doc/registers.ods | Bin 14448 -> 14438 bytes gr-radar-mono/src/fpga/lib/Makefile.am | 1 + gr-radar-mono/src/fpga/lib/fifo32_4k.v | 161 ++++++++++++++++++ gr-radar-mono/src/fpga/lib/radar.v | 17 +- gr-radar-mono/src/fpga/lib/radar_config.vh | 9 +- gr-radar-mono/src/fpga/lib/radar_control.v | 23 ++- gr-radar-mono/src/fpga/lib/radar_rx.v | 101 ++++++++--- gr-radar-mono/src/fpga/tb/radar_tb.sav | 10 +- gr-radar-mono/src/fpga/tb/radar_tb.v | 8 +- .../src/fpga/top/usrp_radar_mono.qsf | 69 ++++---- .../src/fpga/top/usrp_radar_mono.rbf | Bin 114012 -> 122679 bytes .../src/fpga/top/usrp_radar_mono.srf | 107 ++---------- gr-radar-mono/src/fpga/top/usrp_radar_mono.v | 31 ++-- gr-radar-mono/src/python/radar_mono.py | 154 +++++++++-------- gr-radar-mono/src/python/usrp_radar_mono.py | 34 ++-- 15 files changed, 457 insertions(+), 268 deletions(-) create mode 100644 gr-radar-mono/src/fpga/lib/fifo32_4k.v diff --git a/gr-radar-mono/doc/registers.ods b/gr-radar-mono/doc/registers.ods index 4213f8a5901ef465cea1c2fd1bfa8d51650d6b4e..7bafe2c58398c45d2f96c6688e5e26a835ba4720 100644 GIT binary patch delta 4728 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 Cac;l> delta 4590 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 literal 114012 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
4V)Al72fgnzYv#wqe05;i?BjBM7k4c0 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

Gzs=NCVYne#*+>T+22 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 NaPfzS-#aGve*hv}0Hpu` diff --git a/gr-radar-mono/src/fpga/top/usrp_radar_mono.srf b/gr-radar-mono/src/fpga/top/usrp_radar_mono.srf index ebf4bce8..e5645322 100644 --- a/gr-radar-mono/src/fpga/top/usrp_radar_mono.srf +++ b/gr-radar-mono/src/fpga/top/usrp_radar_mono.srf @@ -1,8 +1,5 @@ { "Warning" "WSGN_SEARCH_FILE" "../../../../../trunk/usrp/fpga/megacells/bustri.v 1 1 " "Warning: Using design file ../../../../../trunk/usrp/fpga/megacells/bustri.v, which is not specified as a design file for the current project, but contains definitions for 1 design units and 1 entities in project" { } { } 0 0 "Using design file %1!s!, which is not specified as a design file for the current project, but contains definitions for %2!d! design units and %3!d! entities in project" 1 0 "" 0} { "Warning" "WSGN_SEARCH_FILE" "../../../../../trunk/usrp/fpga/megacells/fifo_4k.v 10 10 " "Warning: Using design file ../../../../../trunk/usrp/fpga/megacells/fifo_4k.v, which is not specified as a design file for the current project, but contains definitions for 10 design units and 10 entities in project" { } { } 0 0 "Using design file %1!s!, which is not specified as a design file for the current project, but contains definitions for %2!d! design units and %3!d! entities in project" 1 0 "" 0} -{ "Warning" "WVRFX_L2_HDL_OBJECT_ASSIGNED_NOT_READ" "write_done serial_io.v(48) " "Warning (10036): Verilog HDL or VHDL warning at serial_io.v(48): object \"write_done\" assigned a value but never read" { } { { "../../../../usrp/fpga/sdr_lib/serial_io.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/serial_io.v" 48 0 0 } } } 0 10036 "Verilog HDL or VHDL warning at %2!s!: object \"%1!s!\" assigned a value but never read" 1 0 "" 0} -{ "Warning" "WVRFX_L2_VERI_EXPRESSION_TRUNCATED_TO_FIT" "32 12 atr_delay.v(58) " "Warning (10230): Verilog HDL assignment warning at atr_delay.v(58): truncated value with size 32 to match size of target (12)" { } { { "../../../../usrp/fpga/sdr_lib/atr_delay.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/atr_delay.v" 58 0 0 } } } 0 10230 "Verilog HDL assignment warning at %3!s!: truncated value with size %1!d! to match size of target (%2!d!)" 1 0 "" 0} -{ "Warning" "WVRFX_L2_VERI_EXPRESSION_TRUNCATED_TO_FIT" "32 12 atr_delay.v(71) " "Warning (10230): Verilog HDL assignment warning at atr_delay.v(71): truncated value with size 32 to match size of target (12)" { } { { "../../../../usrp/fpga/sdr_lib/atr_delay.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/atr_delay.v" 71 0 0 } } } 0 10230 "Verilog HDL assignment warning at %3!s!: truncated value with size %1!d! to match size of target (%2!d!)" 1 0 "" 0} { "Warning" "WSGN_WIDTH_MISMATCH_OUTPUT_PORT" "out sr_atr_rx_delay 12 32 " "Warning: Port \"out\" on the entity instantiation of \"sr_atr_rx_delay\" is connected to a signal of width 12. The formal width of the signal in the module is 32. Extra bits will be left dangling without any fanout logic." { } { { "../../../../usrp/fpga/sdr_lib/master_control.v" "sr_atr_rx_delay" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/master_control.v" 138 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_atr_tx_delay 12 32 " "Warning: Port \"out\" on the entity instantiation of \"sr_atr_tx_delay\" is connected to a signal of width 12. The formal width of the signal in the module is 32. Extra bits will be left dangling without any fanout logic." { } { { "../../../../usrp/fpga/sdr_lib/master_control.v" "sr_atr_tx_delay" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/master_control.v" 137 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_atr_rxval_3 16 32 " "Warning: Port \"out\" on the entity instantiation of \"sr_atr_rxval_3\" 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." { } { { "../../../../usrp/fpga/sdr_lib/master_control.v" "sr_atr_rxval_3" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/master_control.v" 134 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} @@ -29,7 +26,6 @@ { "Warning" "WSGN_WIDTH_MISMATCH_OUTPUT_PORT" "out sr_decim 8 32 " "Warning: Port \"out\" on the entity instantiation of \"sr_decim\" is connected to a signal of width 8. The formal width of the signal in the module is 32. Extra bits will be left dangling without any fanout logic." { } { { "../../../../usrp/fpga/sdr_lib/master_control.v" "sr_decim" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/master_control.v" 51 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_interp 8 32 " "Warning: Port \"out\" on the entity instantiation of \"sr_interp\" is connected to a signal of width 8. The formal width of the signal in the module is 32. Extra bits will be left dangling without any fanout logic." { } { { "../../../../usrp/fpga/sdr_lib/master_control.v" "sr_interp" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/master_control.v" 50 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_mstr_ctrl 8 32 " "Warning: Port \"out\" on the entity instantiation of \"sr_mstr_ctrl\" is connected to a signal of width 8. The formal width of the signal in the module is 32. Extra bits will be left dangling without any fanout logic." { } { { "../../../../usrp/fpga/sdr_lib/master_control.v" "sr_mstr_ctrl" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/master_control.v" 42 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_INPUT_PORT_TOO_NARROW" "rate rx_strobe_gen 32 8 " "Warning: Port \"rate\" on the entity instantiation of \"rx_strobe_gen\" is connected to a signal of width 32. The formal width of the signal in the module is 8. Extra bits will be ignored." { } { { "../lib/radar_rx.v" "rx_strobe_gen" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/lib/radar_rx.v" 62 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 ignored." 1 0 "" 0} { "Warning" "WSGN_WIDTH_MISMATCH_INPUT_PORT_TOO_NARROW" "ordered port 6 cordic_stage11 16 15 " "Warning: Port \"ordered port 6\" on the entity instantiation of \"cordic_stage11\" is connected to a signal of width 16. The formal width of the signal in the module is 15. Extra bits will be ignored." { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "cordic_stage11" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 100 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 ignored." 1 0 "" 0} { "Warning" "WSGN_WIDTH_MISMATCH_INPUT_PORT_TOO_NARROW" "ordered port 6 cordic_stage10 16 15 " "Warning: Port \"ordered port 6\" on the entity instantiation of \"cordic_stage10\" is connected to a signal of width 16. The formal width of the signal in the module is 15. Extra bits will be ignored." { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "cordic_stage10" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 99 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 ignored." 1 0 "" 0} { "Warning" "WSGN_WIDTH_MISMATCH_INPUT_PORT_TOO_NARROW" "ordered port 6 cordic_stage9 16 15 " "Warning: Port \"ordered port 6\" on the entity instantiation of \"cordic_stage9\" is connected to a signal of width 16. The formal width of the signal in the module is 15. Extra bits will be ignored." { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "cordic_stage9" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 98 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 ignored." 1 0 "" 0} @@ -42,99 +38,28 @@ { "Warning" "WSGN_WIDTH_MISMATCH_INPUT_PORT_TOO_NARROW" "ordered port 6 cordic_stage2 16 15 " "Warning: Port \"ordered port 6\" on the entity instantiation of \"cordic_stage2\" is connected to a signal of width 16. The formal width of the signal in the module is 15. Extra bits will be ignored." { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "cordic_stage2" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 91 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 ignored." 1 0 "" 0} { "Warning" "WSGN_WIDTH_MISMATCH_INPUT_PORT_TOO_NARROW" "ordered port 6 cordic_stage1 16 15 " "Warning: Port \"ordered port 6\" on the entity instantiation of \"cordic_stage1\" is connected to a signal of width 16. The formal width of the signal in the module is 15. Extra bits will be ignored." { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "cordic_stage1" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 90 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 ignored." 1 0 "" 0} { "Warning" "WSGN_WIDTH_MISMATCH_INPUT_PORT_TOO_NARROW" "ordered port 6 cordic_stage0 16 15 " "Warning: Port \"ordered port 6\" on the entity instantiation of \"cordic_stage0\" is connected to a signal of width 16. The formal width of the signal in the module is 15. Extra bits will be ignored." { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "cordic_stage0" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 89 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 ignored." 1 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" 59 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 8 32 " "Warning: Port \"out\" on the entity instantiation of \"sr_mode\" is connected to a signal of width 8. 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" 56 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_TRI_BUS_MISSING_SOURCE_TOP" "" "Warning: The following nets are missing source, defaulting to GND" { } { } 0 0 "The following nets are missing source, defaulting to GND" 1 0 "" 0} -{ "Warning" "WSGN_TRI_BUS_MISSING_SOURCE_TOP" "" "Warning: The following nets are missing source, defaulting to GND" { { "Warning" "WSGN_TRI_BUS_MISSING_SOURCE_SUB" "radar:radar_mono\|radar_control:controller\|rst_i " "Warning: Net \"radar:radar_mono\|radar_control:controller\|rst_i\"" { } { { "../lib/radar_control.v" "rst_i" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/lib/radar_control.v" 55 -1 0 } } } 0 0 "Net \"%1!s!\"" 1 0 "" 0} } { } 0 0 "The following nets are missing source, defaulting to GND" 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" 81 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" 75 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" 72 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" 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_rxformat 11 32 " "Warning: Port \"out\" on the entity instantiation of \"sr_rxformat\" is connected to a signal of width 11. The formal width of the signal in the module is 32. Extra bits will be left dangling without any fanout logic." { } { { "../../../../usrp/fpga/sdr_lib/rx_buffer.v" "sr_rxformat" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/rx_buffer.v" 66 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_rxmux 20 32 " "Warning: Port \"out\" on the entity instantiation of \"sr_rxmux\" is connected to a signal of width 20. The formal width of the signal in the module is 32. Extra bits will be left dangling without any fanout logic." { } { { "../../../../usrp/fpga/sdr_lib/adc_interface.v" "sr_rxmux" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/adc_interface.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} { "Warning" "WSGN_WIDTH_MISMATCH_OUTPUT_PORT" "out sr_dco_en 4 32 " "Warning: Port \"out\" on the entity instantiation of \"sr_dco_en\" is connected to a signal of width 4. The formal width of the signal in the module is 32. Extra bits will be left dangling without any fanout logic." { } { { "../../../../usrp/fpga/sdr_lib/adc_interface.v" "sr_dco_en" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/adc_interface.v" 32 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" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[0\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[0\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} { "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[1\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[1\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[2\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[2\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[3\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[3\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[4\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[4\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[5\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[5\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[6\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[6\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[7\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[7\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[8\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[8\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[9\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[9\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[10\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[10\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[11\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[11\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[12\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[12\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[13\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[13\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[14\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[14\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[15\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[15\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[16\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[16\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} -{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[17\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[17\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} { "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "master_control:master_control\|atr_delay:atr_delay\|state.0001 data_in GND " "Warning: Reduced register \"master_control:master_control\|atr_delay:atr_delay\|state.0001\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/atr_delay.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/atr_delay.v" 31 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} { "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "MYSTERY_SIGNAL GND " "Warning: Pin \"MYSTERY_SIGNAL\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 24 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} { "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "FX2_3 GND " "Warning: Pin \"FX2_3\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 33 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[0\] GND " "Warning: Pin \"tx_b\[0\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[1\] GND " "Warning: Pin \"tx_b\[1\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[2\] GND " "Warning: Pin \"tx_b\[2\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[3\] GND " "Warning: Pin \"tx_b\[3\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[4\] GND " "Warning: Pin \"tx_b\[4\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[5\] GND " "Warning: Pin \"tx_b\[5\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[6\] GND " "Warning: Pin \"tx_b\[6\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[7\] GND " "Warning: Pin \"tx_b\[7\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[8\] GND " "Warning: Pin \"tx_b\[8\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[9\] GND " "Warning: Pin \"tx_b\[9\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[10\] GND " "Warning: Pin \"tx_b\[10\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[11\] GND " "Warning: Pin \"tx_b\[11\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[12\] GND " "Warning: Pin \"tx_b\[12\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "tx_b\[13\] GND " "Warning: Pin \"tx_b\[13\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 41 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "TXSYNC_B GND " "Warning: Pin \"TXSYNC_B\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 44 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} { "Warning" "WOPT_MLS_STUCK_PIN_HDR" "" "Warning: Output pins are stuck at VCC or GND" { { "Warning" "WOPT_MLS_STUCK_PIN" "usbrdy\[0\] GND " "Warning: Pin \"usbrdy\[0\]\" stuck at GND" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 49 -1 0 } } } 0 0 "Pin \"%1!s!\" stuck at %2!s!" 1 0 "" 0} } { } 0 0 "Output pins are stuck at VCC or GND" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_a\[0\] " "Warning: No output dependent on input pin \"rx_b_a\[0\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 36 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_a\[1\] " "Warning: No output dependent on input pin \"rx_b_a\[1\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 36 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_a\[2\] " "Warning: No output dependent on input pin \"rx_b_a\[2\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 36 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_a\[3\] " "Warning: No output dependent on input pin \"rx_b_a\[3\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 36 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_a\[4\] " "Warning: No output dependent on input pin \"rx_b_a\[4\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 36 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_a\[5\] " "Warning: No output dependent on input pin \"rx_b_a\[5\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 36 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_a\[6\] " "Warning: No output dependent on input pin \"rx_b_a\[6\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 36 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_a\[7\] " "Warning: No output dependent on input pin \"rx_b_a\[7\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 36 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_a\[8\] " "Warning: No output dependent on input pin \"rx_b_a\[8\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 36 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_a\[9\] " "Warning: No output dependent on input pin \"rx_b_a\[9\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 36 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_a\[10\] " "Warning: No output dependent on input pin \"rx_b_a\[10\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 36 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_a\[11\] " "Warning: No output dependent on input pin \"rx_b_a\[11\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 36 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_b\[0\] " "Warning: No output dependent on input pin \"rx_b_b\[0\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 38 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_b\[1\] " "Warning: No output dependent on input pin \"rx_b_b\[1\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 38 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_b\[2\] " "Warning: No output dependent on input pin \"rx_b_b\[2\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 38 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_b\[3\] " "Warning: No output dependent on input pin \"rx_b_b\[3\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 38 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_b\[4\] " "Warning: No output dependent on input pin \"rx_b_b\[4\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 38 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_b\[5\] " "Warning: No output dependent on input pin \"rx_b_b\[5\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 38 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_b\[6\] " "Warning: No output dependent on input pin \"rx_b_b\[6\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 38 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_b\[7\] " "Warning: No output dependent on input pin \"rx_b_b\[7\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 38 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_b\[8\] " "Warning: No output dependent on input pin \"rx_b_b\[8\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 38 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_b\[9\] " "Warning: No output dependent on input pin \"rx_b_b\[9\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 38 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_b\[10\] " "Warning: No output dependent on input pin \"rx_b_b\[10\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 38 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} -{ "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "49 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "rx_b_b\[11\] " "Warning: No output dependent on input pin \"rx_b_b\[11\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 38 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 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" "MYSTERY_SIGNAL GND " "Info: Pin MYSTERY_SIGNAL has GND driving its datain port" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 24 -1 0 } } { "c:/altera/71sp1/quartus/bin/Assignment Editor.qase" "" { Assignment "c:/altera/71sp1/quartus/bin/Assignment Editor.qase" 1 { { 0 "MYSTERY_SIGNAL" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { MYSTERY_SIGNAL } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { MYSTERY_SIGNAL } "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" "FX2_3 GND " "Info: Pin FX2_3 has GND driving its datain port" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 33 -1 0 } } { "c:/altera/71sp1/quartus/bin/Assignment Editor.qase" "" { Assignment "c:/altera/71sp1/quartus/bin/Assignment Editor.qase" 1 { { 0 "FX2_3" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { FX2_3 } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { FX2_3 } "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" "tx_b\[0\] GND " "Info: Pin tx_b\[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" 41 -1 0 } } { "c:/altera/71sp1/quartus/bin/Assignment Editor.qase" "" { Assignment "c:/altera/71sp1/quartus/bin/Assignment Editor.qase" 1 { { 0 "tx_b\[0\]" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[0] } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[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" "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\[1\] GND " "Info: Pin tx_b\[1\] 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\[1\]" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[1] } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[1] } "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" "tx_b\[2\] GND " "Info: Pin tx_b\[2\] 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\[2\]" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[2] } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[2] } "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" "tx_b\[3\] GND " "Info: Pin tx_b\[3\] 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\[3\]" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[3] } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[3] } "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" "tx_b\[4\] GND " "Info: Pin tx_b\[4\] 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\[4\]" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[4] } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[4] } "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" "tx_b\[5\] GND " "Info: Pin tx_b\[5\] 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\[5\]" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[5] } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[5] } "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" "tx_b\[6\] GND " "Info: Pin tx_b\[6\] 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\[6\]" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[6] } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[6] } "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" "tx_b\[7\] GND " "Info: Pin tx_b\[7\] 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\[7\]" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[7] } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[7] } "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" "tx_b\[8\] GND " "Info: Pin tx_b\[8\] 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\[8\]" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[8] } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[8] } "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" "tx_b\[9\] GND " "Info: Pin tx_b\[9\] 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\[9\]" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[9] } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[9] } "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" "tx_b\[10\] GND " "Info: Pin tx_b\[10\] 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\[10\]" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[10] } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[10] } "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" "tx_b\[11\] GND " "Info: Pin tx_b\[11\] 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\[11\]" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[11] } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[11] } "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" "tx_b\[12\] GND " "Info: Pin tx_b\[12\] 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\[12\]" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[12] } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { tx_b[12] } "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" "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} -{ "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" 70 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" 64 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" 61 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" 58 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" 55 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" "WCUT_CUT_UNNECESSARY_INPUT_PIN_HDR" "1 " "Warning: Design contains * input pin(s) that do not drive logic" { { "Warning" "WCUT_CUT_UNNECESSARY_INPUT_PIN" "usbctl\[0\] " "Warning: No output dependent on input pin \"usbctl\[0\]\"" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 48 -1 0 } } } 0 0 "No output dependent on input pin \"%1!s!\"" 1 0 "" 0} } { } 0 0 "Design contains %1!d! input pin(s) that do not drive logic" 0 0 "" 0} +{ "Warning" "WFIOMGR_BIDIR_OR_OUTPUT_WITH_TRIVIAL_DATAIN" "3 " "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" "MYSTERY_SIGNAL GND " "Info: Pin MYSTERY_SIGNAL has GND driving its datain port" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 24 -1 0 } } { "c:/altera/71sp1/quartus/bin/Assignment Editor.qase" "" { Assignment "c:/altera/71sp1/quartus/bin/Assignment Editor.qase" 1 { { 0 "MYSTERY_SIGNAL" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { MYSTERY_SIGNAL } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { MYSTERY_SIGNAL } "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" "3 " "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" "FX2_3 GND " "Info: Pin FX2_3 has GND driving its datain port" { } { { "usrp_radar_mono.v" "" { Text "H:/gnuradio/radar/gr-radar-mono/src/fpga/top/usrp_radar_mono.v" 33 -1 0 } } { "c:/altera/71sp1/quartus/bin/Assignment Editor.qase" "" { Assignment "c:/altera/71sp1/quartus/bin/Assignment Editor.qase" 1 { { 0 "FX2_3" } } } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { FX2_3 } "NODE_NAME" } } { "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" { Floorplan "c:/altera/71sp1/quartus/bin/TimingClosureFloorplan.fld" "" "" { FX2_3 } "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" "3 " "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" 79 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" 73 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" 70 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" 67 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" "WVRFX_L2_VERI_EXPRESSION_TRUNCATED_TO_FIT" "32 12 atr_delay.v(58) " "Warning (10230): Verilog HDL assignment warning at atr_delay.v(58): truncated value with size 32 to match size of target (12)" { } { { "../../../../usrp/fpga/sdr_lib/atr_delay.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/atr_delay.v" 58 0 0 } } } 0 10230 "Verilog HDL assignment warning at %3!s!: truncated value with size %1!d! to match size of target (%2!d!)" 1 0 "" 0} +{ "Warning" "WVRFX_L2_VERI_EXPRESSION_TRUNCATED_TO_FIT" "32 12 atr_delay.v(71) " "Warning (10230): Verilog HDL assignment warning at atr_delay.v(71): truncated value with size 32 to match size of target (12)" { } { { "../../../../usrp/fpga/sdr_lib/atr_delay.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/atr_delay.v" 71 0 0 } } } 0 10230 "Verilog HDL assignment warning at %3!s!: truncated value with size %1!d! to match size of target (%2!d!)" 1 0 "" 0} +{ "Warning" "WVRFX_L2_HDL_OBJECT_ASSIGNED_NOT_READ" "write_done serial_io.v(48) " "Warning (10036): Verilog HDL or VHDL warning at serial_io.v(48): object \"write_done\" assigned a value but never read" { } { { "../../../../usrp/fpga/sdr_lib/serial_io.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/serial_io.v" 48 0 0 } } } 0 10036 "Verilog HDL or VHDL warning at %2!s!: object \"%1!s!\" assigned a value but never read" 1 0 "" 0} +{ "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" "radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[2\] data_in GND " "Warning: Reduced register \"radar:radar_mono\|radar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[2\]\" with stuck data_in port to stuck value GND" { } { { "../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text "H:/gnuradio/radar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } } } 0 0 "Reduced register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0 "" 0} diff --git a/gr-radar-mono/src/fpga/top/usrp_radar_mono.v b/gr-radar-mono/src/fpga/top/usrp_radar_mono.v index 891af235..f6f86293 100644 --- a/gr-radar-mono/src/fpga/top/usrp_radar_mono.v +++ b/gr-radar-mono/src/fpga/top/usrp_radar_mono.v @@ -95,28 +95,30 @@ module usrp_radar_mono //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Transmit Side + wire tx_side; wire [13:0] tx_i, tx_q; wire [13:0] tx_dac; + wire tx_sync; dac_interface dac(.clk_i(clk64),.rst_i(tx_dsp_reset),.ena_i(enable_tx), .strobe_i(tx_sample_strobe),.tx_i_i(tx_i),.tx_q_i(tx_q), - .tx_data_o(tx_dac),.tx_sync_o(TXSYNC_A)); + .tx_data_o(tx_dac),.tx_sync_o(tx_sync)); - assign tx_a = tx_dac; - - // Wedge DAC #2 at zero - assign TXSYNC_B = 1'b0; - assign tx_b = 14'b0; + // Route transmitted signal to side A or side B + assign tx_a = tx_side ? 14'b0 : tx_dac; + assign tx_b = tx_side ? tx_dac : 14'b0; + assign TXSYNC_A = tx_side ? 1'b0 : tx_sync; + assign TXSYNC_B = tx_side ? tx_sync : 1'b0; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Receive Side - wire rx_sample_strobe, rx_strobe; + wire rx_strobe; wire [15:0] rx_adc0_i, rx_adc0_q; wire [15:0] rx_buf_i, rx_buf_q; adc_interface adc_interface(.clock(clk64),.reset(rx_dsp_reset),.enable(enable_rx), .serial_addr(serial_addr),.serial_data(serial_data),.serial_strobe(serial_strobe), - .rx_a_a(rx_a_a),.rx_b_a(rx_b_a),.rx_a_b(),.rx_b_b(), + .rx_a_a(rx_a_a),.rx_b_a(rx_b_a),.rx_a_b(rx_a_b),.rx_b_b(rx_b_b), .rssi_0(),.rssi_1(),.rssi_2(),.rssi_3(), .ddc0_in_i(rx_adc0_i),.ddc0_in_q(rx_adc0_q), .ddc1_in_i(),.ddc1_in_q(), @@ -140,10 +142,9 @@ module usrp_radar_mono /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Top level application - radar radar_mono ( .clk_i(clk64),.saddr_i(serial_addr),.sdata_i(serial_data),.s_strobe_i(serial_strobe), - .tx_strobe_o(tx_sample_strobe),.tx_dac_i_o(tx_i),.tx_dac_q_o(tx_q), - .rx_strobe_i(rx_sample_strobe),.rx_adc_i_i(rx_adc0_i),.rx_adc_q_i(rx_adc0_q), + .tx_side_o(tx_side),.tx_strobe_o(tx_sample_strobe),.tx_dac_i_o(tx_i),.tx_dac_q_o(tx_q), + .rx_adc_i_i(rx_adc0_i),.rx_adc_q_i(rx_adc0_q), .rx_strobe_o(rx_strobe),.rx_ech_i_o(rx_buf_i),.rx_ech_q_o(rx_buf_q) ); @@ -152,9 +153,9 @@ module usrp_radar_mono wire [31:0] capabilities; assign capabilities[7] = 0; // `TX_CAP_HB; - assign capabilities[6:4] = 2; // `TX_CAP_NCHAN; + assign capabilities[6:4] = 1; // `TX_CAP_NCHAN; assign capabilities[3] = 0; // `RX_CAP_HB; - assign capabilities[2:0] = 2; // `RX_CAP_NCHAN; + assign capabilities[2:0] = 1; // `RX_CAP_NCHAN; serial_io serial_io ( .master_clk(clk64),.serial_clock(SCLK),.serial_data_in(SDI), @@ -172,8 +173,8 @@ module usrp_radar_mono .tx_dsp_reset(tx_dsp_reset),.rx_dsp_reset(rx_dsp_reset), .enable_tx(enable_tx),.enable_rx(enable_rx), .interp_rate(),.decim_rate(), - .tx_sample_strobe(),.strobe_interp(), // tx_sample_strobe now generated by radar transmitter module - .rx_sample_strobe(rx_sample_strobe),.strobe_decim(), + .tx_sample_strobe(),.strobe_interp(), + .rx_sample_strobe(),.strobe_decim(), .tx_empty(tx_empty), .debug_0(),.debug_1(), .debug_2(),.debug_3(), diff --git a/gr-radar-mono/src/python/radar_mono.py b/gr-radar-mono/src/python/radar_mono.py index b8be6a8e..50af17c0 100644 --- a/gr-radar-mono/src/python/radar_mono.py +++ b/gr-radar-mono/src/python/radar_mono.py @@ -30,10 +30,12 @@ n2s = eng_notation.num_to_str #----------------------------------------------------------------------- FR_RADAR_MODE = usrp.FR_USER_0 # Operational mode bmFR_RADAR_MODE_RESET = 1 << 0 # bit 0: active high reset -#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 +bmFR_RADAR_TXSIDE = 1 << 1 # bit 1: use TX side A or B +#bmFR_RADAR_MODE_LP = 1 << 2 # bit 2: enable digital loopback +#bmFR_RADAR_MODE_DR = 1 << 3 # bit 3: enable on-board deramping +#bmFR_RADAR_MODE_MD = 1 << 4 # bit 4: enable echo metadata +#bmFR_RADAR_MODE_CHIRPS = 3 << 5 # bit 5,6: number of chirp center frequencies +bmFR_RADAR_DEBUG = 1 << 7 # bit 7: enable debugging mode 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 @@ -46,28 +48,31 @@ FR_RADAR_FINCR = usrp.FR_USER_7 # 32-bit FTW increment per transmit clock # These are for phase II development #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_FREQ1C = usrp.FR_USER_10 # 24-bit C 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_FREQ2C = usrp.FR_USER_13 # 24-bit C 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_FREQ3C = usrp.FR_USER_16 # 24-bit C 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_FREQ4C = usrp.FR_USER_19 # 24-bit C register for chirp #4 #----------------------------------------------------------------------- # Transmitter object. Uses usrp_sink, but only for a handle to the # FPGA registers. #----------------------------------------------------------------------- class radar_tx: - def __init__(self, verbose=False, debug=False): + def __init__(self, subdev_spec=None, verbose=False, debug=False): + self._subdev_spec = subdev_spec self._verbose = verbose self._debug = debug - self._u = usrp.sink_s(fpga_filename='usrp_radar_mono.rbf') - self._subdev_spec = (0,0); # FPGA code only implements side A + + if self._subdev_spec == None: + self._subdev_spec = usrp.pick_tx_subdevice(self._u) + self._subdev = usrp.selected_subdev(self._u, self._subdev_spec) self._subdev.set_lo_offset(0.0) self._ton_ticks = 0 @@ -77,7 +82,7 @@ class radar_tx: 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: @@ -105,8 +110,6 @@ class radar_tx: 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 set_freq(self, center_freq, chirp_width): @@ -132,41 +135,61 @@ class radar_tx: def stop(self): self._subdev.set_enable(False) self._u.stop() + + def subdev_spec(self): + return self._subdev_spec + + def echo_length(self): + return self._tlook_ticks+1 + + def __del__(self): + del self._subdev # Avoid weak reference error #----------------------------------------------------------------------- # Receiver object. Uses usrp_source_c to receive echo records. -# NOT IMPLEMENTED YET #----------------------------------------------------------------------- -""" -class radar_rx: - def __init__(self,gain=None,msgq=None,loopback=False,verbose=False,debug=False): +class radar_rx(): + def __init__(self, gain=None, subdev_spec=None, msgq=None, length=None, + verbose=False, debug=False): self._gain = gain + self._subdev_spec = subdev_spec self._msgq = msgq - self._loopback = loopback + self._length = length self._verbose = verbose - self._debug = debug - + self._debug = debug + self._length_set = False + self._fg = gr.flow_graph() - self._u = usrp.source_c(fpga_filename='usrp_radar.rbf') - if not self._loopback: - self._subdev_spec = (0,0) # FPGA only implements side A - self._u.set_mux(usrp.determine_rx_mux_value(self._u, self._subdev_spec)) - self._subdev = usrp.selected_subdev(self._u, self._subdev_spec) - if self._verbose: - print "Using", self._subdev.name(), "for radar receiver." + self._u = usrp.source_c(fpga_filename='usrp_radar_mono.rbf') + if self._subdev_spec == None: + self._subdev_spec = usrp.pick_rx_subdevice(self._u) + self._u.set_mux(usrp.determine_rx_mux_value(self._u, self._subdev_spec)) - self.set_gain(self._gain) + if self._debug: + self._usrp_sink = gr.file_sink(gr.sizeof_gr_complex, "usrp.dat") + self._fg.connect(self._u, self._usrp_sink) + + self._subdev = usrp.selected_subdev(self._u, self._subdev_spec) + self.set_gain(gain) - # need to compute length here + if self._verbose: + print "Using", self._subdev.name(), "for radar receiver." + print "Setting receiver gain to", self._gain + def set_echo_length(self, length): + # Only call once + if self._length_set is True: + raise RuntimeError("Can only set echo length once.") + self._length = length self._vblen = gr.sizeof_gr_complex*self._length - if self._debug: - print "Generating echo vectors of length", self._length, "byte length", self._vblen - - self._s2v = gr.stream_to_vector(gr.sizeof_gr_complex, self._length) + self._s2v = gr.stream_to_vector(gr.sizeof_gr_complex, self._length) self._sink = gr.message_sink(self._vblen, self._msgq, True) self._fg.connect(self._u, self._s2v, self._sink) - + self._length_set = True + if self._verbose: + print "Receiving echo vectors of length", self._length, \ + "(samples)", self._vblen, "(bytes)" + def tune(self, frequency): if self._verbose: print "Setting receiver frequency to", n2s(frequency) @@ -176,74 +199,68 @@ class radar_rx: def set_gain(self, gain): self._gain = gain - if self._loopback: - return - - if self._gain is None: + if self._gain == None: # if no gain was specified, use the mid-point in dB g = self._subdev.gain_range() self._gain = float(g[0]+g[1])/2 - if self._verbose: - print "Setting receiver gain to", gain self._subdev.set_gain(self._gain) def start(self): - if self._debug: + if self._verbose: print "Starting receiver flow graph." self._fg.start() def wait(self): - if self._debug: + if self._verbose: print "Waiting for threads..." self._fg.wait() def stop(self): - if self._debug: + if self._verbose: print "Stopping receiver flow graph." self._fg.stop() self.wait() - if self._debug: + if self._verbose: print "Receiver flow graph stopped." -""" class radar: - def __init__(self,msgq=None,verbose=False,debug=False): + def __init__(self, msgq=None, tx_subdev_spec=None, rx_subdev_spec=None, + gain=None, verbose=False, debug=False): self._msgq = msgq self._verbose = verbose self._debug = debug self._mode = 0 - self._trans = radar_tx(verbose=self._verbose, debug=self._debug) + self._trans = radar_tx(subdev_spec=tx_subdev_spec, verbose=self._verbose, debug=self._debug) + self._rcvr = radar_rx(gain=gain, msgq=self._msgq, subdev_spec=rx_subdev_spec, + verbose=self._verbose, debug=self._debug) self.set_reset(True) - + self.set_tx_board(self._trans.subdev_spec()) + self.set_debug(self._debug) + 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 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_loopback(self, value): + def set_tx_board(self, tx_subdev_spec): + if tx_subdev_spec[0] == 1: + self._mode |= bmFR_RADAR_TXSIDE + else: + self._mode &= ~bmFR_RADAR_TXSIDE + self._write_mode() + + def set_debug(self, value): if value: - if self._verbose: - print "Enabling digital loopback." - self._mode |= bmFR_RADAR_MODE_LP + self._mode |= bmFR_RADAR_DEBUG else: - if self._verbose: - print "Disabling digital loopback." - self._mode &= ~bmFR_RADAR_MODE_LP + self._mode &= ~bmFR_RADAR_DEBUG self._write_mode() - """ def set_ton(self, ton): self._trans.set_ton(ton) @@ -253,6 +270,7 @@ class radar: def set_tlook(self, tlook): self._trans.set_tlook(tlook) + self._rcvr.set_echo_length(self._trans.echo_length()) def set_prf(self, prf): self._trans.set_prf(prf) @@ -265,12 +283,12 @@ class radar: # set receiver center frequency def start(self): - self._trans.start() self.set_reset(False) + self._trans.start() + self._rcvr.start() def stop(self): - self.set_reset(True) self._trans.stop() + self._rcvr.stop() + self.set_reset(True) - def __del__(self): - self.stop() diff --git a/gr-radar-mono/src/python/usrp_radar_mono.py b/gr-radar-mono/src/python/usrp_radar_mono.py index c4d5ff4a..e372ec9f 100755 --- a/gr-radar-mono/src/python/usrp_radar_mono.py +++ b/gr-radar-mono/src/python/usrp_radar_mono.py @@ -31,6 +31,12 @@ n2s = eng_notation.num_to_str def main(): parser = OptionParser(option_class=eng_option) + parser.add_option("-T", "--tx-subdev-spec", type="subdev", default=None, + help="use transmitter board side A or B (default is first found)") + parser.add_option("-R", "--rx-subdev-spec", type="subdev", default=None, + help="use receiver board side A or B (default is first found)") + parser.add_option("-g", "--gain", type="eng_float", default=None, + help="set gain in dB (default is midpoint)") 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") parser.add_option("-w", "--chirp-width", type="eng_float", default=32e6, @@ -51,8 +57,6 @@ def main(): help="enable debugging output, default is disabled") # NOT IMPLEMENTED - #parser.add_option("-g", "--gain", type="eng_float", default=None, - # help="set gain in dB (default is midpoint)") #parser.add_option("-l", "--loopback", action="store_true", default=False, # help="enable digital loopback, default is disabled") #parser.add_option("-F", "--filename", default=None, @@ -74,7 +78,9 @@ def main(): """ msgq = gr.msg_queue() - s = radar(msgq=msgq,verbose=options.verbose,debug=options.debug) + s = radar(msgq=msgq, tx_subdev_spec=options.tx_subdev_spec, + rx_subdev_spec=options.rx_subdev_spec,gain=options.gain, + verbose=options.verbose, debug=options.debug) s.set_ton(options.ton) s.set_tsw(options.tsw) @@ -85,24 +91,22 @@ def main(): s.start() - """ - f = open(options.filename, "wb") + #f = open(options.filename, "wb") print "Enter CTRL-C to stop." try: - while (1): - msg = msgq.delete_head() - if msg.type() == 1: - break - rec = msg.to_string() - if options.debug: - print "Received echo vector of length", len(rec) - f.write(rec) + while 1: + if not msgq.empty_p(): + msg = msgq.delete_head() + if msg.type() == 1: + break + echo = msg.to_string() + if options.debug: + print "Received echo vector of length", len(echo) + #f.write(rec) except KeyboardInterrupt: pass - """ - raw_input("Press enter to stop transmitting.") s.stop() if __name__ == "__main__": -- 2.47.2