【【verilog典型电路设计之FIR滤波器的设计】】

news2024/12/26 11:26:56

verilog典型电路设计之FIR滤波器的设计

我们常用的FIR滤波器称为有限冲激响应 是一种常用的数字滤波器 ,采用对已输入样值的加权和来形成它的输出。

对于输入序列X[n] 的FIR滤波器可用下图所示的结构示意图来表示,其中X[n] 是输入数据流。各级的输入连接和输出连接被称为抽头,并且系数(b0,b1,…,bn)被称为抽头系数。一个M阶的FIR滤波器将会有M+1个抽头。通过移位寄存器用每个时钟边沿n(时钟下标)处的数据流采样值乘以抽头系数,并将它们加起来形成输出Y[n] 。
在这里插入图片描述

下面是verilog代码

module FIR (Data_out,Data_in,clock,reset);
output[9:0] Data_out;
input[3:0] Data_in;
input clock, reset;
wire[9:0] Data_out;
wire [3:0]samples_0,samples_1,samples_2,samples_3,samples_4,samples_5,samples_6,samples_7,samples_8;
shift_register U1(.Data_in(Data_in),.clock(clock),.reset(reset),.samples_o(samples_o),.samples_1(samples_1),.samples_2(samples_2),.samples_3(samples_3),.samples_4(samples_4),.samples_5(samples_5),.samples_6(samples_6),.samples_7(samples_7),.samples_8(samples_8));
caculatorU2(.samples_0(samples_O),.samples_1(samples_1),.samples_2(samples_2),.samples_3(samples_3),.samples_4(samples_4),.samples_5(samples_5),.samples_6(samples_6),.samples_7(samples_7),.samples_8(samples_8),.Data_out(Data_out));
endmodule
module shift_register(Data_in,clock,reset,samples_0,samples_1,samples_2,samples_3,samples_4,samples_5,samples_6,samples_7,samples_8);
input [3:0] Data_in;
input clock,reset;
output [3:0] samples_0,samples_1,samples_2,samples_3,samples_4,samples_5,samples_6,samples_7,samples_8;
reg [3:0] samples_0,samples_1,samples_2,samples_3,samples_4,samples_5,samples_6,samples_7,samples_8;
always@(posedge clock or negedge reset)
begin
if(reset)begin
samples_O<=4'b0;
samples_1<=4'b0;
samples_2<=4'b0;
samples_3<=4'b0;
samples_4<=4'b0;
samples_5<=4'b0;
samples_6<=4'b0;
samples_7<=4'b0;
samples_8<=4'b0;
end
else
begin
samples_0<=Data_in;
samples_1<=samples_0;
samples_2<=samples_1;
samples_3<=samples_2;
samples_4<=samples_3;
samples_5<=samples_4;
samples_6<=samples_5;
samples_7<=samples_6;
samples_8<=samples_7;
end
end
endmodule
module caculator(samples_0,samples_1,samples_2,samples_3,samples_4,samples_5,samples_6,samples_7,samples_8,Data_out);
input [3:0] samples_0,samples_1,samples_2,samples_3,samples_4,samples_5,samples_6,samples_7,samples_8;
output [9:0] Data_out;
wire [9:0] Data_out;
wire [3:0] out_tmp_1,out_tmp_2,out_tmp_3,out_tmp_4,out_tmp_5;wire [7:0] out1,out2,out3,out4,out5;
parameter b0=4'b0010;
parameter b1=4'b0011;
parameter b2=4'b0110;
parameter b3=4'b1010;
parameter b4=4'b1100;
mul_addtree U1(.mul_a(b0),.mul_b(out_tmp_1),.mul_out(out1));
mul_addtree U2(.mul_a(b1),.mul_b(out_tmp_2),.mul_out(out2));
mul_addtree U3(.mul_a(b2),.mul_b(out_tmp_3),.mul_out(out3));
mul_addtree U4(.mul_a(b3),.mul_b(out_tmp_4),.mul_out(out4));
mul_addtree U5(.mul_a(b4),..mul_b(samples_4),.mul_out(out5));
assign out_tmp_1=samples_O+samples_8;
assign out_tmp_2=samples_1+samples_7;
assign out_tmp_3=samples_2+samples_6;
assign out_tmp_4=samples_3+samples_5;
assign Data_out=out1+out2+out3+out4+out5;
endmodule

