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

标签:
xilinxfpga开发操作流程软硬件环境搭建学习笔记 |
分类: FPGA应用 |
如需转载,请将下列字段一起转载。
新浪海风博客http://blog.sina.com.cn/dingyunfeng
软件平台:ISE Design Suite 14.5
http://s1/mw690/0018EvS3gy6FApHLZ9Ce0&690Xilinx
ISE 14.5的工作界面
硬件平台:Avnet Spartan6
LX150T
http://s14/mw690/0018EvS3gy6FBSZBfrf7d&690Xilinx
第一步:新建工程
【1】开始 -> Xilinx Design Tools -> ISE Design Suite 14.5 -> Project Navigator打开ISE软件
【2】在ISE软件中找到 File -> New Project
http://s5/mw690/0018EvS3gy6FBUyHINK44&690Xilinx
按照要求填写:
Name:
Location:
Working
Directory:
Description:
Top-level source
type:
【3】设定所使用的Xilinx FPGA器件型号和参数,以及编译软件的工作参数。
http://s11/mw690/0018EvS3gy6FBVpQhECaa&690Xilinx
根据开发板的规格书选择正确的FPGA型号和性能参数
Evaluation Development Board:
Product Category:
Family/Device/Package/Speed:
Simulator:
其他选项无需关心,默认即可。然后一路next直到工程新建完成。
第二步:编写代码
【1】Verilog
HDL代码的保存文件扩展名是“v”,编写代码之前要先新建一个空白的v文件,鼠标移动到Hierarchy工作区的任意空白处单击右键,在出现的下拉菜单中选择New
http://s8/mw690/0018EvS3gy6FBXgYY3Z67&690Xilinx
【2】在接下里弹出的对话框中选择Verilog Module,其他选择的含义这里暂且不解释,在后续的笔记中再行阐述。
File name:填入要建立的文件名,FPGA代码的顶层文件我们通常会和工程名保持一致,并且在后面添加top字样以突出该文件在整个工程中处于顶层的位置。
Location: 保持默认即可。
add to project勾选后可以在新文件建立后就自动添加进工程里,不需要另行手动添加。
http://s3/mw690/0018EvS3gy6FBXwtaZI92&690Xilinx
【3】NEXT后,下一个对话框是为了方便编写代码的作用,可以在此直接设定该模块的输入输出信号。
http://s9/mw690/0018EvS3gy6FBXPWEhWb8&690Xilinx
【4】一路next之后得到一个叫“Led_flowing_demo_top.v”的文件,ISE自动打开并处于可编辑状态。
http://s7/mw690/0018EvS3gy6FBYxX4CGe6&690Xilinx
【5】对这个文件进行编辑,编写一个流水灯代码。这里只讲FPGA开发流程,verilog代码的一些编写语法以及代码风格方面的问题这里就不做讨论了。
http://s8/mw690/0018EvS3gy6FBZfxpFZ97&690Xilinx
第三步:IO映射约束
http://s4/mw690/0018EvS3gy6FC0qs4qT53&690Xilinx
http://s3/mw690/0018EvS3gy6FC10ovvk32&690Xilinx
根据开发板提供的已经编写好的IO映射约束文件,查找到相关的条目并添加到现在工程中空白的UCF文件中。
http://s12/mw690/0018EvS3gy6FC1v73nB5b&690Xilinx
在编辑完UCF文件后就可以进行第三步编译了。
第三步:编译代码
先在Hierarchy窗口中选中顶层文件led_flowing_demo_top,然后正下方的Design窗口会出现一系列的信息,选择双击Generate Programming File
http://s9/mw690/0018EvS3gy6FC1IMWgw08&690Xilinx
ISE开始自动编译工程。
只要编译过程不出现错误,在等待一定的时间后,编译工作结束,工程目录下就会得到一个以顶层文件名字命名的bit文件,这个文件就是编译的最终目标文件。
http://s5/mw690/0018EvS3gy6FC25o45Kc4&690Xilinx
在复杂工程中,一般都会有一堆的警告,绿色的钩,可能会被一堆的三角黄色感叹号代替,只要编译过程不出错,就能得到最终的bit文件。
第四步:烧写FPGA
FPGA烧写分两种,一种是直接通过JTAG烧写到FPGA里,这样速度快,但掉电就丢失,每次上电都需要重新烧写,一般用于调试。另一种是将bit文件转成mcs文件,再通过JTAG烧写到FPGA片外FLASH中,这样FPGA每次上电都会从这个片外FLASH中自动重新加载。
第一种烧写FPGA,掉电即失:
【1】如上图所示,双击Configure Target Device以启动iMPACT工具软件。
会弹出一个命令行窗口,以及iMPACT软件界面,命令行窗口不用理它,但也不要关掉。iMPACT启动后会弹出几个对话框,直接取消掉,然后出现以下界面:
http://s8/mw690/0018EvS3gy6FC2YxxKT57&690Xilinx
【2】选择双击Boundary Scan,并在右边出现的空白栏中右键单击出现一个下拉菜单,然后选择Initialize Chain,初始化USB下载线,前提是下载线已经准备就绪并已经连接到FPGA的JTAG口上。
http://s6/mw690/0018EvS3gy6FC35U6Pzc5&690Xilinx
然后USB下载线就能扫描识别到JTAG接口上挂着的FPGA芯片
http://s10/mw690/0018EvS3gy6FC3g7VxL79&690Xilinx
这个开发板的JTAG总线上挂了3个芯片,分别是两颗FLASH,以及我们的主角FPGA。选中FPGA芯片就是最右边的这个双击。在弹出的对话框就是让你选择你要烧入的bit文件。选择完后,会弹出一个对话框让你选择烧入FLASH的文件,这里押后在说,选择否。烧写文件就准备就绪了。
http://s11/mw690/0018EvS3gy6FC3JqnmG7a&690Xilinx
然后右键单击FPGA,选择Program,这时又会跳出一个对话框要你选择要烧写的器件,只要选中FPGA就OK了。
http://s5/mw690/0018EvS3gy6FC3JKSCE34&690Xilinx
然后开始烧写
http://s7/mw690/0018EvS3gy6FC3TnapUc6&690Xilinx
等执行完了,刚才编译的bit文件就被下载到FPGA里了。
//////////////////////////////////////分割线//////////////////////////////////////////
注意:以下内容因为没搞明白FLASH该如何下载,所以就以自己工作时用的板子为例。以后搞明白了再行个更新。
第二种烧写FLASH:
【1】首先要用bit文件生成一个FLASH烧写文件MCS
在iMPACT Flows对话框中选择Create PROM File(PROM File Formatter)并双击
【2】在弹出的对话框中选择正确的FLASH类型和容量,并填写好文件名,并重新设定好存放路径,并点击OK。
http://s2/mw690/0018EvS3gy6FC4kl1YJd1&690Xilinx
【3】在紧接着弹出的bit选择对话框中选择刚才的bit文件,并在随后弹出的一些确认对话框选择否或者取消。
http://s7/mw690/0018EvS3gy6FC4zpyZw56&690Xilinx
并右键单击空白处选择Generate File,软件就生成出对应的mcs文件了。
【4】再点击Boundary Scan,回到之前下载FPGA的页面中,FPGA上方有个SPI/BPI的标志,双击它,在弹出的对话框中选中刚才生成的mcs文件。然后在弹出的选择对话框中选中对应的Nor Flash然后确定,在紧接着弹出的对话框选择OK就开始烧写了。
http://s8/mw690/0018EvS3gy6FD8P9hQ307&690Xilinx
以上就是Xilinx FPGA的最基本开发流程。