第十一章 VHDL的FPGA实现
能够完成逻辑综合的EDA工具很多。 在此,我们基于实验室使用比较广泛的 ISE 软件介绍综合流程,参见图11.1,基于ISE的FPGA设计一般分为九步:
·电路功能设计
·VHDL的RTL源程序输入
·功能仿真(功能不正确,则修改设计) ·综合(产生网表)
·综合后仿真(综合后电路的门级仿真不通过,则需修改源程序) ·实现与布局布线
·时序仿真与验证(整体的时序分析(后仿)通不过,则需要重新布线) ·板级仿真与验证(主要应用于高速电路设计)
·芯片编程与调试(产生FPGA目标文件,下载烧写FPGA)
电路功能设计模块划分设计验证源代码设计RTL级VHDL代码设计功能不正确功能仿真代码文件*.vhd综合网表文件*.ngc静态时序分析实现翻译、映射、布局布线综合后仿真时序不满足时序仿真下载文件*.bit烧录 FPGA板级仿真验证电路验证
图11.1 FPGA设计流程
在仿真模型中完全可以用VHDL来描述一项设计的时序特性,但在综合中,这些时序行为(如惯性或传输延迟)的描述都会被VHDL综合器忽略,而此设计的实际时序行为仅依赖于目标器件的物理结构和映射方式。因此,若将设计模型从一个目标器件移植到另一个目标器件时,那些依赖于正确的延迟特性才能正常工作的VHDL模型,将不可能得到期望的综合结果和时序仿真效果。
仿真模型可以描述一些无限制的条件(如无穷循环或无范围限制的整型数),硬件却不能提供这些条件。在某些情况下,如无穷循环或循环次数不确定的情况下,综合工具会产生错误并退出。在其他的情况下,如无范围的整数,VHDL综合器会假设一个默认的表示方式,如以32bit二进制数表示无范围的整数。尽管这是可综合的,但却无法生成所期望的电路。
11.2 VHDL的FPGA逻辑综合
以下将以第七章例7.15交通信号灯监测电路的程序为例来说明如何对VHDL程序进行综合。具体步骤如下:
1. 启动ISE
如图11.2所示,在windows操作系统的开始菜单中启动Xilinx ISE Design Suite 10.1中的ISE主窗口,之后如图11.3。
图11.2 启动ISE 10.1
图11.3 ISE 10.1 主窗口
2. 创建一个新的项目
ISE 10.1主窗口打开后,选择创建一个新的项目,一般分为以下七步: (1) 单击【File】?【New Project …】命令,如图11.4.1,出现图11.4.2所示的【Create New Project】对话框。