下面是testbench

module FIR_tb;
reg clock,reset;
reg [3:0] Data_in;
wire [9:0] Data_out;
FIRU1(.Data_out(Data_out),.Data_in(Data_in),.clock(clock),.reset(reset);
initial
begin 
Data_in=0;
clock=0;
reset=1;
#10 reset=0;
end
always
begin
#5 clock<=~clock;
#5 Data_in<=Data_in+1;
end
endmodule

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/890623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Idea中隐藏指定文件或指定类型文件

Setting ->Editor ->Code Style->File Types → Ignored Files and Folders输入要隐藏的文件名&#xff0c;支持*号通配符回车确认添加

微服务中间件--分布式事务

分布式事务 a.理论基础1) CAP定理2) BASE理论 b.Seata1) XA模式1.a) 实现XA模式 2) AT模式3) TCC模式3.a) 代码实现 4) Saga模式5) 四种模式对比6) TC的异地多机房容灾架构 a.理论基础 1) CAP定理 分布式系统有三个指标&#xff1a; Consistency&#xff08;一致性&#xff…

计算机视觉之三维重建(二)(摄像机标定)

标定示意图 标定目标 P ′ M P w K [ R T ] P w P^{}MP_wK[R \space T]P_w P′MPw​K[R T]Pw​ 其中 K K K为内参数&#xff0c; [ R T ] [R \space T] [R T]为外参数。该式子需要使用至少六对内外点对进行求解内外参数&#xff08;11个未知参数&#xff09;。 其中 R 3 3 …

【快应用】快应用广告学习之激励视频广告

【关键词】 快应用、激励视频广告、广告接入 【介绍】 一、关于激励视频广告 定义&#xff1a;用户通过观看完整的视频广告&#xff0c;获得应用内相关的奖励。适用场景&#xff1a;游戏/快游戏的通关、继续机会、道具获取、积分等场景中&#xff0c;阅读、影音等应用的权益体系…

二、SQL,如何实现表的创建和查询

1、新建表格&#xff08;在当前数据库中新建一个表格&#xff09;&#xff1a; &#xff08;1&#xff09;基础语法&#xff1a; create table [表名]( [字段:列标签] [该列数据类型] comment [字段注释], [字段:列标签] [该列数据类型] comment [字段注释], ……&#xff0c…

Spring Clould 服务间通信 - Feign

视频地址&#xff1a;微服务&#xff08;SpringCloudRabbitMQDockerRedis搜索分布式&#xff09; Feign-基于Feign远程调用&#xff08;P30&#xff09; 先来看我们以前利用RestTemplate发起远程调用的代码&#xff1a; 存在下面的问题&#xff1a; 代码可读性差&#xff0c…

字符设备驱动分布注册

驱动文件&#xff1a; 脑图&#xff1a; 现象&#xff1a;

初识Sentinel

目录 1.解决雪崩的方式有4种&#xff1a; 1.1.2超时处理&#xff1a; 1.1.3仓壁模式 1.1.4.断路器 1.1.5.限流 1.1.6.总结 1.2.服务保护技术对比 1.3.Sentinel介绍和安装 1.3.1.初识Sentinel 1.3.2.安装Sentinel 1.4.微服务整合Sentinel 2.流量控制 2.1.簇点链路 …

设计必备:6个免费PNG图片素材网站推荐

本文推荐了6个PNG图片素材网站,种类繁多、质量上乘,完全免费下载。这些网站收录了海量经过抠图处理的PNG图片,设计师无需操心抠图,直接搜索下载需要的图片进行创作,可以极大地提高工作效率,节约时间成本。获取这些高质量的PNG图片素材,你就可以无后顾之忧地进行创作设计了。不用…

Hive的窗口函数与行列转换函数及JSON解析函数

1. 系统内置函数 查看系统内置函数&#xff1a;show functions ; 显示内置函数的用法&#xff1a; desc function lag; – lag为函数名 显示详细的内置函数用法: desc function extended lag; 1.1 行转列 行转列是指多行数据转换为一个列的字段。 Hive行转列用到的函数 con…

