因为手上有一块Xilinx的Spartan--3E开发板,前些日子陆陆续续学习了ISE的一般工程开发,熟悉了Xilinx ISE 10.x的软件 *** 作和开发板的使用。近来没有事情,于是乎,又把那开发板拿出来把弄把弄,开始学习Xilinx的FPGA的DSP开发设计。在这里先介绍一下Xlinx FPGA的DSP设计工具和设计流程。
近年来,随着多媒体技术和无线通信技术的迅猛发展,信息技术领域对DSP应用的需求不断增长,传统的DSP处理器(现在用得最多的当属IT的DSP,种类多,功能强大,软件技术也很成熟)虽然时钟速率很高,当DSP处理器在运行时按指令顺序执行,因而资源利用率不高,数据的吞吐量较低,难以实现高速率,高复杂度的设计。而FPGA拥有大量可编程逻辑资源,比如专用的DSP块,乘法器、双端口RAM、LUT、寄存器和DCM等,同时配合嵌入式处理器,像Altera的NiosII核、Xilinx的MicroBlaze和PowerPC405等处理器软核或硬核,可以轻松实现高数据率的数字信号处理设计,而且性能原声与传统的DSP处理器,具有可裁剪,灵活性大等特点,正越来越被人们所重视。
使用FPGA进行DSP算法设计时,传统方式下,设计者首先要进行浮点数的算法验证和仿真,然后再将其转换为定点数程序;其次将定点数算法编写成HDL代码,通过反复的功能仿真,后仿真验证程序的正确性,最终生成比特流。Xilinx公司推出的系统建模工具System Generator简化了整个DSP设计流程。设计者只需要根据设计要求咱Simulink下进行系统建模,使用System Generator工具即可自动生成可执行比特流、测试文件等,去掉繁琐的仿真、对比和验证过程。由于提供了适合硬件设计的数字信号处理(DSP)建模环境,加速、简化了FPGA的DSP系统级硬件设计。
关于System Generator的下载和安装过程,我在此就不详细说明了,在google上搜索一下就能找到的。关于System Gnenrator的使用说明我在此向大家推荐一本很好的教材--《Xilinx ISE Design suite 10.x FPGA开发指南》(人民邮电出版社、田耕 胡彬 徐文波等著)我是在学校图书馆借到的这本书,写得很详细,相当不错。我写这篇文章的之前做的实验也是参考上面做的。下面我进入正题,具体介绍我在用SystemGenerator工具完成DSP设计后使用Xilinx ISE 10.x 调用Modelsim SE 6.5进行仿真验证时遇到的的若干问题及其解决方法。
下图为我设计的用Matlab Simulink工具设计DSP工程。
在用System Generator进行FPGA的DSP模块设计是以下几点值得特别注意:
①设计的的FPGA DSP模块的全局输入和输出数据(也就是在非Xilinx库提供的数据源或者数据显示、测量终端,比如下面设计中的Step信号源和Scope示波器等)必须经过Xilinx提供的Gateway In和Gateway OUT进行采样,进而得到FPGA内部能够处理的定点数。
②每个设计中至少要包含一个System Generator图标,因为它是联系MATLAB设计与Xilinx FPGA 硬件实现的主要桥梁,通过它可以实现FPGA实现属性的设置和修改,双击该图标会出现如图-2所示的对话框。
③由于在System Generator中进行设计是需要对外部数据进行采样,所以设计中各个Gateway In和Gateway Out模块都有一个采样周期和采样后所得定点数精度的设置,另外在整个系统也必须有一个系统采样设置,多数情况下就对应着FPGA实现设计是的全局时钟,其设置在 图-2中的Simulink System Clock(sec)。这里需要特别注意,系统设置必须是整个FPGA的最高时钟,而Gateway In和Gateway Out模块的采样周期都必须是它的整数倍,否则系统会报错,设计失败。
图-1我设计的用Matlab Simulink工具设计DSP工程
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)