ISE开发流程——软件操作

海风 Xilinx FPGA 学习笔记(1)-- 软硬件环境的搭建和开发操作教程

 (2014-01-08 16:26:44)

标签: 

xilinx

 

fpga

 

开发操作流程

 

软硬件环境搭建

 

学习笔记

分类: FPGA应用

如需转载,请将下列字段一起转载。
新浪海风博客http://blog.sina.com.cn/dingyunfeng

 

    在了解了FPGA的基础知识和发展历史后接下来就要开始正式进入实践学习环节,对很多初学者而言,对于如何搭建FPGA的软硬件平台,FPGA的整个开发流程没有一个清晰的了解,对FPGA的学习很有一种狗咬刺猬无处下嘴的感觉,下面主要就是要详细介绍Xilinx平台的FPGA开发软硬件环境的搭建和开发操作流程

 

软件平台:ISE Design Suite 14.5

 

    这个软件可以从Xilinx官网http://china.xilinx.com/上获取。不过Xilinx的软件开发平台想来是更新极快的,基本上每个季度都会有更新的版本更新。想追都追不上,索性就以自己目前正在用的版本14.5为对象进行讲述。安装过程很简单这里就不再赘述了。License找度娘吧,其实网上license的发源地都是FPGA的销售代理商,算是公开的秘密吧。

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程
ISE 14.5的工作界面

 

硬件平台:Avnet Spartan6 LX150T 开发板 + Xilinx USB 下载线

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程

 

第一步:新建工程

 

【1】开始 -> Xilinx Design Tools -> ISE Design Suite 14.5 -> Project Navigator打开ISE软件

【2】在ISE软件中找到 File -> New Project

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程


按照要求填写:

Name:                填写工程名,注意必须字幕开头,不能有空格,空格可以用 “_” 代替。 

Location:

Working Directory:    设置工作目录,路径一致。

Description:          添加一些工程说明,简要介绍工程的一些信息,可填可不填。

Top-level source type: 设置工程顶层文件的类型,这里只介绍verilog HDL语言开发的流程,所以选择HDL。

 

【3】设定所使用的Xilinx FPGA器件型号和参数,以及编译软件的工作参数。

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程


根据开发板的规格书选择正确的FPGA型号和性能参数

Evaluation Development Board:

    这个是专门留给Xilinx官方开发板使用的,ISE会有针对性的提供一些实验工程
Product Category:

    默认即可

Family/Device/Package/Speed:

    需要选择正确的型号和参数,比如现在的型号是 XC6SLX150T-3FGG676 那么设定的参数如上图所示。

Simulator:

    设定仿真工具,ISim是Xilinx ISE自带的免费仿真工具,和ModelSim是一个类型的软件,如果需要使用其他仿真工具,需要在仿真之前就在这里设定好。这里选择默认ISE自带的仿真工具。

 

其他选项无需关心,默认即可。然后一路next直到工程新建完成。

 

第二步:编写代码

 

【1】Verilog HDL代码的保存文件扩展名是“v”,编写代码之前要先新建一个空白的v文件,鼠标移动到Hierarchy工作区的任意空白处单击右键,在出现的下拉菜单中选择New Source   

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程

 

【2】在接下里弹出的对话框中选择Verilog Module,其他选择的含义这里暂且不解释,在后续的笔记中再行阐述。

File name:填入要建立的文件名,FPGA代码的顶层文件我们通常会和工程名保持一致,并且在后面添加top字样以突出该文件在整个工程中处于顶层的位置。

Location: 保持默认即可。

add to project勾选后可以在新文件建立后就自动添加进工程里,不需要另行手动添加。

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程


 

【3】NEXT后,下一个对话框是为了方便编写代码的作用,可以在此直接设定该模块的输入输出信号。

    以一个流水灯为例,需要一个rst复位,clk驱动时钟,都是单线输入信号,那么在Port Name中填写rst和clk,并且在Direction中选择input,Bus不勾选因为是单线信号,MSB和LSB也就无从谈起。led则是8位的输出信号线,所以设置成output类型的同时还要勾选Bus,并在MSB填7以及LSB填写0。


海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程

【4】一路next之后得到一个叫“Led_flowing_demo_top.v”的文件,ISE自动打开并处于可编辑状态。

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程

【5】对这个文件进行编辑,编写一个流水灯代码。这里只讲FPGA开发流程,verilog代码的一些编写语法以及代码风格方面的问题这里就不做讨论了。


海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程