内网穿透——使用Windows自带的网站程序建立网站

文章目录 1.前言2.Windows网页设置2.1 Windows IIS功能设置2.2 IIS网页访问测试 3. Cpolar内网穿透3.1 下载安装Cpolar3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5.结语 1.前言 在网上各种教程和介绍中&#xff0c;搭建网页都会借助各种软件的帮助&#xff0c;比如…

什么是骨传导耳机?骨传导耳机伤耳膜吗?骨传导耳机科普来了!

骨传导耳机是一种以骨骼为传导介质的耳机&#xff0c;因为佩戴时候传音是通过骨骼来传递&#xff0c;骨传导耳机不会堵塞耳道&#xff0c;也不需要依赖耳膜传递声音&#xff0c;有效地保护听力。因此&#xff0c;骨传导耳机的问世为人们提供了全新的选择。 随着骨传导耳机被越来…

Redis监听Key的过期事件

前言 试想一个业务场景&#xff0c;订单超过30分钟未支付需要做自动关单处理,修改订单状态&#xff0c;库存回退等&#xff0c;你怎么实现&#xff1f;方案一&#xff1a;可以使用定时任务扫表&#xff0c;通过支付状态和下单时间来判断是否支付过期。但是这样的方案是非常消耗…

ctfshow-web9

0x00 前言 CTF 加解密合集CTF Web合集 0x01 题目 0x02 Write Up 拿到一个站的时候一定要看robots.txt文件 访问一下 看到一个phps&#xff0c;然后下载一下 看到md5&#xff0c;参考这个https://blog.csdn.net/HAI_WD/article/details/132345156?spm1001.2014.3001.5501 …

CS5523原理图|CS5523设计电路图|MIPI转eDP信号转换方案|替代LT8911芯片方案

CS5523设计MIPI转eDP信号转换方案&#xff0c;应用DSI转eDP信号转接方案&#xff0c;使用单个1.8V电源&#xff0c;节省了成本并优化了板空间。适用于多个细分市场和显示应用&#xff0c;主板、双面板显示器和车载显示器等。CS5523设计电路图 &#xff1a; 目前市场上主流的高清…

音视频FAQ(三):音画不同步

摘要 本文介绍了音画不同步问题的五个因素&#xff1a;编码和封装阶段、网络传输阶段、播放器中的处理阶段、源内容产生的问题以及转码和编辑。针对这些因素&#xff0c;提出了相应的解决方案&#xff0c;如使用标准化工具、选择强大的传输协议、自适应缓冲等。此外&#xff0…

〔010〕Stable Diffusion 之 VAE 篇

✨ 目录 🎈 什么是VAE🎈 开启VAE🎈 下载常见的VAE🎈 对比不同VAE生成的效果🎈 什么是VAE VAE:是 Variational Auto-Encoder 的简称,也就是变分自动编码器可以把它理解成给图片加滤镜,现在的很多大模型里面已经嵌入了 VAE,所以并需要额外添加 VAE如果你发现生成的…

【第二讲---初识SLAM】

SLAM简介 视觉SLAM&#xff0c;主要指的是利用相机完成建图和定位问题。如果传感器是激光&#xff0c;那么就称为激光SLAM。 定位&#xff08;明白自身状态&#xff08;即位置&#xff09;&#xff09;建图&#xff08;了解外在环境&#xff09;。 视觉SLAM中使用的相机与常见…

Android Hook技术学习——常见的hook技术方案

一、前言 最近一段时间在研究Android加壳和脱壳技术&#xff0c;其中涉及到了一些hook技术&#xff0c;于是将自己学习的一些hook技术进行了一下梳理&#xff0c;以便后面回顾和大家学习。 本文第二节主要讲述编译原理&#xff0c;了解编译原理可以帮助进一步理解hook技术 本文…

基于springboot的企业进销存管理系统/进销存管理系统/库存管理系统

摘 要 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括企业进销存管理系统的网络应用&#xff0c;在外国企业进销存管理已经是很普遍的方式&#xff0c;不过国内的企业进销存管理可能还处于起步阶段。企业进销存管理系统具有…