[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commit-gnuradio] r8760 - usrp2/trunk/fpga/sdr_lib
From: |
matt |
Subject: |
[Commit-gnuradio] r8760 - usrp2/trunk/fpga/sdr_lib |
Date: |
Mon, 30 Jun 2008 19:18:48 -0600 (MDT) |
Author: matt
Date: 2008-06-30 19:18:48 -0600 (Mon, 30 Jun 2008)
New Revision: 8760
Modified:
usrp2/trunk/fpga/sdr_lib/rx_dcoffset.v
Log:
implement disable of dc offset, and use rounding macro instead of reinventing
the wheel (incorrectly in this case).
Modified: usrp2/trunk/fpga/sdr_lib/rx_dcoffset.v
===================================================================
--- usrp2/trunk/fpga/sdr_lib/rx_dcoffset.v 2008-07-01 00:37:47 UTC (rev
8759)
+++ usrp2/trunk/fpga/sdr_lib/rx_dcoffset.v 2008-07-01 01:18:48 UTC (rev
8760)
@@ -12,19 +12,28 @@
wire set_now = set_stb & (ADDR == set_addr);
- wire fixed; // uses fixed offset
+ reg fixed; // uses fixed offset
wire signed [WIDTH-1:0] fixed_dco;
reg signed [31:0] integrator;
-
+
always @(posedge clk)
if(rst)
- integrator <= 32'd0;
+ begin
+ fixed <= 0;
+ integrator <= 32'd0;
+ end
else if(set_now)
- integrator <= {set_data[WIDTH-1:0],{(32-WIDTH){1'b0}}};
+ begin
+ integrator <= {set_data[WIDTH-1:0],{(32-WIDTH){1'b0}}};
+ fixed <= set_data[31];
+ end
else if(~fixed)
integrator <= integrator + adc_out;
- wire [WIDTH:0] scaled_integrator =
{integrator[31],(integrator[31:32-WIDTH] + (integrator[31] &
|integrator[31-WIDTH:0]))};
+ wire [WIDTH:0] scaled_integrator;
+
+ round #(.bits_in(33),.bits_out(15)) round
(.in({integrator[31],integrator}),.out(scaled_integrator));
+
wire [WIDTH:0] adc_out_int = {adc_in[WIDTH-1],adc_in} -
scaled_integrator;
clip_reg #(.bits_in(WIDTH+1),.bits_out(WIDTH)) clip_adc
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Commit-gnuradio] r8760 - usrp2/trunk/fpga/sdr_lib,
matt <=