较优累加器的运算形式是串行,而优化累加器的运算形式是并行。
可以很明显看出,优化的累加器比较优的累加器更能减少资源占用,运行效率也可大大提高。
4.4 Quatus模块化设计法
Quatus仿真软件的MegaWizard Plug-In Manag-er中提供了parallel_add模块,用户可以自由设计输入数据位宽,累加数据个数,定义累加输入数据类型,模块最终自动生成适当位宽的数据输出(考虑了所有的数据溢出)。
与上面的累加器设计比较,这样的设计很方便,可读性强,程序简练。实际中逻辑单元占用也不是很多,只比上面多出10%左右。所以,如果不是特别关注资源占用问题,这样的设计也不失为一种好方法。
5 仿真实验
笔者通过Quatus仿真实验验证了优化数字匹配滤波器的性能。
仿真中采用ALTEra公司的FPGA,利用6级线性移位反馈寄存器生成长度为63的m序列。
图3是数字匹配滤波器的2个周期的相关同步过程,图4是放大后的相关同步。
在本次仿真中,clk为时钟信号,address为地址信号,输入信号为din,数字匹配滤波器抽头信号为m。为了方便起见,做了2个只读存储器din_rom和m_rom。din_rom中存储了63 bit的m序列的二进制补码表示作为输入,其中0表示11,l表示Ol,16进制表示分别为3和l。m_rom中存储了63 bit m序列的二进制码元,作为数字匹配滤波器的抽头同步模块的输入。result为计算出的相关值,tongbu为同步信号。
每来一个时钟脉冲,地址加1,依次读取din_rom中的数据,图4中的地址为10进制表示。m_rom地址始终置“0”,图3和图4中是m_rom中二进制数据的16进制表示。
63级移位滤波器同时做补码运算,当m_rom输出的二进制矢量位为1时,不改变相应位原补码值,矢量位为0时,求其相反数(-1的相反数为1,1的相反数为-1)的补码值。将相关门限设为63,当同步未完成时,相关值信号result的16进制表示为FF,二进制即为1111lll(1表示正数);当同步完成时,相关值信号result的16进制表示为3F,二进制即为0111111(0表示正数)。
每个时钟脉冲,计算1次相关系数,并和判决门限比较,高于门限表示完成同步捕获,否则表示没有同步,继续运算,直到达到同步为止。
6 结束语
本文从理论和实践方面分别讨论了数字匹配滤波器在设计中遇到的问题,仿真实验证明该设计在节省硬件资源和提高工作效率方面都有其突出的优点。
本文关键字:滤波器 DSP/FPGA技术,单片机-工控设备 - DSP/FPGA技术
上一篇:基于FPGA设计航空电子系统