基于Xilinx-ISE-124的FPGA设计流程.doc

上传人:本田雅阁 文档编号:2755403 上传时间:2019-05-11 格式:DOC 页数:29 大小:9.72MB
返回 下载 相关 举报
基于Xilinx-ISE-124的FPGA设计流程.doc_第1页
第1页 / 共29页
基于Xilinx-ISE-124的FPGA设计流程.doc_第2页
第2页 / 共29页
基于Xilinx-ISE-124的FPGA设计流程.doc_第3页
第3页 / 共29页
基于Xilinx-ISE-124的FPGA设计流程.doc_第4页
第4页 / 共29页
基于Xilinx-ISE-124的FPGA设计流程.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《基于Xilinx-ISE-124的FPGA设计流程.doc》由会员分享,可在线阅读,更多相关《基于Xilinx-ISE-124的FPGA设计流程.doc(29页珍藏版)》请在三一文库上搜索。

1、基于ISE 12.4的FPGA设计基本流程ISE是使用XILINX的FPGA的必备的设计工具,它可以完成FPGA开发的全部流程,包括设计输入、仿真、综合、布局布线、生成BIT文件、配置以及在线调试等,功能非常强大。本文主要通过一个最简单的“点亮LED灯”实例介绍了基于ISE 12.4软件的FPGA设计流程,包括设计输入、仿真、约束、下载等。0 前言 一套完整的FPGA设计流程包括电路设计输入、功能仿真、设计综合、综合后仿真、设计实现、添加约束、布线后仿真和下载、调试等主要步骤。图1 FPGA设计流程 目前赛灵思公司FPGA设计软件的最新版本是ISE 13.1,本文中以ISE 12.4为例。 I

2、SE 9以后的版本的安装文件都是集成到了一个包当中,安装起来很方便。软件包里面包含四个大的工具,ISE Design Tools、嵌入式设计工具EDK、PlanAhead、Xtreme DSP设计工具System Generator。ISE设计工具中包含ISE Project Navigator、ChipScope Pro和以下工具:图2 ISE软件包中部分工具 做一般的FPGA逻辑设计时只需要用到ISE设计工具,下面通过一个最简单的“点亮LED灯”实例,具体讲解ISE设计工具的使用,并介绍基于ISE的FPGA设计基本流程。1 创建工程 (1)在桌面快捷方式或开始所有程序Xilinx ISE

3、Design Suite 12.4ISE Design Tools中打开ISE Project Navigator。 (2)单击FileNew Project.出现下图所示对话框。图3 新建工程对话框 在该界面输入工程名、选择工程存放路径、选择顶层模块类型,其中顶层模块类型有硬件描述语言(HDL)、原理图(Schematic)、SynplifyPro默认生成的网表文件(EDIF)、Xilinx IP Core和XST生成的网表文件(NGC/NGO)这四种选项,这里我们使用Verilog模块作为顶层输入,所以选HDL。 (3)单击Next 进入下一步,弹出下图所示对话框。图4 工程参数设置对话框

4、 这里主要设置FPGA器件型号,速度等级,综合工具和仿真工具的选择,其余的一般默认即可。 器件大类(Product Category)中有ALL、民用级General Purpose、工业级Automotive、军用级Military/Hi-Reliability、航空防辐射级Radiation Tolerant五个选项,这里选择默认的ALL。 芯片型号选择板子上用到的spartan3E XC3S500E,封装FG320C,速度等级-4(数值越大,速度越快)。 综合工具选择ISE自带的XST,仿真工具也选择ISE自带的ISim。这里综合工具和仿真工具都可以选择第三方的工具,如常用的Synpli

5、fyPro和Modelsim。 (4)单击Next 按钮,然后单击Finish完成新工程的创建。图5 新建工程概要该窗口会显示新建工程的概要,核对无误后点击Finish完成工程创建。在工作区可看到新建的工程LED。2 设计输入 (1)在源代码窗口中单击右键,在弹出的菜单中选择New Source。图6 新建源文件向导 在源文件类型中选择Verilog Module,输入文件名,其余使用软件默认即可。 (2)单击Next 按钮,弹出的窗口是模块创建向导界面,这里我们不使用该功能,直接单击单击Next 按钮到下一步,点击Finish完成新源文件的创建。图7 模块创建向导界面 (3)ISE会自动打开

