&CPLD的集成开发软件,它提供给用户一个从设计输入到综合、布线、仿真、下载的全套解决方案,并很方便地同其他EDA工具接口。
Xilinx为ModelSim预留了接口,可以直接在ISE环境中打开,使用十分便捷。并且ModelSim支持综合前、后仿真,以及时序仿真,功能很强大。
本节将对ISE的软件设计流程做一个全面的介绍。一般来说完整的ISE软件设计流程包括:电路设计与输入、功能仿真、综合、综合后仿真、实现、布局布线后仿真与验证以及下载调试等主要步骤,如图6.6所示。
这一步并不是总是需要。通常用在第一次使用ISE或需要对某些项目做修改时,一般有以下几项需要设置:这些设置主要是在“Edit”/“Preferences”下完成的,如图6.7所示。
(1)常用的。这主要是设置项目管理器中文件的显示方式、字体、窗口的显示方式等,一般用默认值就行。
(2)图形编辑器(Schematic Editor)。这里可设置跳格键(Tab)的字符个数、编辑器的字体等,另外除了直接用ISE提供的HDL编辑器外,也能够使用第三编辑器,如gvim就是一款很优秀的代码编辑器,有兴趣的读者可以在网上查阅相关资料。
(4)工具设置。主要设置仿真器ModelSim、HDL测试台生成工具HDL Bencher、状态图输入工具State CAD的工作目录。其实要设置的就是ModelSim的工作目录,因为后两项通常在安装完后ISE已经设好了。
这一步和其他的软件开发一样,ISE要求在对文件做综合或布线之前必须要有一个存在的工程,在新建工程时,需要设置以下几点。
(1)工程名,最好用英文不要有汉字,因为ISE下有些工具对于含有汉字的文件目录支持的不是很好。
(2)工程所在目录。ISE所产生的输出文件将全部放在该目录下,但对源文件的目录没有要求。
(4)器件型号。具体大类下的哪一种器件,此外还要设置封装和速度等级等,这一些信息都可以从芯片上提供的信息直接得到。
(5)综合软件。由于ISE预置了4种可选的综合器接口(XST为Xilinx自己开发,FPGA Express是Synopsys公司的OEM版,在安装ISE时就已经装好了。而Synplify/Synplify Pro则需要另外购买并安装),所以一定要选择一种作为该工程的综合器。4种综合器全部支持Verilog和VHDL。但有一点一定要注意:如果设计中用到原理图,则只能选择XST或FPGA Express作综合器,因为Synplify Pro不支持原理图方式。
这一步可通过HDL Bencher工具自动产生。测试台的基本功能是给被测实体加上输入激励,再比较其输出是否与期望值一致,并给出一些提示信息。但推荐大家自己写测试代码,通过写代码的测试灵活性更强,而且对于很复杂的设计,有时在仿真时还需要读取文件数据,或将最终的仿真结果写进文件或打印,这在HDL Bencher下是很难完成的。
利用ModelSim来检查电路仿真结果是不是正确。如果编译有错,则先将错误更改。如此反复直到仿真正确为止。这只是用于检查代码有无错误,ModelSim最主要的作用在于通过仿真观察波形来验证设计的功能是不是正确,这部分工作对于一个设计来说是很重要的,因为如果前期的功能仿真做的不到位,会直接影响到最终电路功能的实现,必须在确保功能仿真没问题的前提下,再进行下面的步骤。
通过这一步将设计转换成具体的电路图。如果设计有错,有可能综合通不过。这就要求用户一定要按照可综合代码的风格来设计。另外,综合有很多属性是可设为的,如果对设计中的某些项目(如速度)有要求的话需要预先设置好。在ISE的高级版本中,XST已经支持Veilog和VHDL混合语言代码输入,XST的输出文件是NGC网表。
综合实现后要做综合后仿真,检验综合后功能是不是满足设计要求,如果不符合要求要判断是否是原理图设计的问题,进一步对代码进行优化,直到契合设计要求为止。
用户约束文件主要包括时序约束文件和管脚约束文件,时序约束可以在ISE自带的Constraints Editor下完成,管脚约束是在PACE(约束编辑器)下完成的。约束设计完毕生成UCF文件。
所谓实现(Implement)是将综合输出的逻辑网表翻译成所选器件的底层模块与硬件原语,将设计映射到器件结构上,进行布局布线,达到在选定器件上实现设计的目的。实现主要分为3个步骤:翻译(Translate)逻辑网表、映射(Map)到器件单元与布局布线(Place&Route)。
布局布线后生成的仿真时延文件包含的时延信息最全,不仅包含门延时,还包括实际布线延时,所以布线后仿真最准确,能较好地反映芯片的实际在做的工作情况。
把Xilinx布线后产生的结果转换成配置文件后置入FPGA中。下载成功后就可以测试实际电路了。若需要脱机配置,则必须将配置文件写入外置存储器中。下载时需要将器件用JTAG线与PC机连接完成下载。
其实上面的10个步骤并不是一定要按部就班,这取决于设计者的熟练程度和设计水平。例如测试台的编写、前仿真、后仿真并不是必须的。但为了能够更好的保证设计的正确性和节约查错所耗的时间,推荐设计者一步一步操作,这样子就能够及时有效地发现错误及时更正。
ISE软件一个特点是拥有非常良好的开发界面,新建一个工程后,在“Processes for Source”对话框中即罗列出了ISE下FPGA设计流程中的所有的环节,如图6.8所示,读者可将图中标注的内容与上面介绍的FPGA的设计流程中的各个步骤相对应,能够准确的看出,界面上列出了设计流程的各个步骤,设计时只需要按照顺序依次实现就可以了,操作很简便。
由于ISE提供的集成开发环境非常好用,故推荐从ISE中来启动其他程序,当然也可以在各自的软件环境中完成上述步骤。
例如在Synplify中建工程、输入文件和综合,在ModelSim中新建工程并做仿真,用Xilinx的Design Manager(这个程序在ISE中是找不到的,因为ISE是通过命令行方式调用该程序使其在后台运行,但可以在安装目录下找到它),再运行JTAG编程器下载。
本节对ISE的FPGA设计流程做了一个简单的介绍,读者可对照2.6节加深对这一流程的理解。
上一篇:bgg中文官网