第三步:IO映射约束

 

    在编写完程序代码,还需要添加一个IO映射,将这个工程中最顶层文件的IO映射到FPGA的物理IO上去。还是像第二步【1】描述的那样新建New Source,然后在弹出的对话框中选择Implementation Constraints File。文件名没有强制规定,但一般和顶层文件名保持一致,方便辨识。

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程

    完成后就可以在新建立的UCF空白约束文件中用约束语句进行IO映射。
    还有一种方式是图形化的IO映射方式,就是先在Hierarchy窗口中选中顶层文件led_flowing_demo_top,然后正下方的Design窗口会出现一系列的信息,选择User Constraints -> I/O Pin Planning(PlanAhead)-Pro-Synthesis并双击,就可以打开PlanAhead的图形化映射界面,这里就不进行详述了。

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程

根据开发板提供的已经编写好的IO映射约束文件,查找到相关的条目并添加到现在工程中空白的UCF文件中。

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程

 

在编辑完UCF文件后就可以进行第三步编译了。

第三步:编译代码

 

先在Hierarchy窗口中选中顶层文件led_flowing_demo_top,然后正下方的Design窗口会出现一系列的信息,选择双击Generate Programming File

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程


 

ISE开始自动编译工程。

只要编译过程不出现错误,在等待一定的时间后,编译工作结束,工程目录下就会得到一个以顶层文件名字命名的bit文件,这个文件就是编译的最终目标文件。

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程


 

在复杂工程中,一般都会有一堆的警告,绿色的钩,可能会被一堆的三角黄色感叹号代替,只要编译过程不出错,就能得到最终的bit文件。

 

第四步:烧写FPGA

 

FPGA烧写分两种,一种是直接通过JTAG烧写到FPGA里,这样速度快,但掉电就丢失,每次上电都需要重新烧写,一般用于调试。另一种是将bit文件转成mcs文件,再通过JTAG烧写到FPGA片外FLASH中,这样FPGA每次上电都会从这个片外FLASH中自动重新加载。

 

第一种烧写FPGA,掉电即失:

【1】如上图所示,双击Configure Target Device以启动iMPACT工具软件。

会弹出一个命令行窗口,以及iMPACT软件界面,命令行窗口不用理它,但也不要关掉。iMPACT启动后会弹出几个对话框,直接取消掉,然后出现以下界面:

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程


 

【2】选择双击Boundary Scan,并在右边出现的空白栏中右键单击出现一个下拉菜单,然后选择Initialize Chain,初始化USB下载线,前提是下载线已经准备就绪并已经连接到FPGA的JTAG口上。

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程

然后USB下载线就能扫描识别到JTAG接口上挂着的FPGA芯片

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程

这个开发板的JTAG总线上挂了3个芯片,分别是两颗FLASH,以及我们的主角FPGA。选中FPGA芯片就是最右边的这个双击。在弹出的对话框就是让你选择你要烧入的bit文件。选择完后,会弹出一个对话框让你选择烧入FLASH的文件,这里押后在说,选择否。烧写文件就准备就绪了。

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程
然后右键单击FPGA,选择Program,这时又会跳出一个对话框要你选择要烧写的器件,只要选中FPGA就OK了。
海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程


然后开始烧写

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程
等执行完了,刚才编译的bit文件就被下载到FPGA里了。

 

 

//分割线//

 

注意:以下内容因为没搞明白FLASH该如何下载,所以就以自己工作时用的板子为例。以后搞明白了再行个更新。

 

第二种烧写FLASH:

【1】首先要用bit文件生成一个FLASH烧写文件MCS

在iMPACT Flows对话框中选择Create PROM File(PROM File Formatter)并双击

 

【2】在弹出的对话框中选择正确的FLASH类型和容量,并填写好文件名,并重新设定好存放路径,并点击OK。

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程

【3】在紧接着弹出的bit选择对话框中选择刚才的bit文件,并在随后弹出的一些确认对话框选择否或者取消。

 

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程

并右键单击空白处选择Generate File,软件就生成出对应的mcs文件了。

 

【4】再点击Boundary Scan,回到之前下载FPGA的页面中,FPGA上方有个SPI/BPI的标志,双击它,在弹出的对话框中选中刚才生成的mcs文件。然后在弹出的选择对话框中选中对应的Nor Flash然后确定,在紧接着弹出的对话框选择OK就开始烧写了。

海风 <wbr>Xilinx <wbr>FPGA <wbr>学习笔记(1)-- <wbr>软硬件环境的搭建和开发操作教程

 

以上就是Xilinx FPGA的最基本开发流程。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值