芯片存储器设计
合理的数据存储结构不仅有利于充分利用硬件资源,也为优化计算流程和提高处理速度创造条件。图2 为改进的递归数字滤波法信号流程图(直接型) ,它清楚地描述算法的步骤及实现该算法需要存储的参数。

由于计算结果为最大绝对冲击加速度响应谱,除图2 所示的参数外,还需要存储Xf i ( k) 的最大绝对值| Xf i( k) | max。
式(1) 中滤波系数B0i 、B1i 、B2i 、Q1i 、Q2i 是决定滤波器性能的基本参数,采用独立的ROM存储,每次FPGA 芯片加电时ROM初始化。Xf i( k - 1) 、Xf i( k - 2) 、| Xf i( k) | max如果共用一个存储器,控制电路设计简单,但Xf i( k - 1) 和Xf i( k - 2) 动态范围远远大于| Xf i( k) | max ,与| Xf i( k) | max存储在同一存储器中会造成存储资源浪费,因此,设计了两个RAM将它们分开存储。表2 是根据表1 所示参数设计的存储器,该方案既保证了存储资源的有效利用,控制电路也相对简单。

Core 模
块设计
Core 模块主要完成最大绝对冲击加速度响应谱计算。按表1 所示的设计参数,当滤波器中心频率为1/ 12 th 倍频程(Octave) 时,每采样一个u ( k) ,Core 模块需要按式(1) 计算出Nf = 102 个单自由度系统最大绝对加速度。
Core 模块采用流水运算计算Nf 个单自由度系统的最大绝对加速度。每一个单自由度系统最大绝对加速度的计算分(1) 、(2) 两拍流水完成, (1) 、(2) 两拍流水又各有自已独立的5 个节拍。设计了一个25 位乘法器和一个50 位累加器,用5 个芯片工作时钟周期,完成一个单自由度系统最大绝对冲击加速度的计算。下面以计算固有频率为f i 的单自由度系统最大绝对加速度为例,介绍Core 模块工作原理。
(1) 分5 步完成5 次乘及4 次累加操作,流程如下:
步骤1 u( k) 与B0i 相乘,累加器初始值为u( k) ×B0i ;
步骤2 u ( k - 1) 与B1 i 相乘,累加器累加步骤2 计算结果;
步骤3 u ( k - 2) 与B2 i 相乘,累加器累加步骤3 计算结果;
步骤4 Xf i( k - 1) 与Q1 i 相乘,累加器累加步骤4 计算结果;
步骤5 Xf i( k - 2) 与Q2 i 相乘,累加器累加步骤5 计算结果;
(2) 分5 步完成数据的准备和后处理,流程如下:
步骤1 读出f i - 1的Xf i( k - 1) ;
步骤2 f i - 1的Xf i( k - 1) 写入寄存器、科学计数法转换及数据截取、f i - 1的Xf i - 1 ( k) 写入f i - 1的Xf i - 1( k - 1) 位置、计算Xf i( k) 的绝对值| Xf i( k) | 并锁存结果;
步骤3 将f i - 1的Xf i - 1( k - 1) 写入Xf i - 1( k - 2) 位置、从R- XMA X中读取f i 的| Xf i( k) | max ;
步骤4 比较| Xf i( k) | 与| Xf i( k) | max大小,将大数写回R- XMAX ;
步骤5 从R- XMAX读取下一个要输出的最大绝对冲击加速度值,写入输出缓冲器。
流水运算保证5 个时钟周期计算一个单自由度系统的最大绝对响应加速度。设冲击信号处理芯片内部工作时钟频率为f m ,则计算Nf 个单自由度系统最大绝对响应加速度的时间Ts 为
Ts = (5 ×Nf ) / f m (2)
设冲击信号的采样频率为f s ,由式(2) 可得f s 与f m 的关系为
f s = f m/ (5 ×Nf ) (3)
由式(3) 可见,改变芯片的内部工作时钟频率即可改变冲击信号的采样频率。
遥测系统可通过冲击信号处理芯片的采样频率设置端口,在线控制冲击信号处理芯片内部的时钟分频器,设置冲击信号的采用频率,满足不同冲击信号处理器对峰值检测误差的要求和处理器功耗的限制。
芯片仿真结果分析
冲击信号处理芯片基于FPGA 实现,并按文献规定的最大绝对冲击加速度响应谱验证要求,对冲击信号处理芯片进行了各级设计仿真。
图3 为冲击信号处理芯片仿真结果之一。图3 中f 为单自由度系统的固有频率。图3 (a) 为峰值150 (8 位编码) ,持续时间0. 125 s ,以512 Hz/ s 采样的64 点半正弦输入波。图3 (c) 为计算机计算的最大绝对冲击加速度响应谱, X 为最大绝对加速度。图3 (d) 为本文设计的冲击信号处理芯片计算的最大绝对冲击加速度响应谱, Xs 为最大绝对加速度。图3 (b) 是Xs 与X 的差值。仿真结果符合文献对最大绝对冲击加速度响应谱的验证要求。