Vivado使用简介150908

上传人:ali****an 文档编号:121577300 上传时间:2020-02-24 格式:PDF 页数:28 大小:2.14MB
返回 下载 相关 举报
Vivado使用简介150908_第1页
第1页 / 共28页
Vivado使用简介150908_第2页
第2页 / 共28页
Vivado使用简介150908_第3页
第3页 / 共28页
Vivado使用简介150908_第4页
第4页 / 共28页
Vivado使用简介150908_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《Vivado使用简介150908》由会员分享,可在线阅读,更多相关《Vivado使用简介150908(28页珍藏版)》请在金锄头文库上搜索。

1、Vivado 使用使用入门入门 简介简介 一个典型的 用 Vivado 进行数字逻辑电路设计的过程包括 创建模块 创 建用户约束文件 创建 Vivado 工程 插入创建的模块 声明创建的约束文件 随 意地运行动作的仿真 对创建的模块进行综合 执行设计 产生位文件 最后将 文件下载到硬件上验证设计的正确性等步骤 Figure 1 A typical design flow 完成一个实际电路的实例 一一 新建工程 新建工程 步骤步骤如下 如下 1 打开打开 Vivado Start All Programs Xilinx Design Tools Vivado 2013 3 Vivado 2013

2、 3 或双 击桌面图标 显示如下界面 Creating New Project 建立新工程导航 用于建立各种类型的工程 Open Project 打开一个已有的工程 Open Example Project 打开示例工程 Documentation and Tutorials 文件夹和说明书 可以打开Xilinx使用说明书和部 分设计数据 User Guide 打开Vivado用户指南 Quick Take Videos 打开Xilinx视频说明书 2 点击 Create New Project 开始新建 开始新建工程向导 工程向导 弹出弹出下图下图 点击 Next 进入设置此次所建项目的名称

3、对话框 第一次实验前 请为本课 程所有的项目新建一个文件夹 如 digital 以后所有本课程相关项目均放在 此文件夹下 在 project location 栏选择此文件夹 接着 为本项目取名 如 tutorial01 勾选 Create Project Subdirectory 在当前目录下为本工程新建一 个同工程名的子目录 保存工程所有数据文件 注意 工程名称和存储路径中不能出现中文和空格 建议工程名称和路径名称 都是以字母开头 由字母 数字 下划线来组成 点击 Next 进入工程类型界面 指明工程类型 这一步定义了工程源文件的 类型 选择 RTL Project 勾选 Do not s

4、pecify sources at this time 勾选该选 项是为了跳过在新建工程的过程中添加设计源文件的过程 点击 Next 进行目标器件的选择 根据实验平台选择相应的FPGA器件 本实 验使用的是Xilinx公司的Nexys4开发板 此开发板上的FPGA为Artix 7系列芯片 即 Family 和 Subfamily 均为Artix 7 封装形式 Package 为csg324 速度等 级 Speed grade 为 1 温度等级 Temp Grade 为C 在出现的两个器件中 选 择xc7a100tcsg324 1的器件 注 实验室也提供zedboard的开发板 如果选用的是ze

5、dboard的开发板 此开发 板上的FPGA为Zynq 7000系列芯片 即 Family 和 Subfamily 均为Zynq 7000 封装形式 Package 为clg484 速度等级 Speed grade 为 1 点击 Next 进入新建工程总结界面 确认相关信息与设计所用的FPGA器件信 息是否一致 一致请点击 Finish 不一致 请返回上一步修改 完成后 进入空白的Vivado工程界面 如图 完成新建工程过程 二 输入设计文件 1 如下图所示 点击Flow Navigator下的Project Manager Add Sources或中间 Sources中的Add Source

6、s对话框 打开添加设计文件对话框 2 选择 Add or Create Design Sources 用来添加或新建Verilog或VHDL源文 件 点击 Next 如果有已经写好的 v vhd文件 可以通过 Add Files 一项添加 在这里 我们要新建文件 所以选择 Create File 这一项 4 在 File Type 中选择Verilog 在 Create Source File 中 File Name 栏 输入你为该工程取的顶层实体文件名 这里我们取名为 tutorial 文件名可以 和工程名一样 也可以不一样 注意 件名称以字母开头 由字母 数字 下 划线来组成 不能出现中文

7、和空格 不能以数字开头 如图 点击 OK 新添加的Verilog文件 tutorial v 出现在对话框中 点击 Finish 6 在弹出的Define Module中的I O Port Definition 输入此次设计的模块中所需 的端口 并设置输入 输出 如果端口为总线型 勾选Bus选项 并通过MSB和 LSB确定总线宽度 完成后点击OK 这一步也可以不用设置端口线 以后在 Verilog文件中直接声明也可以 如果这一步设置错了 也可以在Verilog文件 中修改 7 新建的设计文件 此处为tutorial v 即存在于Sources中的Design Sources中 双击 tutori

8、al v 打开该文件 输入相应的设计代码 如图 如果刚才设置了 端口 则此时的代码中已经对端口进行了声明 如刚才没有设置端口 在这里 要重新声明 本段代码的功能是完成一个四个灯的循环点亮电路 这样来说 有一个电路 它有两个输入端clk和rst rst的功能是对电路进行 复位 每次输入 1 值 打开复位开关 四个灯的最右面的等亮 其他灯暗 如 果输入 0 值复位开关 关 则电路正常工作 四个灯循环向左逐个点亮 但每次 只有一个灯亮 clk是时钟信号 这里使用的是开发板上自带的一个系统时钟 频率是100MHZ的 当时钟信号从0计满一次224后 亮的灯顺次向左移1位 电路的输出端是led 是一个四位

