海风 Xilinx FPGA 学习笔记(1)– 软硬件环境的搭建和开发操作教程
标签:
xilinx
fpga
开发操作流程
软硬件环境搭建
学习笔记 |
分类: FPGA应用 |
在了解了FPGA的基础知识和发展历史后接下来就要开始正式进入实践学习环节,对很多初学者而言,对于如何搭建FPGA的软硬件平台,FPGA的整个开发流程没有一个清晰的了解,对FPGA的学习很有一种狗咬刺猬无处下嘴的感觉,下面主要就是要详细介绍Xilinx平台的FPGA开发软硬件环境的搭建和开发操作流程
软件平台:ISE Design Suite 14.5
这个软件可以从Xilinx官 http://china.xilinx.com/上获取。不过Xilinx的软件开发平台想来是更新极快的,基本上每个季度都会有更新的版本更新。想追都追不上,索性就以自己目前正在用的版本14.5为对象进行讲述。安装过程很简单这里就不再赘述了。License找度娘吧,其实 上license的发源地都是FPGA的销售代理商,算是公开的秘密吧。
硬件平台:Avnet Spartan6 LX150T 开发板 + Xilinx USB 下载线
第一步:新建工程
【1】开始 -> Xilinx Design Tools -> ISE Design Suite 14.5 -> Project Navigator打开ISE软件
【2】在ISE软件中找到 File -> New Project
按照要求填写:
Name: 填写工程名,注意必须字幕开头,不能有空格,空格可以用 “_” 代替。
Location:
Working Directory: 设置工作目录,路径一致。
Description: 添加一些工程说明,简要介绍工程的一些信息,可填可不填。
Top-level source type: 设置工程顶层文件的类型,这里只介绍verilog HDL语言开发的流程,所以选择HDL。
【3】设定所使用的Xilinx FPGA器件型 和参数,以及编译软件的工作参数。
根据开发板的规格书选择正确的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
【2】在接下里弹出的对话框中选择Verilog Module,其他选择的含义这里暂且不解释,在后续的笔记中再行阐述。
File name:填入要建立的文件名,FPGA代码的顶层文件我们通常会和工程名保持一致,并且在后面添加top字样以突出该文件在整个工程中处于顶层的位置。
Location: 保持默认即可。
add to project勾选后可以在新文件建立后就自动添加进工程里,不需要另行手动添加。
【3】NEXT后,下一个对话框是为了方便编写代码的作用,可以在此直接设定该模块的输入输出信 。
以一个流水灯为例,需要一个rst复位,clk驱动时钟,都是单线输入信 ,那么在Port Name中填写rst和clk,并且在Direction中选择input,Bus不勾选因为是单线信 ,MSB和LSB也就无从谈起。led则是8位的输出信 线,所以设置成output类型的同时还要勾选Bus,并在MSB填7以及LSB填写0。
第三步:IO映射约束
在编写完程序代码,还需要添加一个IO映射,将这个工程中最顶层文件的IO映射到FPGA的物理IO上去。还是像第二步【1】描述的那样新建New Source,然后在弹出的对话框中选择Implementation Constraints File。文件名没有强制规定,但一般和顶层文件名保持一致,方便辨识。
完成后就可以在新建立的UCF空白约束文件中用约束语句进行IO映射。
还有一种方式是图形化的IO映射方式,就是先在Hierarchy窗口中选中顶层文件led_flowing_demo_top,然后正下方的Design窗口会出现一系列的信息,选择User Constraints -> I/O Pin Planning(PlanAhead)-Pro-Synthesis并双击,就可以打开PlanAhead的图形化映射界面,这里就不进行详述了。
根据开发板提供的已经编写好的IO映射约束文件,查找到相关的条目并添加到现在工程中空白的UCF文件中。
第三步:编译代码
先在Hierarchy窗口中选中顶层文件led_flowing_demo_top,然后正下方的Design窗口会出现一系列的信息,选择双击Generate Programming File
ISE开始自动编译工程。
只要编译过程不出现错误,在等待一定的时间后,编译工作结束,工程目录下就会得到一个以顶层文件名字命名的bit文件,这个文件就是编译的最终目标文件。
在复杂工程中,一般都会有一堆的警告,绿色的钩,可能会被一堆的三角黄色感叹 代替,只要编译过程不出错,就能得到最终的bit文件。
第四步:烧写FPGA
FPGA烧写分两种,一种是直接通过JTAG烧写到FPGA里,这样速度快,但掉电就丢失,每次上电都需要重新烧写,一般用于调试。另一种是将bit文件转成mcs文件,再通过JTAG烧写到FPGA片外FLASH中,这样FPGA每次上电都会从这个片外FLASH中自动重新加载。
第一种烧写FPGA,掉电即失:
【1】如上图所示,双击Configure Target Device以启动iMPACT工具软件。
会弹出一个命令行窗口,以及iMPACT软件界面,命令行窗口不用理它,但也不要关掉。iMPACT启动后会弹出几个对话框,直接取消掉,然后出现以下界面:
【2】选择双击Boundary Scan,并在右边出现的空白栏中右键单击出现一个下拉菜单,然后选择Initialize Chain,初始化USB下载线,前提是下载线已经准备就绪并已经连接到FPGA的JTAG口上。
然后USB下载线就能扫描识别到JTAG接口上挂着的FPGA芯片
这个开发板的JTAG总线上挂了3个芯片,分别是两颗FLASH,以及我们的主角FPGA。选中FPGA芯片就是最右边的这个双击。在弹出的对话框就是让你选择你要烧入的bit文件。选择完后,会弹出一个对话框让你选择烧入FLASH的文件,这里押后在说,选择否。烧写文件就准备就绪了。
然后开始烧写
//分割线//
注意:以下内容因为没搞明白FLASH该如何下载,所以就以自己工作时用的板子为例。以后搞明白了再行个更新。
第二种烧写FLASH:
【1】首先要用bit文件生成一个FLASH烧写文件MCS
在iMPACT Flows对话框中选择Create PROM File(PROM File Formatter)并双击
【2】在弹出的对话框中选择正确的FLASH类型和容量,并填写好文件名,并重新设定好存放路径,并点击OK。
【3】在紧接着弹出的bit选择对话框中选择刚才的bit文件,并在随后弹出的一些确认对话框选择否或者取消。
并右键单击空白处选择Generate File,软件就生成出对应的mcs文件了。
【4】再点击Boundary Scan,回到之前下载FPGA的页面中,FPGA上方有个SPI/BPI的标志,双击它,在弹出的对话框中选中刚才生成的mcs文件。然后在弹出的选择对话框中选中对应的Nor Flash然后确定,在紧接着弹出的对话框选择OK就开始烧写了。
以上就是Xilinx FPGA的最基本开发流程。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!