基于FPGA的滑动累加器的设计

项目简述

滑动累加器在算法的实现过程中经常碰见,最典型的就是均值滤波。相信大家对滑动累加的概念已经有了不错的掌握,其实就是给原始数据加一个窗然后求这个窗里面所有数据之和。本次实验我们先使用MATLAB实现滑动累加器,然后使用VIVADO实现滑动累加器,最后将两组生成的数据在MATLAB中对比从而相互验证我们实验的正确性。

本次实验所用到的软硬件环境如下:
1、VIVADO 2019.1
2、Modelsim 10.7
3、MATLAB 2015b

MATLAB代码

因为这次的项目没有任何算法的成分在里面,所以我们不再对理论部分多加赘述,这里直接给出相应的代码。

clc;
clear all;
PATH_SPD_RANGE = 6;


fid1 = fopen('data_in_fix.txt','r');
DataIn = fscanf(fid1,'%d');
h_path_pow_fix = DataIn.';
h_path_pow_win = filter(ones(1,2*PATH_SPD_RANGE+1),1,h_path_pow_fix);
h_path_pow_win = h_path_pow_win(2*PATH_SPD_RANGE+1:end);
h_path_pow_win_fix = h_path_pow_win; 


fid1 = fopen('mb_pow_win.txt','w');
fprintf(fid1,'%d\n',h_path_pow_win_fix);

代码就是如此简单,可以使用filter函数一步生成。

FPGA代码

FPGA逻辑代码

因为过程比较简单,我们这里直接给出相应的代码:


module pow_win
(
	input 						sclk				,
	input 						rst_n				,
	input  			[15:0]		POUT				,
	input  						POUT_EN				,		
	output wire 	[19:0]		pow_win_data		,
	output reg 					pow_win_en
);
 
//========================================================================================\
//**************Define Parameter and  Internal Signals**********************************
//==========================================================&#
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值