分布式运算单元的原理及其实现方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分布式运算单元的原理及其实现方法
随着FPGA 集成度的不断提高,在单片FPGA 中完成复杂的数字信号处理过程变成了现实。譬如:FIR 滤波器、FFT 以及雷达信号处理中的数字脉冲压缩、数字鉴相等,都可以在单片FPGA 中实现。在基于Xilinx XC4000 系列FPGA 设计的DSP 中,分布式运算单元DA 扮演着重要的角色。本文介绍其原理及其实现方法。1 分布式运算单元原理DA 的运算原理非常简单,但是它的应用却十分广泛。一个线性时不变网络的输出可以用下式表示:
其中,y(n)为第n 时刻网络的输出;Xk(n)为第n 时刻的第k 个输入变量;Ak 为第k 个输入变量的权值。在线性时不变系统中,对于所有n 时刻,Ak
都是常量。如果该网络表现为滤波器,常量Ak 即为滤波器系数,变量Xk 为单一数据源的抽样数据(如A/D 的输出)。而在时-频转换系统中(如离散傅立叶变换及快速傅立叶变换),常数Ak 即为旋转因子值,变量Xk 为单一数据源的
数据块(多源数据的例子可以在其中,Xkb 为二进制数,即取值为0 或1;Xk0 为符号位,Xk0 为1 表示数据为负,为0 表示数据为正。将式(2)代入式(1) 可以得到:可以看出,每个方括号中进行的是输入变量的某一个数据位和所有常数(A1~Ak)的每一位进行位与并求和。而指数部分则说明了求和结果的位权。现在就可以建立查找表来实现方括号中的操作了,其查找表用所有输入变量的同一位进行寻址,如图1 中所示的DA 查找表,其宽度为对常数Ak 定义的宽度,深度为2K,K 是能够对数据源抽样数据进行处理的数据长度,
对于滤波器就表现为滤波器阶数;对于FFT 就表现为FFT 点数。这样,
式(1)所表示的方程就可以由加法、减法和二进制除法来实现了。但是,DA 仅仅是运算方程(1)的核心,要完成式(1)还需要根据系统对时间以及FPGA 资源的考虑,选择相应的方法。2 几种实现方法2.1 全并行实现方法市场上已经