commit-gnuradio
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]