FPGA器件的开发平台与MATLAB接口仿真
发布时间:2008/6/3 0:00:00 访问次数:669
引言
现场可编程逻辑门阵列fpga器件的出现是超大规模集成电路技术和计算机辅助设计技术发展的结果。fpga器件集成度高、体积小,具有通过用户编程实现专门应用功能。它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直到达到预期的结果。目前使用最多的quartus ii 软件支持几乎所有的eda工具,并且可以通过命令行或tcl脚本与第三方eda工具之间进行无缝连接。但在很多工程设计应用中,由fpga器件完成的主程序中只完成大量的数学运算,程序调试时以二进制输出的信号可视性差,给设计人员进行仿真、调试带来了很多不便。对于很多工程设计人员来说matlab是一种熟悉的具有强大的运算功能和波形仿真、分析功能的软件,如果能将fpga与matlab接口,就可以快速、准确、直观地对fpga程序进行校验和仿真,尤其在波形信号处理等工程应用领域具有实际意义。
quartus ii 开发软件
altera公司的quartusii软件提供了可编程片上系统(sopc)设计的一个综合开发环境。quartus ii 开发工具人机界面友好、易于使用、性能优良,并自带编译、仿真功能。quartusii软件支持vhdl和verilog硬件描述语言的设计输入、基于图形的设计输入方式以及集成系统级设计工具。quartusii软件可以将设计、综合、布局和布线以及系统的验证全部都整合到一个无缝的环境之中,其中也包括和第三方eda工具的接口。quartusii设计软件根据设计者需要提供了一个完整的多平台开发环境,它包含整个fpga和cpld设计阶段的解决方案。图1说明了quartusii软件的开发流程。
在实际应用设计中,对程序原理性及可执行性的验证主要集中在程序修改阶段,尤其在处理的数据复杂、繁多时,quartus ii自带的波形输入仿真就很难实现程序的验证,而且输出的数据不能方便的以波形图示直观的呈现,给程序设计者在校验程序阶段带来了很多的不便。再有,在很多数字电路设计中,考虑成本的问题,fpga实现的往往是设计的核心部分,而很多的外围电路如a/d转换器、d/a转换器等仍然使用传统的接口芯片来实现。而quartusii 设计只是针对数字信号,并不支持模拟量的输入。而仅仅为了便于程序的验证而用fpga实现这些外围电路,不但会大大延长程序的开发周期,更会增大开发的成本。而matlab具有强大的运算功能,可以容易的实现a/d、d/a转换等外围电路功能,并能以波形形式将结果直观地呈现,极大地方便了程序设计人员设计应用系统。
quartusii与matlab的接口实现
接口原理
vhdl程序从根本上讲就是将一些现有的数据进行处理,并输出预期的数据。quartusii 软件的波形文件(.vwf文件)可以根据设计人员的要求灵活输入。但在大多数情况下需要仿真的波形数据数量庞大,这样的输入方式就明显不能满足仿真的要求了。而上述提到的一些外围电路的作用也是将需要处理的数据输入到程序中,并将处理过的数据输出到指定的装置。根据这一原理,用一个输入、输出寄存器就可以方便的实现与matlab之间的接口了。quartusii工具中提供了很多种类的寄存器宏模块,并能根据用户的要求进行编辑。使用这些宏模块可以很容易地实现与matlab之间的接口。下面就是几种ram宏模块:
接口的实现数据的输入
很多fpga程序在仿真时,需要输入特定条件下的数值。程序设计时,可以在输入端口前加一个预置的存储器,那么初始数据的输入就变成了该寄存器的初始化。一般情况下,这些初始数据很容易用matlab软件经过计算实现。quartusii中提供了两种寄存器的初始文件格式,.mif文件和.hex文件。由matlab生成的数据可以方便的根据指定路径加载到寄存器模块中。
数据的输出
数据输出和数据输入的原理是相同的。将寄存器中的.mif文件或.hex文件导出,并加载到matlab中相应的变量中,matlab的波形仿真功能就可使设计人员方便直观地观察程序结果了,这样大大地方便了设计人员在设计早期对程序进行校验。
应用举例
这里以一个简单的fft谐波分析过程的设计为例,说明如何在fpga设计中灵活地应用matlab来完成设计的初步仿真和验证。fpga的快速运算虽然能更好的实现了fft,但大多数fft设计并不能预知处理对象的准确波形,而quartusii更不能提供直观的结果观察。为了验证设计的可行性,在设计时,在输入、输出端分别设置一个数据存储器,数据存入的时序可以根据设计的要求灵活控制,存储需要的数据。需要注意的一点就是,对于大量数据的波形验证,存储器的加入会使设计的资源变大,初步验证时需使用比预计的容量大的器件。在程序的初步验证之后,就可以在预定的器件中
引言
现场可编程逻辑门阵列fpga器件的出现是超大规模集成电路技术和计算机辅助设计技术发展的结果。fpga器件集成度高、体积小,具有通过用户编程实现专门应用功能。它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直到达到预期的结果。目前使用最多的quartus ii 软件支持几乎所有的eda工具,并且可以通过命令行或tcl脚本与第三方eda工具之间进行无缝连接。但在很多工程设计应用中,由fpga器件完成的主程序中只完成大量的数学运算,程序调试时以二进制输出的信号可视性差,给设计人员进行仿真、调试带来了很多不便。对于很多工程设计人员来说matlab是一种熟悉的具有强大的运算功能和波形仿真、分析功能的软件,如果能将fpga与matlab接口,就可以快速、准确、直观地对fpga程序进行校验和仿真,尤其在波形信号处理等工程应用领域具有实际意义。
quartus ii 开发软件
altera公司的quartusii软件提供了可编程片上系统(sopc)设计的一个综合开发环境。quartus ii 开发工具人机界面友好、易于使用、性能优良,并自带编译、仿真功能。quartusii软件支持vhdl和verilog硬件描述语言的设计输入、基于图形的设计输入方式以及集成系统级设计工具。quartusii软件可以将设计、综合、布局和布线以及系统的验证全部都整合到一个无缝的环境之中,其中也包括和第三方eda工具的接口。quartusii设计软件根据设计者需要提供了一个完整的多平台开发环境,它包含整个fpga和cpld设计阶段的解决方案。图1说明了quartusii软件的开发流程。
在实际应用设计中,对程序原理性及可执行性的验证主要集中在程序修改阶段,尤其在处理的数据复杂、繁多时,quartus ii自带的波形输入仿真就很难实现程序的验证,而且输出的数据不能方便的以波形图示直观的呈现,给程序设计者在校验程序阶段带来了很多的不便。再有,在很多数字电路设计中,考虑成本的问题,fpga实现的往往是设计的核心部分,而很多的外围电路如a/d转换器、d/a转换器等仍然使用传统的接口芯片来实现。而quartusii 设计只是针对数字信号,并不支持模拟量的输入。而仅仅为了便于程序的验证而用fpga实现这些外围电路,不但会大大延长程序的开发周期,更会增大开发的成本。而matlab具有强大的运算功能,可以容易的实现a/d、d/a转换等外围电路功能,并能以波形形式将结果直观地呈现,极大地方便了程序设计人员设计应用系统。
quartusii与matlab的接口实现
接口原理
vhdl程序从根本上讲就是将一些现有的数据进行处理,并输出预期的数据。quartusii 软件的波形文件(.vwf文件)可以根据设计人员的要求灵活输入。但在大多数情况下需要仿真的波形数据数量庞大,这样的输入方式就明显不能满足仿真的要求了。而上述提到的一些外围电路的作用也是将需要处理的数据输入到程序中,并将处理过的数据输出到指定的装置。根据这一原理,用一个输入、输出寄存器就可以方便的实现与matlab之间的接口了。quartusii工具中提供了很多种类的寄存器宏模块,并能根据用户的要求进行编辑。使用这些宏模块可以很容易地实现与matlab之间的接口。下面就是几种ram宏模块:
接口的实现数据的输入
很多fpga程序在仿真时,需要输入特定条件下的数值。程序设计时,可以在输入端口前加一个预置的存储器,那么初始数据的输入就变成了该寄存器的初始化。一般情况下,这些初始数据很容易用matlab软件经过计算实现。quartusii中提供了两种寄存器的初始文件格式,.mif文件和.hex文件。由matlab生成的数据可以方便的根据指定路径加载到寄存器模块中。
数据的输出
数据输出和数据输入的原理是相同的。将寄存器中的.mif文件或.hex文件导出,并加载到matlab中相应的变量中,matlab的波形仿真功能就可使设计人员方便直观地观察程序结果了,这样大大地方便了设计人员在设计早期对程序进行校验。
应用举例
这里以一个简单的fft谐波分析过程的设计为例,说明如何在fpga设计中灵活地应用matlab来完成设计的初步仿真和验证。fpga的快速运算虽然能更好的实现了fft,但大多数fft设计并不能预知处理对象的准确波形,而quartusii更不能提供直观的结果观察。为了验证设计的可行性,在设计时,在输入、输出端分别设置一个数据存储器,数据存入的时序可以根据设计的要求灵活控制,存储需要的数据。需要注意的一点就是,对于大量数据的波形验证,存储器的加入会使设计的资源变大,初步验证时需使用比预计的容量大的器件。在程序的初步验证之后,就可以在预定的器件中