微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > FPGA和CPLD > 多种EDA工具的FPGA协同设计

多种EDA工具的FPGA协同设计

时间:09-01 来源:互联网 点击:
2.多种EDA工具协同设计

在FPGA设计的各个环节都有不同公司提供不同的EDA工具。每个EDA工具都有自己的特点。一般情况,由FPGA厂商提供的集成开发环境,如Quartus II,在设计综合和设计仿真环节都不是非常优秀,因此一般都会提供第三方EDA工具的接口,让用户更方便地利用其他EDA工具。在这方面,作为EDA集成开发环境的Quartus II做得很好,不仅可以产生并识别EDIF网表文件、VHDL网表文件和Verilog HDL网表文件,为其他EDA工具提供了方便的接口,而且可以在Quartus II集成环境中自动运行其他EDA工具。 在FPGA的开发中,如果选用Altera公司器件的话,Quartus II+FPGA Compiler II+Modelsim的工具组合是非常理想的选择。如图2所示,使用这三个EDA工具对实例进行协同设计的流程。下面,我们将详细介绍这三个工具的协同设计。



(1)设计输入和综合

在FPGA Compiler II中编辑“s_to_p.vhd”设计文件,并进行逻辑分析、综合和优化。使用FPGA Compiler II综合时,我们能够设置综合的各种约束条件及优化重点,并选择不同厂家的器件。在设计中,我们使用File菜单中的“Design Wizard”,创建项目,添加“s_to_p.vhd”设计文件,并选择Altera公司FLEX10KE系列型号为EPF10K30ETC114-1的器件为目标器件,在设置完成后,软件将自动开始综合和优化。综合、优化后,我们可以查看结果和综合所得到的原理图,看看是否能满足要求。接着,在Synthesis菜单中选择“Export Netlist...”打开导出网表的对话框。在这里,可以设置和导出用于布局布线和前仿真的网表。在项目对应的文件夹中,“s_to_p.edf”是用于Quartus II布局布线的,而“s_to_p.vhd”(注意:这个文件和源文件具有相同的名字)则用于Modelsim前仿真的。

(2)功能仿真和前仿真

使用Modelsim来进行功能仿真和前仿真。在Modelsim进行功能仿真和前仿真的操作一摸一样,只是输入的源程序不同罢了。首先,我们要创建项目,选择对应的工作库,并将源文件加入到项目中。接着选择Compile菜单中的“Compile...”对源文件进行编译,并编写测试台(可以是Macro文件,也可以是TestBench)。最后,选择Simulate菜单中的“Simulate...”,在“Simulate”对话框中选择仿真需要实体,采用对应的测试台进行仿真,验证系统的逻辑功能及综合后的逻辑功能的正确性。

(3)布局布线和时序分析

如果仿真结果没有问题,接下来的工作就是布局布线。在布局布线之前,先对Quartus II的设计环境进行设置。在Project菜单中选择“EDA Tool Setting...”,打开EDA工具设置对话框。在这里,我们能选择设计输入和综合工具,仿真工具,时序分析工具和版图级工具。现在,我们关心的是设计输入和综合工具还有仿真工具,分别在对应的列表框中选择FPGA Compiler II和Modelsim。注意仿真工具还要确定输出语言。布局布线的输入源文件是经FPGA Compiler II综合、优化的输出文件。在这里,FPGA Compiler II 的输出文件“s_to_p.edf”即是Quartus II布局布线的输入文件。对这个文件进行编译和时序分析,就可以得到布局布线后的用于时序仿真和编程下载的文件。观察编译结果,发现时序分析中fmax为204.08MHz,就这个指标而言,采用FPGA Compiler II综合、优化显然比采用Quartus II综合的效果要好。编译输出的文件中有几个是下面步骤要用到的:一个是时序仿真文件,软件将这些文件都存于项目文件夹下面的“Simulation”文件夹中,包括描述电路的逻辑结构的网表文件“s_to_p.vho”和对应的延时标准格式文件“s_to_p_vhd.sdo”;另一个是编程下载文件,包括不同格式的“s_to_p.sof”和“s_to_p.pof”。

(4)时序仿真

进行时序仿真前,我们要确定已经获得针对特定FPGA输出网表文件,对应延时标准格式文件,以及厂家提供的与特定FPGA对应的库文件。其中网表文件和标准延时格式文件是布局布线时产生的文件,而库文件则是由厂商提供,在Quartus II软件的安装目录中可以找到。本设计中,网表文件时“s_to_p.vho”,延时标准格式文件是“s_to_p_vhd.sdo”,并由于选用Altera公司FLEX10KE系列的EPF10K30ETC114-1为目标器件,所以库文件是“FLEX10KE_ATOMS.VHD”和“FLEX10KE_COMPONENTS.VHD”。 确定输入文件后,我们就能利用Modelsim进行时序仿真。

首先,建立项目,将上述文件添加到项目中去,并在“work”库中新建 “flex10ke” 库。 接着,打开“Compile”对话框,先在“flex10ke” 库中编译文件“flex10ke _atoms.vhd”和“flex10ke _compomnets.vhd”,再在“work”库中编译文件“s_to_p.vho”(注意一定要弄清楚编译次序)。编译完成之后,我们就可以进行仿真了。时序仿真与功能仿真和前仿真不同的是时序仿真需要加入延时标准格式文件。打开“Simulate”对话框,选择要仿真的实体“s_to_p”,并在选择SDF标签,加入延时标准格式文件是“s_to_p_vhd.sdo”。其他的操作和功能仿真和前仿真相同。从时序仿真的结果,我们可以进行最接近硬件的一次设计验证。

(5)编程下载

利用集成开发环境Quartus II中的编程工具,根据外围硬件电路的情况,设置编程模式,我们能很方便地完成编程下载工作,在硬件上对设计进行验证。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top