aboutsummaryrefslogtreecommitdiffstats
path: root/top/u2_rev3_iad/integrate.v
diff options
context:
space:
mode:
authorjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>2009-04-22 00:11:28 +0000
committerjcorgan <jcorgan@221aa14e-8319-0410-a670-987f0aec2ac5>2009-04-22 00:11:28 +0000
commit0d440394746183c2ed2f39c7665cbf7b67a1764a (patch)
treec19c079c522a78a49034a3eb833146bff7542f99 /top/u2_rev3_iad/integrate.v
parent8c3ec58ceb58e8356557748de5d8f1077b4fef5f (diff)
downloaduhd-0d440394746183c2ed2f39c7665cbf7b67a1764a.tar.gz
uhd-0d440394746183c2ed2f39c7665cbf7b67a1764a.tar.bz2
uhd-0d440394746183c2ed2f39c7665cbf7b67a1764a.zip
Merged r10770:10887 from jcorgan/iad2 into trunk. Adds alternative USRP2 FPGA build to use integrate-and-dump decimator instead of CIC/HB combination. This provides a much shorter time duration impulse response for the same decimation rate, at the expense of worse stop-band rejection.
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@10888 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'top/u2_rev3_iad/integrate.v')
-rw-r--r--top/u2_rev3_iad/integrate.v38
1 files changed, 38 insertions, 0 deletions
diff --git a/top/u2_rev3_iad/integrate.v b/top/u2_rev3_iad/integrate.v
new file mode 100644
index 000000000..db33de979
--- /dev/null
+++ b/top/u2_rev3_iad/integrate.v
@@ -0,0 +1,38 @@
+module integrate
+ #(parameter INPUTW = 16,
+ parameter ACCUMW = 32,
+ parameter OUTPUTW = 16)
+
+ (input clk_i,
+ input rst_i,
+ input ena_i,
+
+ input dump_i,
+ input [INPUTW-1:0] data_i,
+
+ output reg stb_o,
+ output reg [OUTPUTW-1:0] integ_o
+ );
+
+ wire [ACCUMW-1:0] data_ext = {{ACCUMW-INPUTW{data_i[INPUTW-1]}},data_i};
+ reg [ACCUMW-1:0] accum;
+
+ always @(posedge clk_i)
+ if (rst_i | ~ena_i)
+ begin
+ accum <= 0;
+ integ_o <= 0;
+ end
+ else
+ if (dump_i)
+ begin
+ integ_o <= accum[ACCUMW-1:ACCUMW-OUTPUTW];
+ accum <= data_ext;
+ end
+ else
+ accum <= accum + data_ext;
+
+ always @(posedge clk_i)
+ stb_o <= dump_i;
+
+endmodule // integrate