ISE开发流程——软件操作
海风 Xilinx FPGA 学习笔记(1)-- 软硬件环境的搭建和开发操作教程
(2014-01-08 16:26:44)
标签:
xilinxfpga开发操作流程软硬件环境搭建学习笔记 |
分类: 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开发流程——软件操作相关推荐
- 从多图对比看Vivado与ISE开发流程的差异
从多图对比看Vivado与ISE开发流程的差异 特性比较 对 Vivado 和它的前一代设计套件,ISE 做一个组件功能上的平行比较和总结是很有用的.其目的是让那些具有在 ISE 下工作经验 (但是不 ...
- 瑞吉外卖项目(一)软件开发流程设计及环境搭建
第一章 软件开发整体介绍 软件开发流程 软件开发流程 需求分析:产品原型.需求规格说明书 设计:产品文档,ui界面设计,概要设计,详细设计,数据库设计 编码:项目代码,单元测试 测试:测试用例,测试报 ...
- Java job interview:公司项目Java开发走进软件世界
软件(中国大陆及香港用语,台湾称作软体,英文:Software)是一系列按照特定顺序组织的计算机数据和指令的集合.一般来讲软件被划分为系统软件.应用软件和介于这两者之间的中间件.软件并不只是包括可以在 ...
- Java笔记11-软件开发流程设计原则
今天内容: 1.常用的设计原则 2.常用的设计模式 3.常用的查找算法 4.常用的排序算法 1.常用的设计原则(记住) 1.1软件的开发流程 软件开发授权-投标 -> 100万 1. 编写需求分 ...
- (5)ISE软件开发流程(第1天)
(5)ISE软件开发流程(第1天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)ISE软件开发流程(第1天) 5)技术交流 6)参考资料 2 FPGA初级课程介 ...
- 软件开发流程包含哪些内容
2019独角兽企业重金招聘Python工程师标准>>> 能否开发出一个好的软件,关键是看软件开发前期所做的工作,重点是这个软件有没有一个好的 软件开发流程,因为一个好的软件开发流程关 ...
- 软件项目开发流程以及人员职责
软件项目开发流程以及人员职责 实行软件工程项目管理: ▲ 项目经理(负责人):项目经理(负责人)对整个项目负完全责任,是指导.控制.管理和规范某个软件和软/硬件系统建设的人,项目经理(负责人)是最终对 ...
- 大智慧 软件 开发语言_智慧工厂培训软件开发流程篇
为了提高河北钢谷电子商务股份有限公司软件开发的工作效率,明确软件开发过程中相关人员的岗位职责,2020年4月2日下午五点,智慧工厂项目组特开展此次软件开发流程有关培训会议,由纪伟经理担任主讲. 智慧工 ...
- 怎么做软件开发,软件开发流程八个步骤
软件开发流程是指软件开发设计的一般流程,包括软件的总体结构.模块的组成.功能的设计.程序的编译.调试.联调.测试等过程.主要步骤有:项目分析.确定开发.需求分析.设计.编程.软件测试.软件交付.验收. ...
最新文章
- 单细胞RNA降维之UMAP
- box-sizing 属性
- [原创]SpotLight性能监控工具使用介绍
- 【opencv】14.cv::cvtColor函数转换颜色空间时使用CV_RGB2BGR与CV_BGR2RGB结果一样的原因
- 批处理之显示隐藏文件
- elk的一些零碎知识
- JavaScript入门(part2)--JS书写方式及注释
- 四、华为鸿蒙HarmonyOS应用开发之Java开发下Page Ability生命周期
- Spring Boot的自动配置的原理
- 超详细!一文带你了解 LVS 负载均衡集群!
- 正确的CentOS系统配置
- Cygwin的中文支持(解决乱码)
- 机顶盒网络包获取方式
- JetBrain全家桶教育账号申请,每年官方发送一封验证邮箱,验证身份,安全有效
- 鸡兔同笼php编程,C语言鸡兔同笼问题
- AtCoder Grand Contest 007 题解
- 值得收藏-50个免费可商用图库
- 接口文档系统 - Yapi
- B端和C端产品主要差异:用户、体验、数据
- 2021年中国人工智能企业数量、投资数量及金额分析:国内互联网巨头腾讯企业投资达82家[图]
热门文章
- Asynframe framework v1.3
- 大学python和vb哪个简单-VB强大还是python强大
- 畅谈seo接单时我们需要注意的三个问题
- Flutter 基础目录结构介绍、入口自定义widget、等相关组件使用
- 其他算法-不动点迭代
- 温度采集模块的分类及应用
- 联想笔记本无法通过按键进入bios解决方法。
- 适老化产品开发:用科技和智能解决老龄化难题
- mysql每天创建表_Navicat for MySQL 每天自动创建数据表
- linux syscall 输出函数,Golang:如何在Linux上使用syscall.Syscall?