基于FPGA设计DSP的实践与改进 当设计的系统需要对数字信号进行处理时,常采用通用 DSP(Digital Signal Process)处理器,这样的设计方案通用性好,且还有各种较为成熟的 DSP算法可以参考。但是,这类方案通常是双核设计,即采用通用控制器(MCU)加上通用 DSP处理器实现,在实现系统时开发的复杂程度、难度都较大,也难以满足定制特殊处理的需要。为了解决这些问题,人们开始寻求新的设计方案,基于通用处理器加上FPGA(大规模可编门阵列)的架构方案逐渐成为主流,在新的方案中通用控制器完成控制和管理功能,专用的数字信号处理和组合逻辑功能由 FPGA实现,使得设计开销与复杂程度明显降低。
1 现行设计流程的不足
使用“MCU+FPGA”架构方案的开发流程如图 1所示 [1]。系统的设计之初是先由系统结构设计小组制定出系统模型方案,并确定模型仿真正确之后将系统结构的设计方案提交给FPGA设计人员,并依据系统模型用硬件描述语言创建系统同时创建测试平台,比较系统级仿真结果与模型设计是否相符,当不相符时则需要进行修改,并重新进行仿真验证。在这种流程的开发中必定会存在很多的迭代与间歇。
分析其原因在于系统结构设计人员与 FPGA设计人员的工作有重复与制约性。二者的工作同样是进行系统设计,并且都要进行仿真,只不过前者是进行系统的软件仿真,后者进行系统的硬件仿真。另外系统的建立需要几位工程师的协同工作。如果当 FPGA设计人员验证出系统设计有误时,还要回转给系统结构设计人员等待修改完再重新进行硬件系统设计与仿真。
2 设计流程的改进
2.1 EDA设计工具
1) MATLAB的 Simulink环境
MATLAB是 MathWorks公司开发的功能强大的数学分析工具。并且被广泛应用于科学计算和工程计算中[2]。Simulink是基于 MATLAB平台推出的一个强大的动态系统仿真环境。它以图形化模式进行系统建模仿真,可以快速完成系统的设计。并且具有强大的代数、微分等模型系统的求解器[3]。 2) DSP Builder
DSP Builder是 Altera公司开发了基于 Simulink开发的 DSP设计工具。在 Simulink中作为一个工具箱出现。这样使得用 FPGA设计DSP系统完全可以通过 Simulink的图形化界面进行,只要简单地进行 DSP Builder工具箱的模块调用即可。从而使得一个复杂的电子系统设计变得相当容易而且直观。同时加速了 FPGA实现DSP 的开发流程 [4]。
2.2 改进开发流程
采用上述 EDA设计工具使得在系统在设计阶段,由系统工程师负责系统的模型设计,并且在软件的辅助下,进行硬件描述语言的代码自动生成,最终可以下载到 FPGA中检验设计效果。即将系统结构设计人员与 FPGA设计人员的工作合并从而改进的设计流程。如图 2所示。
设计流程的开始是系统结构设计人员基于 Simulink使用 DSP Builder工具箱提供的模块建立系统模型。工具箱中的模块涵盖了算术和存储功能,并且对其技术参数、数据格式、数据类型和总线宽度等属性进行设置。系统模型设计完成后就进入仿真环节。这是基于系统的算法级仿真,设计者甚至不用关心目标硬件系统的属性。如果仿真结果没有得到预期设计的结果,可以很快通过修改模型进行调整。当仿真结束后使用 Signal Compiler模块进行系统模型的 Simulink模型文件(.mdl文件)到硬件描述语言的转换。这个过程将自动生成硬件描述语言的代码。之后通过综合以后产生出原子级网表文件(底层电路描述文件)。然后调用 Quartus II 的编译器生成可以下载的门级网表文件,最后下载到 FPGA上就实现了 DSP系统的硬件化过程。操作流程如图 3所示。
3 实践与分析
3.1 AM调制模型的 FPGA实现
3.2.1 AM调制原理 调制器与解调器是通信设备中的重要部件。所谓调制,就是用调制信号去控制载波某个参数的过程[5]。相关的术语如下:
调制信号:由原始信号转变成的低频信号,可以是模拟信号,也可是数字信号。通常用数学符号uΩ 表示。•
载波:未受调制的高频震荡信号。载波可以是正弦波也可以是非正弦波(方波、三角波、锯齿波)。用uC表示。•
已调波:受调制后的振荡波,具有调制信号的特征。• 设载波电压为: uC =UC cosωct (1)
调制电压为: uΩ= UΩ cos Ωt (2)
3.2.2 模型建立
基于本文上述的理论建立出 AM调幅模型。其中的两个子系统分别是用上述的 DDS模型建立的载波与调制波模块,在 Simulink中得到仿真结果如图 4所示。
3.2.2将模型文件转化为硬件描述语言
当 DSP Builder模型与仿真都正确后就可以进入模型向硬件描述语言的过程了。加入Signal Compiler模块,点击执行将模型文件转化为硬件描述语言。转换后 DSP Builder的Signal Compiler模块会自动生成 Quartus II的工程,其中的代码已经依据模型自动生成并建立了顶层模块[6]。如图 5。增加相应的输入与输出,锁定引脚后就可以下载了。
下载到 FPGA中,连接示波器,观察到如图 6所示图像。
4 结语
从实践结果和系统的总体设计方案可以看出,改进的设计流程使得设计人员可以借助Simulink进行灵活的系统模型设计并且可以通过 MATLAB强大的计算能力进行系统级的仿真。由DSP Builder进行硬件描述语言的自动生成让设计者可以更加专注于系统的整体设计,提高了开发效率和系统建立质量。
|