aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Ettus <matt@ettus.com>2011-04-18 13:59:43 -0700
committerMatt Ettus <matt@ettus.com>2011-06-08 10:52:51 -0700
commit7b127e2f51f636baf1d39f46cc9afd09579bf74f (patch)
tree182b0eb562aee9e817cc35b1935a079ca062ef30
parent569d9ee60153ac129aa275ca43688c3b94eb8c84 (diff)
downloaduhd-7b127e2f51f636baf1d39f46cc9afd09579bf74f.tar.gz
uhd-7b127e2f51f636baf1d39f46cc9afd09579bf74f.tar.bz2
uhd-7b127e2f51f636baf1d39f46cc9afd09579bf74f.zip
dsp: use sigma delta rounding in rx_dcoffset and in dsp_core_rx
-rw-r--r--usrp2/sdr_lib/dsp_core_rx.v4
-rw-r--r--usrp2/sdr_lib/rx_dcoffset.v18
2 files changed, 6 insertions, 16 deletions
diff --git a/usrp2/sdr_lib/dsp_core_rx.v b/usrp2/sdr_lib/dsp_core_rx.v
index ae6cdbdf3..f17c2816f 100644
--- a/usrp2/sdr_lib/dsp_core_rx.v
+++ b/usrp2/sdr_lib/dsp_core_rx.v
@@ -102,8 +102,8 @@ module dsp_core_rx
.rate(cic_decim_rate),.strobe_in(1'b1),.strobe_out(strobe_cic),
.signal_in(q_cordic),.signal_out(q_cic));
- round_reg #(.bits_in(24),.bits_out(18)) round_icic (.clk(clk),.in(i_cic),.out(i_cic_scaled));
- round_reg #(.bits_in(24),.bits_out(18)) round_qcic (.clk(clk),.in(q_cic),.out(q_cic_scaled));
+ round_sd #(.WIDTH_IN(24),.WIDTH_OUT(18)) round_icic (.clk(clk),.in(i_cic),.out(i_cic_scaled));
+ round_sd #(.WIDTH_IN(24),.WIDTH_OUT(18)) round_qcic (.clk(clk),.in(q_cic),.out(q_cic_scaled));
reg strobe_cic_d1;
always @(posedge clk) strobe_cic_d1 <= strobe_cic;
diff --git a/usrp2/sdr_lib/rx_dcoffset.v b/usrp2/sdr_lib/rx_dcoffset.v
index 52f8cd5be..97923b9bf 100644
--- a/usrp2/sdr_lib/rx_dcoffset.v
+++ b/usrp2/sdr_lib/rx_dcoffset.v
@@ -32,7 +32,8 @@ module rx_dcoffset
localparam int_width = WIDTH + alpha_shift;
reg [int_width-1:0] integrator;
-
+ wire [WIDTH-1:0] quantized;
+
always @(posedge clk)
if(rst)
begin
@@ -47,19 +48,8 @@ module rx_dcoffset
else if(~fixed)
integrator <= integrator + {{(alpha_shift){out[WIDTH-1]}},out};
- wire [WIDTH-1:0] quantized;
- wire [int_width-WIDTH:0] q_err;
- wire [int_width-1:0] q_err_ext;
- wire [int_width-1:0] q_loop;
-
- round #(.bits_in(int_width), .bits_out(WIDTH)) quantizer
- (.in(q_loop), .out(quantized), .err(q_err));
-
- sign_extend #(.bits_in(int_width-WIDTH+1),.bits_out(int_width)) sign_extend
- (.in(q_err), .out(q_err_ext));
-
- add2_and_clip_reg #(.WIDTH(int_width)) sd_fixed
- (.clk(clk), .rst(rst), .in1(integrator), .in2(q_err_ext), .sum(q_loop));
+ round_sd #(.WIDTH_IN(int_width),.WIDTH_OUT(WIDTH)) round_sd
+ (.clk(clk), .reset(rst), .in(integrator), .out(quantized));
add2_and_clip_reg #(.WIDTH(WIDTH)) add2_and_clip_reg
(.clk(clk), .rst(rst), .in1(in), .in2(-quantized), .sum(out));