aboutsummaryrefslogtreecommitdiffstats
path: root/fpga/usrp3/lib/dsp/cic_strober.v
diff options
context:
space:
mode:
authorBen Hilburn <ben.hilburn@ettus.com>2013-10-10 10:17:27 -0700
committerBen Hilburn <ben.hilburn@ettus.com>2013-10-10 10:17:27 -0700
commit0df4b801a34697f2058b4a7b95e08d2a0576c9db (patch)
treebe10e78d1a97c037a9e7492360a178d1873b9c09 /fpga/usrp3/lib/dsp/cic_strober.v
parent6e7bc850b66e8188718248b76b729c7cf9c89700 (diff)
downloaduhd-0df4b801a34697f2058b4a7b95e08d2a0576c9db.tar.gz
uhd-0df4b801a34697f2058b4a7b95e08d2a0576c9db.tar.bz2
uhd-0df4b801a34697f2058b4a7b95e08d2a0576c9db.zip
Squashed B200 FPGA Source. Code from Josh Blum, Ian Buckley, and Matt Ettus.
Diffstat (limited to 'fpga/usrp3/lib/dsp/cic_strober.v')
-rw-r--r--fpga/usrp3/lib/dsp/cic_strober.v33
1 files changed, 33 insertions, 0 deletions
diff --git a/fpga/usrp3/lib/dsp/cic_strober.v b/fpga/usrp3/lib/dsp/cic_strober.v
new file mode 100644
index 000000000..269b85f75
--- /dev/null
+++ b/fpga/usrp3/lib/dsp/cic_strober.v
@@ -0,0 +1,33 @@
+//
+// USRP2 - Universal Software Radio Peripheral Mk II
+//
+// Copyright (C) 2008 Matt Ettus
+//
+
+//
+
+module cic_strober
+ #(parameter WIDTH=8)
+ ( input clock,
+ input reset,
+ input enable,
+ input [WIDTH-1:0] rate, // Rate should EQUAL to your desired divide ratio, no more -1 BS
+ input strobe_fast,
+ output wire strobe_slow );
+
+ reg [WIDTH-1:0] counter;
+ wire now = (counter==1);
+ assign strobe_slow = now && enable && strobe_fast;
+
+ always @(posedge clock)
+ if(reset)
+ counter <= 0;
+ else if (~enable)
+ counter <= rate;
+ else if(strobe_fast)
+ if(now)
+ counter <= rate;
+ else
+ counter <= counter - 1;
+
+endmodule // cic_strober