9、的变量 复位时输出 0001 然后每计满 个224时钟周期 循环左移一位 这段代码的两个输入端是 时钟clk和复位rst端 输出端是一个四位的总线 结构Led 3 0 led 3 led 2 led 1 led 0 代码解释 module tutorial input clk 输入信号 时钟信号 缺省宽度 默认为1位 input rst 输入信号 复位信号 缺省宽度 默认为1位 output 3 0 led 输出信号 宽度为4位 发光二极管 reg 23 0 cnt reg 局部变量 1个24位的寄存器 用于计数 reg 3 0 light reg 局部变量 1个4位的寄存器 用于暂存数据 因

10、为以上两个变量要在always块中被赋值 因此语法要求定义为reg型变量 如果是在assign语句中被赋值 则应声明为wire型变量 always posedge clk always块 每当时钟上升沿到来时执行always块 中begin end 之间的语句 begin if rst 如果复位信号有效 cnt reg 0 计数器清0 else 否则 cnt reg cnt reg 1 计数器加1计数 end always posedge clk always块 每当时钟上升沿到来时执行always 块中begin end 之间的语句 begin if rst 如果复位信号有效 light r

11、eg 4 b0001 暂存器中的值赋值为 4 b0001 else if cnt reg 24 hffffff begin 如果复位信号无效 切计数器已 经计数到24 hffffff if light reg 4 b1000 如果暂存器中的值为 4 b1000 light reg 4 b0001 则将暂存器赋值为 4 b0001 else 如果暂存器中的值不为 4 b1000 light reg light reg 1 则将暂存器中的数左移一位 end end assign led light reg 将暂存器中的值从输出端输出 endmodule 如果大家不能理解这段代码的含义 也没有关系

12、这个例子只是让大家先 认识一下Verilog语言 了解一下Vivado设计的流称 轮流点亮灯是为了增加实验 的趣味性 保存 编译器会自动初步检查语法错误 并将此文件加入到工程库中 如 果编译器检查没有语法 拼写错误 则在Sources栏可见此文件 且文件前有一个 型符号 如果没有此符号出现 说明文件没有正确加到工程中 检查添加文件步骤 是否正确 或者文件中是否有逻辑错误使得文件无法正常解析 激励代码保存后 可以点击工程导航栏Synthesis下的 Run Synthesis 对工 程进行编译 编译过程是对设计进行检查 检查设计中的简单逻辑 语法错误 等 请仔细检查 error 项 修改每一个e

13、rror后再编译 二 利用Vivado进行功能仿真 1 创建激励测试文件 在 Source 区域中右击选择 Add source 2 在Add Source界面中选择第三项Add or Create Simulation Sources 点击Next 3 选择 Create File 创建一个新的激励测试文件 4 输入激励测试文件名 和设计代码文件区别开 点击 OK 点击 Finish 5 在弹出的端口设置对话框中 不要设置端口 6 点击 OK 7 新建的测试文件 此处为 test tutorial v 即存在于 Sources 中的 Simulation Sources 中 8 双击打开te

14、st tutorial v 输入测试激励代码 激励代码的作用是给输入信号赋不同的值 检查输出的变化是否符合设计要 求 注意 测试代码的端口参数列表要保持空的 在变量声明中 输入变量声明 reg 类型的 输出变量要声明为 wire 类型的 保存激励代码 如果没有语法错误 这时在Sources栏的Simulation Sources栏 下会出现实例 u0 因为测试代码中将tutorial模块实例化 并取名为 u0 如果没有出现 u0 则检查测试代码是否有逻辑错误 修改错误 保存 直至 测试代码被正确解析 激励激励代码解释 代码解释 timescale timescale 1ns 1ps1ns 1p

15、s 此语句说明时延时间单位为1 ns并且时间精度为1ps 如 2 代表延时时间2 ns 另另 在 在生成生成test tutorial v文件的时候 编译器会在test tutorial v文件的第一个 自动产生这个语句 如果自动产生了 则不用用户重复输入了 但用户可以修 改延时时间和时间精度 module test tutorial reg clk reg rst wire 3 0 led tutorial u0 clk clk rst rst led led 这条语句是将tutorial v文件中的tutorial模块实例化 并取名为 u0 因 为我们是要对tutorial模块进行仿真 因

16、此要实例化tutorial模块 parameter PERIOD 10 定义一个常量 always begin always 是指循环执行下面这段激励 一般用于 写时钟激励 也可以将下面两句写为 clk1 clk1 PERIOD 2 clk 1 b0 PERIOD 2 让clk 0 维持5ns clk 1 b1 PERIOD 2 让clk 1 维持5ns end initial begin 初始化 将所有变量初始化初值 clk 1 b0 rst 1 b0 20 将clk初始化为0 rst初始化为0 维持20ns rst 1 b1 20 将rst设置为1 维持20ns rst 1 b0 然后将rst设置为0 end endmodule 保存激励文件后 点击项目导航栏Simulation下的 Run Simulation 选择 Run Behavioral Simulation 9 下图所示为仿真界面 可以点击等图标 对仿真图进行放大和缩小 还可以通过左侧 Scope 一栏中的目录结构定位到设计者想要查看的 module 内部 寄存器 点击 Scopes 栏中的 u0 在 Objects

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号