aboutsummaryrefslogtreecommitdiffstats
path: root/usrp2/sdr_lib/duc_chain.v
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2012-01-28 12:21:15 -0800
committerJosh Blum <josh@joshknows.com>2012-01-28 12:21:15 -0800
commit9f9729993197839d8be950d69eca4456c8e41323 (patch)
tree05295d25202f6167c9c1a60f0ca059c8b01593f7 /usrp2/sdr_lib/duc_chain.v
parent0ff51a352d13f2ce6c59c82c90e853720936c88f (diff)
downloaduhd-9f9729993197839d8be950d69eca4456c8e41323.tar.gz
uhd-9f9729993197839d8be950d69eca4456c8e41323.tar.bz2
uhd-9f9729993197839d8be950d69eca4456c8e41323.zip
dsp rework: moved scale and round into ddc chain
16to8 engine now performs only a clip from 16->8
Diffstat (limited to 'usrp2/sdr_lib/duc_chain.v')
-rw-r--r--usrp2/sdr_lib/duc_chain.v10
1 files changed, 5 insertions, 5 deletions
diff --git a/usrp2/sdr_lib/duc_chain.v b/usrp2/sdr_lib/duc_chain.v
index 66d15d0ad..23325ef60 100644
--- a/usrp2/sdr_lib/duc_chain.v
+++ b/usrp2/sdr_lib/duc_chain.v
@@ -34,7 +34,7 @@ module duc_chain
output [31:0] debug
);
- wire [15:0] i, q, scale_i, scale_q;
+ wire [17:0] scale_factor;
wire [31:0] phase_inc;
reg [31:0] phase;
wire [7:0] interp_rate;
@@ -46,9 +46,9 @@ module duc_chain
(.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr),
.in(set_data),.out(phase_inc),.changed());
- setting_reg #(.my_addr(BASE+1)) sr_1
+ setting_reg #(.my_addr(BASE+1), .width(18)) sr_1
(.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr),
- .in(set_data),.out({scale_i,scale_q}),.changed());
+ .in(set_data),.out(scale_factor),.changed());
setting_reg #(.my_addr(BASE+2), .width(10)) sr_2
(.clk(clk),.rst(rst),.strobe(set_stb),.addr(set_addr),
@@ -134,7 +134,7 @@ module duc_chain
MULT18X18S MULT18X18S_inst
(.P(prod_i), // 36-bit multiplier output
.A(da_c[cwidth-1:cwidth-18]), // 18-bit multiplier input
- .B({{2{scale_i[15]}},scale_i}), // 18-bit multiplier input
+ .B(scale_factor), // 18-bit multiplier input
.C(clk), // Clock input
.CE(1), // Clock enable input
.R(rst) // Synchronous reset input
@@ -143,7 +143,7 @@ module duc_chain
MULT18X18S MULT18X18S_inst_2
(.P(prod_q), // 36-bit multiplier output
.A(db_c[cwidth-1:cwidth-18]), // 18-bit multiplier input
- .B({{2{scale_q[15]}},scale_q}), // 18-bit multiplier input
+ .B(scale_factor), // 18-bit multiplier input
.C(clk), // Clock input
.CE(1), // Clock enable input
.R(rst) // Synchronous reset input