6、源代码编辑界面,在该界面输入源代码,点击保存。图8 源代码编辑界面在该界面下,我们输入以下源代码。 这段代码的功能就是点亮一个LED灯,让它闪烁起来。选用板子上的一个50MHZ的晶振,对其进行分频后达到人眼能够辨别的跳变速率。3 功能仿真 (1)加入仿真激励源,也就是testbench,这里选择用verilog HDL编写。在源代码窗口中单击右键,在弹出的菜单中选择New Source,然后选择Verilog Test Fixture。图9 源代码仿真关联选择界面 在该界面选择关联上test1源代码,这样关联之后生成出来的测试文件中会自动加入对源文件的例化代码,然后单击Next ,在弹出的报告

7、界面确认信息无误后点击Finish。在自动弹出的代码编辑界面输入以下测试激励代码,保存。 (2)行为级仿真。在主窗口左侧的Design窗口中选择Simulation下拉栏中选行为级Behavioral选中仿真激励文件在Processes窗口就会出现ISim仿真软件了,第一个功能是行为级语法检查,在编写完testbench之后可以用于排查语法错误。双击第二个选项Simulate Behavior Model即可启动行为级仿真了。图10 启动行为级仿真选中test.v 双击Processes 栏中的Simulate Behavioral Model,将弹出Isim 窗口。将Instance and

8、 Process Name 中的test 展开,选中uut。将counter25:0拖到右边的仿真窗口中。点击restart-ran all,查看仿真结果。点击break 结束。退出Isim。 (3)使用Sim仿真设计时序。图11 ISim仿真界面 界面打开之后默认只跑1us,由于计数器计数较长,需要多运行一会才能看到led信号的跳变。点击操作栏上的 按钮让它多运行一会就可以了,暂停时点击 按钮。另外可将Objects窗口中的信号通过右键选择加入到仿真窗口中以方便观测。4 综合 (1)将Design窗口中的View项切换为Implementation,然后选中顶层文件,在下面的Processe

9、s窗口中就会出现综合实现的工具选项。这里双击Synthesize XST就开始运行综合了。图12 综合在hierarchy 窗口选中led,可以看到processes 窗口中的综合、配置等选项。双击check syntax 检查verilig 文件有误语法错误。若没有,会出现绿色的勾,有警告会出现叹号,有错误会出现红色的叉。双击synthesize 开始综合 综合过程中出现的各种警告或是错误报告会出现在Console窗口中,综合完成后状态显示为 ,双击Errors and Warnings中的 就可以打开综合报告。 双击View RTL Schematic,打开设计综合后的RTL级视图。双击后

10、会弹出下图所示的对话框,第一个是打开一个窗口文件管理向导,第二个是直接进入顶层设计的浏览。默认为第二个,点击OK。图13 设置RTL查看设置 下图就是打开后能看到的顶层模块视图。可以看到最外层的输入和输出接口,一般复杂一点的设计就可以同过顶层视图来确定个模块之间的端口是否正确连接。图14 顶层模块 双击顶层模块就可进入与之相应的模块内部RTL视图,在RTL级视图里,可以清楚地看到每一条语句是被综合工具综合成了什么逻辑器件。核对一下是否是自己预想的逻辑电路。图15 RTL级视图 综合工具中还有一个View Technology Schematic选项,工艺级视图,比RTL级电路更详细,更接近综合

11、后在芯片中要形成的实际电路和资源使用情况。可以看到各个逻辑部件内部的寄存器和门电路。图16 工艺级视图5 时序仿真 在主窗口左侧的Design窗口中选择Simulation下拉栏中选Post-Translate选中仿真激励文件在Processes窗口就会出现ISim仿真软件了,双击Simulate Post-Translate Model即可启动时序仿真。图17 时序仿真 时序仿真由于加入了门级延迟,所以比行为级仿真的运算量大,仿真起来速度也会慢很多。点击Run之后多等几分钟。图18 时序仿真结果 ISim还能做映射(Post-Map)和布局布线(Post-Route)之后的仿真,时序能更贴近

