da分布式算法

参考学习《数字信号处理的FPGA实现》

思想如图:

在下半部分可以看到:是将N阶的数B bit,一位一位的移入LUT然后经过累加器。其中N个数需要2.^N次方长度的LUT,B bit表示需要B个时钟完成一个数据的所有的位。但是有个疑问,为什么在累加的时候寄存器Y要往右移一位(?????)。

 

在实际的程序中直接累加:(代码如下)

 

在此程序中:N = 4, B = 4;还有需要说明的是:在上述代码中,完成bit的时钟需要2个时钟,我将其分解。当然也可以合并为一个时钟周期。

如下图:

 注:在代码2的截图中可以看出counter-2, 而代码1中counter-1, 原因是在代码1中,由y_r->y_m,之后等了一个时钟周期,即sum的值落后counter一个周期。

而在代码2中,y_r->y_m, y_m->sum的输出,即中间有二级触发器,即落后2个时钟周期。在仿真图中也可以看出。

 

已知的系数:x_0 = 3 , x_1=4 , x_2 = 6, x_3 =1

代码1仿真如下图:

验证:8*3 +  7 * 4 + 6 * 6 +  5 * 1 = 93

 代码2仿真如下图:

转载于:https://www.cnblogs.com/cornhill/p/4079243.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值