多相结构采样率变换器的FPGA实现
时间:02-22
来源:互联网
点击:
4 FPGA设计与验证
由于整数倍抽取和内插的实现过程可以包含在分数采样率变换器的实现过程中,因此下面只讨论I、D互质的有理数采样率变换器的实现。
根据图7的多相结构,对于I、D互质的分数抽样率转化系统,可以分解为四个模块:
(1)输入与延时链模块。这部分的时钟周期应该为T1。
(2)R0~RI-1的延时与抽取模块。注意:抽取器只是在第0,D,……,N×D个时钟周期让信号通过,其他时钟周期阻隔信号。若已知延时与抽取链的功能,则可用一个如图8(a)所示的多相选择开关来实现,而图8(b)给出了该电路的一种实现方案,其中TClk_T4 =DTclk_T1,T4为模块3的时钟周期。
(3)本系统最为关键的部分是第三部分。该部分是运算的主体部分,对整个系统的资源利用率和时钟性能有很大的影响。该模块需要实现的是I×D个FIR滤波器。对于给定的设计,这些滤波器的系数是常数,可由如下方法得到:
①根据低通滤波器的要求,用Matlab的FDAtool计算出滤波器的系数,并使其阶数N=M×I×D,M为正整数,可根据滤波器的需要选取。
②利用多相分解公式计算每个滤波器的系数。
③把所得到的数字进行定点化处理(比如系数同乘以2 048,取整,待计算出结果后右移11位)。
对于常系数的FIR滤波器,在FPGA实现时,有多种可以选择的方式以降低复杂性。在本设计中,采用简化的加法器图[3]来实现,避免了使用资源代价较大的通用乘法器,同时提高了系统的整体性能。例如,在测试系统的设计中,需要计算132×x(n)、28×x(n-1)、126×x(n-2)、13×x(n-3),用图9方案来实现时,将比用四个通用乘法器节省更多的LE资源,并且使最高的时钟频率得到了提高。表1给出了一个测试系统的资源与性能对比(使用了Altera公司的EP1C3T144C6芯片及Quartus II 5.1版本进行综合)。
(4)第四部分是与第二部分类似的模块。零内插器的特点是某个时钟周期有用信号通过,其余时钟周期通过零值,因而内插与延时相加模块也可用一个多相选择开关来实现。内插与延时相加模块实现电路图如图10所示。
图11给出了一个D=3、I=4、N为12时的分数采样率变换的部分仿真结果(Modelsim 6.1)。其中,滤波器系数定点化为12位补码,输入、输出数据为12位补码整数, 测试输入序列为20kHz的正弦波波形序列,采样率为600kHz,输出为800kHz采样的正弦波序列。通过把输入输出序列保存并做FFT变换,可以得到两者的实际频率相同的结论。
利用FIR滤波器的多相分解及多采样率网络变换技术,本文介绍了一种有理数采样率变换器的高效多相结构,并结合FPGA芯片的结构进行了实现与优化。文中的一些方法也适用于其他多采速率系统的设计。
由于整数倍抽取和内插的实现过程可以包含在分数采样率变换器的实现过程中,因此下面只讨论I、D互质的有理数采样率变换器的实现。
根据图7的多相结构,对于I、D互质的分数抽样率转化系统,可以分解为四个模块:
(1)输入与延时链模块。这部分的时钟周期应该为T1。
(2)R0~RI-1的延时与抽取模块。注意:抽取器只是在第0,D,……,N×D个时钟周期让信号通过,其他时钟周期阻隔信号。若已知延时与抽取链的功能,则可用一个如图8(a)所示的多相选择开关来实现,而图8(b)给出了该电路的一种实现方案,其中TClk_T4 =DTclk_T1,T4为模块3的时钟周期。
(3)本系统最为关键的部分是第三部分。该部分是运算的主体部分,对整个系统的资源利用率和时钟性能有很大的影响。该模块需要实现的是I×D个FIR滤波器。对于给定的设计,这些滤波器的系数是常数,可由如下方法得到:
①根据低通滤波器的要求,用Matlab的FDAtool计算出滤波器的系数,并使其阶数N=M×I×D,M为正整数,可根据滤波器的需要选取。
②利用多相分解公式计算每个滤波器的系数。
③把所得到的数字进行定点化处理(比如系数同乘以2 048,取整,待计算出结果后右移11位)。
对于常系数的FIR滤波器,在FPGA实现时,有多种可以选择的方式以降低复杂性。在本设计中,采用简化的加法器图[3]来实现,避免了使用资源代价较大的通用乘法器,同时提高了系统的整体性能。例如,在测试系统的设计中,需要计算132×x(n)、28×x(n-1)、126×x(n-2)、13×x(n-3),用图9方案来实现时,将比用四个通用乘法器节省更多的LE资源,并且使最高的时钟频率得到了提高。表1给出了一个测试系统的资源与性能对比(使用了Altera公司的EP1C3T144C6芯片及Quartus II 5.1版本进行综合)。
(4)第四部分是与第二部分类似的模块。零内插器的特点是某个时钟周期有用信号通过,其余时钟周期通过零值,因而内插与延时相加模块也可用一个多相选择开关来实现。内插与延时相加模块实现电路图如图10所示。
图11给出了一个D=3、I=4、N为12时的分数采样率变换的部分仿真结果(Modelsim 6.1)。其中,滤波器系数定点化为12位补码,输入、输出数据为12位补码整数, 测试输入序列为20kHz的正弦波波形序列,采样率为600kHz,输出为800kHz采样的正弦波序列。通过把输入输出序列保存并做FFT变换,可以得到两者的实际频率相同的结论。
利用FIR滤波器的多相分解及多采样率网络变换技术,本文介绍了一种有理数采样率变换器的高效多相结构,并结合FPGA芯片的结构进行了实现与优化。文中的一些方法也适用于其他多采速率系统的设计。
FPGA DSP 滤波器 低通滤波器 电路 Altera Quartus 电路图 仿真 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 采用EEPROM对大容量FPGA芯片数据实现串行加载(03-18)
- 赛灵思:可编程逻辑不仅已是大势所趋,而且势不可挡(07-24)