|
一般来说,完整的FPGA/CPLD设计流程包括:
(一) 电路功能设计,系统设计之前,首要的是方案论证、系统设计和FPGA芯片选择等准备工作。一般采用自顶向下的设计方法将系统分成若干基本单元,然后将基本单元划分成下一层的基本单元,一直这样就行下去,直到可以直接使用EDA元件库为止。
(二) 设计输入,常用的方法是硬件描述语言和原理图输入方式。
(三) 功能仿真,验证设计电路的逻辑功能
(四) 综合优化(synthesis),综合优化是指将hdl语言、原理图等设计输入翻译成由与、或、非门、RAM、触发器等基本逻辑单元组成的逻辑网表,并根据目标与要求(约束条件)优化生成的逻辑网表,输出edf和edn等文件,供FPGA/CPLD厂家的布局布线器进行实现。
(五) 综合后仿真,检查综合结果是否与原设计一致,仿真时把综合生成的标准延时文件反标注到综合仿真模型中,可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的仿真情况还有一定的差距,并不十分准确。
(六) 实现(Implementation),实现是将综合生成的逻辑网表配置到具体的FPGA芯片上,Xilinx的实现过程分为翻译(Translate)、映射(Map)、和布局布线(Place&Route)。布局布线是其中最重要的过程,布局是将逻辑网表中的硬件原语和底层单元合理得配置到芯片内部的硬件结构上,并且需要在速度最优和面积最优之间做出选择。布线时根据布局的拓扑结构,利用芯片内部的各种连线资源合理准确的连接各个元件。
(七) 时序仿真与验证,将布局布线后的延时信息反标注到网表中用来检测时序工作情况,时序仿真包括的延时信息最全,也最精确,能较好的反映芯片的实际工作情况。有是为了保证设计的可靠性,在时序仿真后还要做一些验证,可以用ISE内嵌的时序分析工具完成静态时序分析(STA,Static Timing Analyzer),也可以用第三方验证工具(如Synopsys的Formality验证工具,PrimeTime静态时序分析工具等)进行验证。可以用ISE内嵌的FPGA Editor和Chip Viewer观察芯片内部的连接于配置情况,或者使用ISE内嵌的ChipScope Pro进行在线逻辑分析。
(八) 调试与加载配置,就是在线调试或者将生成的配置文件写入芯片中进行测试。在ISE中对应的工具就是iMPACT。