12、真实情况。一般在高速和时序非常复杂的设计中才会用到,使用方法与上面类似,这里不再赘述。6 实现 (1)添加管脚约束。 在源代码窗口中单击右键,在弹出的菜单中选择New Source,然后选择 ,输入文件名,点击下一步。在弹出的窗口确认信息无误后点击Finish。软件会自动打开约束文件编辑窗口,输入以下代码,点击保存。 约束文件也可以通过选择操作窗口中的User ConstraintsI/O Pin Planning启动PlanAhead来通过图形界面添加生成。 (2)运行实现。实现的步骤包括翻译,映射,布局布线三个步骤。在Design窗口中选中顶层文件后双击操作窗口中的Implement De

13、sign,软件就会自动运行实现的三个步骤。双击Impliment Design 开始翻译、映射、布局布线。图19 运行实现工具 完成后状态显示为 ,各项操作过程中出现的错误和警告信息可以在Errors and Warnings窗口中选择查看。7 下载调试双击操作窗口中的Configure Target Device启动下载程序。这个过程中会自动生成编程文件(Xilinx的FPGA配置文件为.bit后缀),并启动iMPACT软件。双击generate programing file 生成配置文件。 在软件运行的过程中你可以连接好下JTAG载线,将板子通上电。图20 选择配置目标器件 运行完成之后

14、会自动弹出iMPACT软件界面,在该界面中双击Boundary Scan,然后单击工具栏上的 图标,软件就会自动扫描JTAG链路上的目标器件。图21 iMPACT界面 软件会自动打开配置文件选择窗口,将路径引导到工程目录,选择我们刚才生成的bit文件。软件还会询问是否需要添加外挂的PROM芯片,这里选否。然后点击OK。如果硬件连接正确且工作正常,就能看到下图所示的界面。选中芯片后在点击右键,选择Program。图22 下载界面 如果提示Programmed successfully就表明下载成功了,接下来你就能看到板子上的LED开始闪烁了。8 总结本篇通过一个简单的实例讲解了整个设计的流程,对

15、初学者入门有一定的帮助,但这些操作只是涉及到了ISE强大功能中很小的一部分,更深入的功能有待于大家继续摸索。交通灯实例:设计一个简单的十字路口交通灯控制器,A 方向和B 方向各设红(R)、黄(Y)、绿(G)四盏灯,要求红灯、黄灯、绿灯的持续时间分别为20 秒、5 秒、20 秒,使之按照实际交通规则进行变化,并能将灯亮的时间以倒计时的形式显示出来。设置紧急状态及复位状态。紧急状态下,A 方向和B 方向皆为红灯,计数器停止计数;复位状态下,A 方向和B 方向灯均不亮,计数器显示为“0”。交通灯信号控制系统一般由晶体振荡器、分频器、时间计数器、控制器以及译码显示电路组成,根据设计内容要求,其组成框图

16、如图所示:本实验采用模块化设计,整个电路包含:用于计时的1Hz 分频模块,用于动态扫描显示电路的200Hz 分频模块,动态扫描控制电路模块,及A、B 方向红绿灯控制模块。各模块采用Verilog 语言设计,而后分别生成原理图模块,供顶层文件调用。顶层文件采用原理图设计,如下图所示:(1) Divid 模块:1Hz 分频模块,开发板提供50MHz 的系统时钟,而该设计交通灯转换以秒为计时单位,对50MHz 分频得到1Hz 脉冲信号。(2) Divid_200 模块: 200Hz 分频模块,用于产生动态扫描模块的时钟。一个数码管稳定显示要求的切换频率要大于50Hz,那么4 个数码管则需要504200Hz 以上的切换频率才能看到不闪烁并且持续稳定显示的字符,因而扫描频率设定为200Hz。(3) Control 模块:A、B 方向红绿灯控制模块,红灯、绿灯为20 秒,黄灯为5 秒。并实现计时数据转换,即将数据分为十位显示数据,与各位显示数据,用于数码管显示。(4) saomiao 扫描模块:轮流选通2 位数码管,实现动态扫描,以显示倒计时数据。引脚分配

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1