海风 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的销售代理商,算是公开的秘密吧。


ISE 14.5的工作界面

硬件平台: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。

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

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

第三步: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文件中。

在编辑完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的文件,这里押后在说,选择否。烧写文件就准备就绪了。


然后右键单击FPGA,选择Program,这时又会跳出一个对话框要你选择要烧写的器件,只要选中FPGA就OK了。

然后开始烧写


等执行完了,刚才编译的bit文件就被下载到FPGA里了。

//分割线//

注意:以下内容因为没搞明白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的最基本开发流程。

ISE开发流程——软件操作相关推荐

  1. 从多图对比看Vivado与ISE开发流程的差异

    从多图对比看Vivado与ISE开发流程的差异 特性比较 对 Vivado 和它的前一代设计套件,ISE 做一个组件功能上的平行比较和总结是很有用的.其目的是让那些具有在 ISE 下工作经验 (但是不 ...

  2. 瑞吉外卖项目(一)软件开发流程设计及环境搭建

    第一章 软件开发整体介绍 软件开发流程 软件开发流程 需求分析:产品原型.需求规格说明书 设计:产品文档,ui界面设计,概要设计,详细设计,数据库设计 编码:项目代码,单元测试 测试:测试用例,测试报 ...

  3. Java job interview:公司项目Java开发走进软件世界

    软件(中国大陆及香港用语,台湾称作软体,英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合.一般来讲软件被划分为系统软件.应用软件和介于这两者之间的中间件.软件并不只是包括可以在 ...

  4. Java笔记11-软件开发流程设计原则

    今天内容: 1.常用的设计原则 2.常用的设计模式 3.常用的查找算法 4.常用的排序算法 1.常用的设计原则(记住) 1.1软件的开发流程 软件开发授权-投标 -> 100万 1. 编写需求分 ...

  5. (5)ISE软件开发流程(第1天)

    (5)ISE软件开发流程(第1天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)ISE软件开发流程(第1天) 5)技术交流 6)参考资料 2 FPGA初级课程介 ...

  6. 软件开发流程包含哪些内容

    2019独角兽企业重金招聘Python工程师标准>>> 能否开发出一个好的软件,关键是看软件开发前期所做的工作,重点是这个软件有没有一个好的 软件开发流程,因为一个好的软件开发流程关 ...

  7. 软件项目开发流程以及人员职责

    软件项目开发流程以及人员职责 实行软件工程项目管理: ▲ 项目经理(负责人):项目经理(负责人)对整个项目负完全责任,是指导.控制.管理和规范某个软件和软/硬件系统建设的人,项目经理(负责人)是最终对 ...

  8. 大智慧 软件 开发语言_智慧工厂培训软件开发流程篇

    为了提高河北钢谷电子商务股份有限公司软件开发的工作效率,明确软件开发过程中相关人员的岗位职责,2020年4月2日下午五点,智慧工厂项目组特开展此次软件开发流程有关培训会议,由纪伟经理担任主讲. 智慧工 ...

  9. 怎么做软件开发,软件开发流程八个步骤

    软件开发流程是指软件开发设计的一般流程,包括软件的总体结构.模块的组成.功能的设计.程序的编译.调试.联调.测试等过程.主要步骤有:项目分析.确定开发.需求分析.设计.编程.软件测试.软件交付.验收. ...

最新文章

  1. 单细胞RNA降维之UMAP
  2. box-sizing 属性
  3. [原创]SpotLight性能监控工具使用介绍
  4. 【opencv】14.cv::cvtColor函数转换颜色空间时使用CV_RGB2BGR与CV_BGR2RGB结果一样的原因
  5. 批处理之显示隐藏文件
  6. elk的一些零碎知识
  7. JavaScript入门(part2)--JS书写方式及注释
  8. 四、华为鸿蒙HarmonyOS应用开发之Java开发下Page Ability生命周期
  9. Spring Boot的自动配置的原理
  10. 超详细!一文带你了解 LVS 负载均衡集群!
  11. 正确的CentOS系统配置
  12. Cygwin的中文支持(解决乱码)
  13. 机顶盒网络包获取方式
  14. JetBrain全家桶教育账号申请,每年官方发送一封验证邮箱,验证身份,安全有效
  15. 鸡兔同笼php编程,C语言鸡兔同笼问题
  16. AtCoder Grand Contest 007 题解
  17. 值得收藏-50个免费可商用图库
  18. 接口文档系统 - Yapi
  19. B端和C端产品主要差异:用户、体验、数据
  20. 2021年中国人工智能企业数量、投资数量及金额分析:国内互联网巨头腾讯企业投资达82家[图]

热门文章

  1. Asynframe framework v1.3
  2. 大学python和vb哪个简单-VB强大还是python强大
  3. 畅谈seo接单时我们需要注意的三个问题
  4. Flutter 基础目录结构介绍、入口自定义widget、等相关组件使用
  5. 其他算法-不动点迭代
  6. 温度采集模块的分类及应用
  7. 联想笔记本无法通过按键进入bios解决方法。
  8. 适老化产品开发:用科技和智能解决老龄化难题
  9. mysql每天创建表_Navicat for MySQL 每天自动创建数据表
  10. linux syscall 输出函数,Golang:如何在Linux上使用syscall.Syscall?