[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r10300 - in gnuradio/branches/developers/pcreekmore/qu
From: |
pcreekmore |
Subject: |
[Commit-gnuradio] r10300 - in gnuradio/branches/developers/pcreekmore/quantization/usrp/fpga: sdr_lib toplevel/usrp_std |
Date: |
Sun, 25 Jan 2009 10:28:59 -0700 (MST) |
Author: pcreekmore
Date: 2009-01-25 10:28:58 -0700 (Sun, 25 Jan 2009)
New Revision: 10300
Modified:
gnuradio/branches/developers/pcreekmore/quantization/usrp/fpga/sdr_lib/rx_buffer.v
gnuradio/branches/developers/pcreekmore/quantization/usrp/fpga/toplevel/usrp_std/usrp_std.qsf
Log:
Added buffer store event counter and 'buffers ready' logic in preparation for
new quantization options.
Modified:
gnuradio/branches/developers/pcreekmore/quantization/usrp/fpga/sdr_lib/rx_buffer.v
===================================================================
---
gnuradio/branches/developers/pcreekmore/quantization/usrp/fpga/sdr_lib/rx_buffer.v
2009-01-24 03:08:36 UTC (rev 10299)
+++
gnuradio/branches/developers/pcreekmore/quantization/usrp/fpga/sdr_lib/rx_buffer.v
2009-01-25 17:28:58 UTC (rev 10300)
@@ -126,6 +126,72 @@
ch_7_reg <= ch_7;
end
+ // buffer store event counter
+ reg [3:0] buffstore_count;
+ always @(posedge rxclk)
+ if (reset)
+ buffstore_count <= 4'b0;
+ else if (rxstrobe)
+ if (buffs_ready)
+ buffstore_count <= 4'd1;
+ else
+ buffstore_count <= buffstore_count + 4'd1;
+ else
+ buffstore_count <= buffstore_count;
+
+ // read phase counter to keep track of 6-channel cases
+ reg [1:0] read_phase;
+
+
+ // Logic to determine if a sufficient number of new samples has been read
+ // into the buffers in order to write a full 16-bit word to the output fifo
+ reg buffs_ready;
+ always @*
+ if (bitwidth==5'd16 || bitwidth==5'd8 && buffstore_count == 4'd1)
+ buffs_ready <= 1;
+ else if (channels == 4'd2)
+ case(bitwidth)
+ 5'd4 : if (buffstore_count == 4'd2) buffs_ready <= 1; else
buffs_ready <= 0;
+ 5'd2 : if (buffstore_count == 4'd4) buffs_ready <= 1; else
buffs_ready <= 0;
+ 5'd1 : if (buffstore_count == 4'd8) buffs_ready <= 1; else
buffs_ready <= 0;
+ default : buffs_ready <= 0;
+ endcase
+ else if (channels == 4'd4)
+ case(bitwidth)
+ 5'd4 : if (buffstore_count == 4'd1) buffs_ready <= 1; else
buffs_ready <= 0;
+ 5'd2 : if (buffstore_count == 4'd2) buffs_ready <= 1; else
buffs_ready <= 0;
+ 5'd1 : if (buffstore_count == 4'd4) buffs_ready <= 1; else
buffs_ready <= 0;
+ default : buffs_ready <= 0;
+ endcase
+ else if (channels == 4'd6)
+ case(bitwidth)
+ 5'd4 : if (buffstore_count == 4'd1) buffs_ready <= 1; else
buffs_ready <= 0;
+ 5'd2 :
+ case(read_phase)
+ 2'd1 : if (buffstore_count == 4'd2) buffs_ready <= 1; else
buffs_ready <= 0;
+ 2'd2 : if (buffstore_count == 4'd1) buffs_ready <= 1; else
buffs_ready <= 0;
+ 2'd3 : if (buffstore_count == 4'd1) buffs_ready <= 1; else
buffs_ready <= 0;
+ default : buffs_ready <= 0;
+ endcase
+ 5'd1 :
+ case(read_phase)
+ 2'd1 : if (buffstore_count == 4'd3) buffs_ready <= 1; else
buffs_ready <= 0;
+ 2'd2 : if (buffstore_count == 4'd3) buffs_ready <= 1; else
buffs_ready <= 0;
+ 2'd3 : if (buffstore_count == 4'd2) buffs_ready <= 1; else
buffs_ready <= 0;
+ default : buffs_ready <= 0;
+ endcase
+ default : buffs_ready <= 0;
+ endcase
+ else if (channels == 4'd8)
+ case(bitwidth)
+ 5'd4 : if (buffstore_count == 4'd1) buffs_ready <= 1; else
buffs_ready <= 0;
+ 5'd2 : if (buffstore_count == 4'd1) buffs_ready <= 1; else
buffs_ready <= 0;
+ 5'd1 : if (buffstore_count == 4'd2) buffs_ready <= 1; else
buffs_ready <= 0;
+ default : buffs_ready <= 0;
+ endcase
+ else
+ buffs_ready <= 0;
+
reg [3:0] phase;
always @(posedge rxclk)
if(reset)
Modified:
gnuradio/branches/developers/pcreekmore/quantization/usrp/fpga/toplevel/usrp_std/usrp_std.qsf
===================================================================
---
gnuradio/branches/developers/pcreekmore/quantization/usrp/fpga/toplevel/usrp_std/usrp_std.qsf
2009-01-24 03:08:36 UTC (rev 10299)
+++
gnuradio/branches/developers/pcreekmore/quantization/usrp/fpga/toplevel/usrp_std/usrp_std.qsf
2009-01-25 17:28:58 UTC (rev 10300)
@@ -27,7 +27,7 @@
# ========================
set_global_assignment -name ORIGINAL_QUARTUS_VERSION 3.0
set_global_assignment -name PROJECT_CREATION_TIME_DATE "00:14:04 JULY 13,
2003"
-set_global_assignment -name LAST_QUARTUS_VERSION "7.1 SP1"
+set_global_assignment -name LAST_QUARTUS_VERSION "7.2 SP1"
# Pin & Location Assignments
# ==========================
@@ -406,4 +406,7 @@
set_global_assignment -name VERILOG_FILE ../../sdr_lib/clk_divider.v
set_global_assignment -name VERILOG_FILE ../../sdr_lib/serial_io.v
set_global_assignment -name VERILOG_FILE ../../sdr_lib/strobe_gen.v
-set_global_assignment -name VERILOG_FILE ../../sdr_lib/sign_extend.v
\ No newline at end of file
+set_global_assignment -name VERILOG_FILE ../../sdr_lib/sign_extend.v
+set_global_assignment -name PARTITION_COLOR 2147039 -section_id Top
+set_global_assignment -name LL_ROOT_REGION ON -section_id "Root Region"
+set_global_assignment -name LL_MEMBER_STATE LOCKED -section_id "Root Region"
\ No newline at end of file
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r10300 - in gnuradio/branches/developers/pcreekmore/quantization/usrp/fpga: sdr_lib toplevel/usrp_std,
pcreekmore <=