(接上帖)FPGA一般流程详细说明
FPGA一般流程详细说明(接上帖)1. 设计定义
在数字系统设计之前,首先要进行方案论证、系统设计、器件选择等准备工作。设计人员根据任务的功能和性能指标需求,对器件的资源、成本以及功耗等方面进行折衷,选择合适的设计方案和FPGA器件。
2. 设计描述与输入
设计输入就是指设计人员将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入计算机的过程。设计描述和设计输入通常使用图形和硬件描述语言两种形式。主要讲述硬件语言输入方式。
硬件描述语言输入方式使用文本进行设计描述,包括普通硬件描述语言和行为级硬件描述语言。比较有代表性的普通硬件描述语言是ABEL,它支持逻辑方程、真值表、状态机等逻辑表达方式,主要用于简单可编程逻辑器件的设计输入。行为级硬件描述语言是目前常用的高层硬件描述语言,主要有VHDL和Verilog HDL两个IEEE标准。其突出优点有:逻辑设计与具体工艺无关,使设计人员在系统设计、逻辑验证阶段确定方案的可行性;行为级描述,便于设计大规模、复杂的数字系统;具有很强的逻辑描述和仿真功能,输入效率高;在不同的FPGA器件和EDA软件之间的转换比较方便;不必对底层的电路和FPGA器件结构非常熟悉。
3. 代码检测
在设计输入的时候,需要对遵守一定的编码风格,在这一步,通过相关的工具来检测设计是否满足一定的编码风格,好的编码风格有利于设计的综合。
4. 功能仿真
功能仿真也称为前仿真或行为仿真。用户所设计的电路在综合之前应该首先进行逻辑功能的验证,这种仿真没有器件内部逻辑单元和连线的实际延时信息,只是初步验证系统的逻辑功能。
在功能仿真的时候,设计者需要根据自己的设计,设计电路的testbench激励,对电路进行功能验证。
5. 设计处理(逻辑综合,布局布线)
确定设计描述的功能无误后,就可以使用EDA软件对设计描述和相应的性能约束进行处理,设计处理是FPGA设计开发中的重要环节。在设计处理的过程中,EDA软件对设计输入文件进行语法和设计规则检查、逻辑简化、优化、综合、适配、布局布线、时间参数提取,最后产生器件编程用的数据文件。
首先,EDA软件对设计输入进行语法和设计规则检查,然后简化和优化逻辑方程,通过综合和适配将优化后的设计映射到器件相应的逻辑单元中,生成网表文件。布局布线将映射产生的物理单元在目标器件上进行放置和连接,并提取相应的时间参数。时间参数提取将生成当前设计的含有时间参数的网表,用于时序仿真。另外,时间参数提取输出的时序报告可以反映当前设计是否满足时序约束。
设计处理的效果主要取决于设计者的风格和综合工具的能力。使用EDA软件进行设计处理时需要注意:首先,最优化的目标可以是速度、资源、功耗等,这些指标时相互制约的。其次,目前综合器所支持的硬件描述语言的语法是有限的,过于抽象的语法还无法综合。因此,设计者应该具有良好的硬件描述语言编码风格。
6. 器件编程与测试
器件编程也可以称为配置。时序仿真完成之后,就可以使用EDA软件生成FPGA器件编程时所需的数据文件。器件的编程就是将编程数据下载到相应的FPGA器件中去。
器件编程需要满足一定的条件,如编程电压、编程时序、编程算法等。一次性编程的FPGA需要专用的编程器完成器件的编程工作,基于SRAM的FPGA可以由EPROM或其他存储器件进行配置。在线可编程的FPGA器件不需要专门的编程器,仅需要一根编程下载电缆和相应的编程软件。
7. 时序仿真
时序仿真又称为后仿真或延时仿真,是高速FPGA设计过程中必不可少的仿真验证阶段。由于不同FPGA器件内部的延时不一样,不同的布局布线方案也将影响电路各部分的延时,这些延时可能会导致系统和电路功能的变化。因此在设计处理以后,需要对系统和各模块进行时序仿真,分析时序关系,检查和消除竞争冒险、并对器件的实际工作性能进行估计。由于时序仿真中需要参考的参数非常多,因此将比功能仿真花费的时间长。时序仿真中使用了电路延时的最坏情况,因此,通过时序仿真验证之后的设计一般都能够在实际器件上正确运行。
感谢楼主分享 (接上帖)FPGA一般流程详细说明 DING~~~~~~~~~~~~~~~~~~~~~~~~~~ (接上帖)FPGA一般流程详细说明
页:
[1]