• 采用流水线结构的CIC 抽取滤波器结构如下:
  • // 三级CIC抽取器实例:cic3_decimator.V
  • module cic3_decimator(clk, x_in, y_out);
  • parameter        STATE_HOLD = 1'b0, STATE_SAMPLE = 1'b1;
  • input                   clk;                                // 输入时钟
  • input         [7:0]   x_in;                        // 输入8位数据
  • output [25:0] y_out;                // 输出26位数据
  • reg              state, derived_clk;
  • reg [4:0] counter;
  • // 有限状态机,用于实现下采样
  • always @(negedge clk) begin: FSM_DECIMATOR
  • case(state)
  • STATE_HOLD: begin
  • if(counter == 31)
  • state <= STATE_SAMPLE;
  • end
  • STATE_SAMPLE: begin
  • ComReg0[0] <= IntReg[2];
  • state <= STATE_HOLD;
  • end
  • default:
  • state <= STATE_HOLD;
  • endcase
  • if((counter>8)&&(counter<16))        // 生成下采样后的时钟
  • derived_clk <= 1;
  • else
  • derived_clk <= 0;
  • counter <= counter + 1;
  • end
  • wire [25:0] sxtx;                // Sign extended input
  • assign sxtx = {{18{x[7]}},x};        // 符号扩展
  • reg  [7:0]  x;                                        // Registered input
  • reg [25:0] IntReg[2:0];                        // I section 0,1 and 2
  • // 积分器实现模块
  • always @(posedge clk) begin: INTEGRATOR
  • x  <= x_in;
  • IntReg[0] <= IntReg[0] + sxtx;
  • IntReg[1] <= IntReg[1] + IntReg[0];
  • IntReg[2] <= IntReg[2] + IntReg[1];
  • end
  • reg [25:0] ComReg0[2:0],ComReg1[2:0],ComReg2[2:0],ComReg3;
  • //梳状器实现模块
  • always @(posedge derived_clk)begin:COMB
  • ComReg0[1] <= ComReg0[0];
  • ComReg0[2] <= ComReg0[1];
  • ComReg1[0] <= ComReg0[0] - ComReg0[2];
  • ComReg1[1] <= ComReg1[0];
  • ComReg1[2] <= ComReg1[1];
  • ComReg2[0] <= ComReg1[0] - ComReg1[2];
  • ComReg2[1] <= ComReg2[0];
  • ComReg2[2] <= ComReg2[1];
  • ComReg3     <= ComReg2[0] - ComReg2[2];
  • end
  • assign y_out = ComReg3;                //输出
  • endmodule

CIC 抽取滤波器 Verilog Code的更多相关文章

  1. matlab 与 modelsim 联调 cic抽取滤波器

    注:本设计的参数为:D=2,R=5,N=3:时钟频率为50mhz,输入信号为有符号8位,根据公式bmax=bin+N*log(2,R*D):可以得到bmax=18: 1,cic抽取滤波器原理 网上资料 ...

  2. Verilog code

    1.计数,用于对精度不高的计数 always @(posedge clk or negedge rst_n) begin if(!rst_n) div_cnt <= 'd0; else div_ ...

  3. 直流滤波器 verilog

    // dc filter- y(n) = c*x(n) + (1-c)*y(n-1) `timescale 1ps/1ps module ad_dcfilter #( // data path dis ...

  4. Verilog Tips and Interview Questions

    Verilog Interiew Quetions Collection :  What is the difference between $display and $monitor and $wr ...

  5. verilog流水线加法器

    四位加法器 两级加法实现 verilog code module pipeliningadder( output reg [3:0] s, output reg co, input [3:0] a, ...

  6. verilog 实现加法器

    半加器 如果不考虑来自低位的进位将两个1二进制数相加,称为半加. 实现半加运算的逻辑电路称为半加器. 真值表 逻辑表达式和 \begin{align}\notag s = a{b}' + {a}'b ...

  7. verilog FAQ(zz)

    1. What is the race condition in verilog? Ans :The situation when two expressions are allowed to exe ...

  8. ∑–△型模数转换器(ADC)简介

    ∑–△型模数转换器(ADC) 1.概述 近年来,随着超大规模集成电路制造水平的提高,Σ-Δ型模数转换器正以其分辨率高.线性度好.成本低等特点得到越来越广泛的应用.Σ-Δ型模数转换器方案早在20世纪60 ...

  9. i.MX RT600之DMIC外设介绍及应用

    恩智浦的i.MX RT600是跨界处理器产品,同样也是i.MX RTxxx系列的开山之作.不同于i.MX RT1xxx系列单片机,i.MX RT600 采用了双核架构,将新一代Cortex-M33内核 ...

随机推荐

  1. 编译联想A820内核源码

    编译平台:Fedora 20 x64 交叉编译工具链:arm-linux-androideabi-4.6 话说这个编译工具我研究了两天,Fedora自带一个arm-none-eabi的ToolChai ...

  2. 【互动问答分享】第15期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    "决胜云计算大数据时代" Spark亚太研究院100期公益大讲堂 [第15期互动问答分享] Q1:AppClient和worker.master之间的关系是什么? AppClien ...

  3. SQL Server 性能调优培训引言

    原文:SQL Server 性能调优培训引言 大家好,这是我在博客园写的第一篇博文,之所以要开这个博客,是我对MS SQL技术学习的一个兴趣记录. 作为计算机专业毕业的人,自己对技术的掌握总是觉得很肤 ...

  4. 应对黑客攻击SQL SERVER数据库中的一个案例

    最近发现挂在网上server不知怎的,重新启动,那server现在主要是开始IIS服务,SQL SERVER 服务. 远程登录.发现系统响应十分缓慢.一个明显的停滞感,打开任务管理器,CPU在基本用法 ...

  5. 返璞归真 asp.net mvc (3) - Controller/Action

    原文:返璞归真 asp.net mvc (3) - Controller/Action [索引页] [源码下载] 返璞归真 asp.net mvc (3) - Controller/Action 作者 ...

  6. POJ 2352 Stars 树阵

    标题效果:特定y值在升序一些点.一个点的定义level值点的数目对于其左下,每个请求level多少分. 思维:因为y值它是按升序.所以分的差距仅仅是推断x值相比之前的大.就用树状数组维护. CODE: ...

  7. Node.js Tools for Visual Studio

    https://www.visualstudio.com/en-us/features/node-js-vs.aspx

  8. Flappy bird源代码(略吊)

    #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<time.h> #inc ...

  9. Codeforces 12D Ball 树形阵列模拟3排序元素

    主题链接:点击打开链接 #include<stdio.h> #include<iostream> #include<string.h> #include<se ...

  10. GitLab一键式安装bitnami

    https://bitnami.com/stack/gitlab/installer https://bitnami.com/redirect/to/96764/bitnami-gitlab-8.5. ...