最近终于有空可以记录一些之前学习的内容,本博客系列记录笔者Xilinx ISE学习之旅,当然现在Vivado是学习热门,一步一步来。搞定

ISE,Vivado上手也会很快。

1.安装软件

软件部分的下载与安装可自行到Xilinx官网下载http://china.xilinx.com/

2.新建工程文件并编写源程序

图1 新建工程

用过Altera的Quartus II,再使用Xilinx的ISE,基本上流程都差不多,在file---new project,如图1所示,出现如下图2界面,分别填写工程名称,具体路径和工作目录,并选择顶层源文件类型为HDL,输入完毕后点击next。

图2工程名填写

图3是工程参数设定,Xilinx的参数设定界面相比于Altera的界面确实要细致很多,如果用户是使用评估板,那么在Evaluation Development Board中可以对应选择评估板型号,若是DIY,保持默认。器件选择根据用户使用的型号进行选择,这里笔者选用Spartan 6 XC6SLX9,Xilinx的Spartan 系列和Altera的 Cyclone系列有点类似,属于经济实用型,适合DIYer。选择好对应的封装和速度等级。仿真工具可以选择ISE自带的,也可以选择Modelsim。点击next---finish完成工程建立。

图3 工程参数设定

完成新建工程后,在ISE软件端可以看到所建立的工程名,以及所选择的元器件型号。在工程文件中也有了变化,增加了ise_ex1.xise工程文件。

图4 软件内容更改

在图5的工程目录点击右键,选择new source,出现图6所示的界面,设置好源文件名和存放路径,并选择verilog进行编程。点击next,出现端口名,这里不设置,直接点击next---finish。

图5 增加源文件

图6 文件类型和存放路径

图7是新建完成的源文件,已经自动加入了模块名,头文件信息和编译时间单位。

图7 新建的文件内容

图8是编写的1s计时范例,并生成flag使能信号,点击编译查看代码是否有误,如图9所示。

图8 程序范例

图 9 编译选项

3.分配引脚

编译完测试程序后,没出现错误后,若要下载到板级进行测试,需要分配引脚,在菜单栏 Tools----PlanAhead-Pre-Synthesise然后进入到图10界面,这里“Site”一列可以输入它们对应FPGA的引脚;“I/O Std”一列可以输入I/O电平标准;对于输出信号,“Drive Strength”一列还可以设置输出驱动电流强度。配置完成后记得保存,然后退出即可。

图10 引脚分配

保存引脚分配文件后,会在工程目录下新增xxx.ucf文件,此文件为引脚分配文件。双击打开ucf文件可以看到图12中的内容。使用过Quartus II用户的朋友,在引脚分配时往往都会使用.tcl脚本文件来分配引脚,方便快速。Xilinx也可以采用类似方法,操作如图13所示。

图11 文件更改

图12 ucf文件内容

如图13新建一个ucf文件,如图14所示,选择对应的类型选项,点击finish即可,会自动打开ucf文件,如图15所示,文件为空白文件,并在工程下新增了刚才建立的ucf文件,ucf文件内容可以仿照之前利用GUI界面配置生成的ucf文件格式书写,如图16所示。

图13 新建ucf文件

图14 类型选项

图15 新建的ucf文件

图16 ucf文件格式

/****************************************************************

//===============================================================

上述内容如果有侵犯到您的权利,请及时与本作者联系,会在第一时间处理

联系方式:

Email :tiegen123@126.com

QQ    :2833104067

QQ交流群:298095983(FPGA&硬件学习交流群)

个人博客:http://www.raymontec.com/

其他博客:http://www.cnblogs.com/raymon-tec

淘宝店铺:https://raymontech.taobao.com/

由于作者水平有限,文中难免有疏漏或常识性错误,劳烦各位尽情指出。

欢迎大家一同讨论技术,交流设计过程中的经验,共同进步,共同学习。

//===============================================================

****************************************************************/

