第十一章 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】对话框。
图11.4.1 ISE 10.1 创建新工程
(2) 如图11.4.2所示,选择工程存放路径,然后输入工程名,系统会产生一个名为工程名的新目录。选择顶层模块类型为HDL,其他顶层模块类型有原理图(Schematic)、EDIF网表、NGC网表。单击【Next】,出现图11.4.2。
图11.4.2 【Create New Project】对话框
(3) 如图11.4.3,进行FPGA器件参数设置,说明如下:
? Product Category(器件大类):Xilinx提供工业级等,选All即可 ? Family(系列):选择Spartan2 ? Device(器件):选择XC2S50 ? Package(封装):选择TQ144
? Speed(速度等级):速度不同不是工艺差别,而是测试筛选出来的,
速度不同自然价格不同,商用芯片尽量选择低速等级,这里选-5 ? Top-Level Source Type(顶层类型):上步已选,现为灰色,不可编辑 ? Synthesis Tool(综合工具):选择ISE集成的XST,也可选三方工具 ? Simulitor(仿真工具):选择ModelSim-SE VHDL ? Preferred Language(语言):选择VHDL
? Enable Enhanced Design Summary:是否显示Design Summary ? Enable Message Filtering:是否设置在Implementation时过滤掉某些
warning和info
? Display Incremental Messages:是否显示上次执行没有出现的新信息