FPGA的开发流程
FPGA的开发流程即是利用EDA开发软件以及编程工具对FPGA芯片进行开发的过程。(1)功能定义及器件选型
在FPGA设计项目开始之前,需要进行系统的功能定义和模块的划分。然后根据任务要求(系统的功能和复杂度),对工作速度和器件本身的资源,成本,以及连线的可布性进行评估,从而选择合适的设计方案和器件类型。最后利用自顶向下的设计方法层层划分知道可以直接使用EDA元件库为止。
(2)设计输入
设计输入是将所设计的系统或电路利用开发软件要求的某种形式表示出来,并输入给EDA工具的过程。目前有两种方式:硬件描述语言与原理图输入,原理图输入虽然直接且易于仿真,但是效率极低,不易于维护,不利于模块构造与重用,可移植性较差。而利用IEEE的标准语言VHDL与HDL进行设计时,会发现:语言与芯片工艺无关,当自顶向下进行设计时,便于模块的划分与移植,具有很强的逻辑描述与仿真功能,输入效率极高。
(3)功能仿真
功能仿真也称为前仿真,即在编译前对用户所设计的电路进行逻辑功能验证,此时是没有任何延迟信息的,仅对初步的功能进行检测。仿真前,要先利用波形编辑器和HDL等建立波形文件和测试向量,仿真结果会生成报告文件和输出信号波形,从中便可以观察各个节点信号的变化,如果出行错误,返回设计修改逻辑设计。常用的工具有Modelsim,VCS,以及NC-Verliog。
(4)综合优化
综合的含义就是将高级层次的描述转化为低级层次的描述,就目前层次来看,综合优化是指将设计输入编译成基本逻辑单元组成 的逻辑连接网表,而非真实的门级电路,真实具体的 门级电路需要利用FPGA制造商的布局布线功能,根据综合后的门级网表文件来产生,常用的综合工具有Synplify Pro软件以及各个FPGA厂家推出的综合开发工具。
(5)综合后仿真
综合后仿真检查综合结果是否和原设计一致。仿真时,将综合生成的标准延时文件反标注到综合仿真模型中,可以估计门延时带来的影响,但是无法估计线延时,因此和布线后的实际情况有一定的差距。一般的设计可以省略这一步,但是在布局布线后发现电路结构与设计意图不符,需要到这一步来确认问题所在,注意,功能仿真的介绍的软件工具一般都支持综合后仿真。
(6)布局布线与实现
布局布线可以理解为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能链接的布线通道进行连线,并产生相应文件;实现是将综合生成的逻辑网表配置到具体的FPGA芯片上,布局布线是其中最重要的一环。
布局将逻辑网表中的硬件原语和底层单元合理的配置到芯片内部的固有硬件结构上,需要在速度最优与面积最优之间做出选择;布线根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确的连接各个元件。
目前,FPGA的结构非常复杂,特别是在有时序约束条件时,需要利用时序驱动的引擎进行布局布线。布线结束后,软件工具会自动生成报告,提供有关设计中各部分的资源使用情况。由于只有FPGA生产商对芯片结构最为了解,所以布局布线必须选择芯片开发商提供的工具。
(7)时序仿真
时序仿真即后仿真,目的是将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束条件或器件固有规则)现象,时序仿真包含的延时信息最全,可以较好地反应芯片大实际工作情况。
不同芯片的内部延时不一样,不同的布局布线方案会给延时带来不同的影响,因此布局布线后,通过对系统和各个模块进行时序仿真,分析其时序关系,估计系统性能,检查消除竞争冒险非常有必要。
(8)板级仿真与验证
板级仿真主要用于高速电路设计中,对高速系统的信号完整性,电磁干扰等特征进行完整性分析,一般都以第三方工具进行仿真与验证。
(9)芯片编程与调试
芯片编程是指产生使用的数据文件(位数据流文件),然后将编程数据下载到FPGA芯片中,注意芯片编程需要满足编程电压,编程时序以及编程算法等条件。内嵌的在线逻辑分析仪是FPGA主要的调试工具,他们只需要占用芯片的少量逻辑资源,实用价值很高。 FPGA的开发流程 FPGA的开发流程FPGA的开发流程
页:
[1]