Xilinx 学习笔记1---新建工程和创建源代码文件的更多相关文章

  1. V-rep学习笔记:机器人模型创建3—搭建动力学模型

    接着之前写的V-rep学习笔记:机器人模型创建2—添加关节继续机器人创建流程.如果已经添加好关节,那么就可以进入流程的最后一步:搭建层次结构模型和模型定义(build the model hierar ...

  2. V-rep学习笔记:机器人模型创建2—添加关节

    下面接着之前经过简化并调整好视觉效果的模型继续工作流,为了使模型能受控制运动起来必须在合适的位置上添加相应的运动副/关节.一般情况下我们可以查阅手册或根据设计图纸获得这些关节的准确位置和姿态,知道这些 ...

  3. Linux内核分析第六周学习笔记——分析Linux内核创建一个新进程的过程

    Linux内核分析第六周学习笔记--分析Linux内核创建一个新进程的过程 zl + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/U ...

  4. Lua学习笔记4. coroutine协同程序和文件I/O、错误处理

    Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变 ...

  5. Java NIO 学习笔记(五)----路径、文件和管道 Path/Files/Pipe

    目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...

  6. EF6学习笔记(六) 创建复杂的数据模型

    EF6学习笔记总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理) 本篇原文地址:Creating a More Complex Data Model 本篇讲的比较碎,很多内容本人 ...

  7. Linux内核学习笔记之seq_file接口创建可读写proc文件

    转自:http://blog.csdn.net/mumufan05/article/details/45803219 学习笔记与个人理解,如有错误,欢迎指正. 温馨提示:建议跟着注释中的编号顺序阅读代 ...

  8. 爬虫学习笔记(2)--创建scrapy项目&&css选择器

    一.手动创建scrapy项目---------------- 安装scrapy: pip install -i https://pypi.douban.com/simple/  scrapy    1 ...

  9. Docker学习笔记--2 镜像的创建

    如果我们需要在Docker环境下部署tomcat.redis.mysql.nginx.php等应用服务环境,有下面三种方法: 1,根据系统镜像创建Docker容器,这时容器就相当于是一个虚拟机,进入容 ...

  10. Robot Framework学习笔记(九)------创建资源和用户关键字

    一.测试套件下创建用户关键字 1.创建关键字测试套件右击->点击new user keyword,然后输入name,点击OK保存. 2.在用户关键字的edit点击settings,然后输入Arg ...

随机推荐

  1. 使用requests进行模拟登陆

    import re import requests header = { 'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWe ...

  2. JDK 1.8 新特性

    default 函数式接口 待总结

  3. Ubuntu16.04搜狗输入法无法输入中文

    搜狗输入法图标显示正常,但是无法输入中文,切换为中文输入时无待选中文,只能输入英文. 这种情况应该是搜狗输入法的配置出现了问题,因为重装输入法时配置文件夹会保留,因此重装无法解决问题. 解决方案: 1 ...

  4. BZOJ3737 : [Pa2013]Euler

    首先枚举$n$的每个约数$d$,检查一下$d+1$是否是质数,这些数都有可能作为答案的质因子出现. 考虑爆搜,每次枚举下一个要在答案中出现的质因子$p$,将$n$除以$p-1$,再枚举$p$的指数,然 ...

  5. fastjson转换json字符串key的首字母小写变大写的解决办法

    https://blog.csdn.net/erbao_2014/article/details/53688934 问题描述在开发过程中,由于接口文档的描述,要求json字符串的key首字母为大写,而 ...

  6. 浅谈MFC类CrackMe中消息处理函数查找方法

    最近一个学姐发给我了一份CrackMe希望我解一下,其中涉及到了MFC的消息函数查找的问题,就顺便以此为例谈一下自己使用的消息函数查找的方法.本人萌新,如果有任何错漏与解释不清的地方,欢迎各路大佬指正 ...

  7. [Vuex] Perform Async Updates using Vuex Actions with TypeScript

    Mutations perform synchronous modifications to the state, but when it comes to make an asynchronous ...

  8. [JS]常见JS错误之一:Uncaught SyntaxError: Unexpected identifier

    在编写JS时如果创建变量没有用var而是使用了变量的类型,如: MyClass c=new MyClass(); 这样的错误Java程序员容易犯,也许不经意就写出来了,然后chrome的开发者工具里会 ...

  9. $gopath not set的解决办法

    执行安装 sudo go get github.com/nsf/gocode 提示: cannot download, $GOPATH not set. For more details see: g ...

  10. 解决eureka注册时使用ip而不是hostname

    eureka的client注册到server时默认是使用hostname而不是ip,这就导致client在多台机器时,服务间相互调用时也会使用hostname进行调用,从而调用失败.这时候就需要使用i ...