vivado入门教程-峰哥版

合集下载

vivado原语使用方法

vivado原语使用方法

vivado原语使用方法Vivado原语使用方法Vivado原语是一种在Xilinx Vivado设计工具中使用的基本构建模块。

它们是硬件描述语言(HDL)中的预定义硬件元素,可用于构建数字电路设计。

Vivado原语提供了一种快速和灵活的方法来实现常见的数字逻辑功能。

本文将介绍Vivado原语的使用方法,以帮助读者更好地理解和应用这些常用的硬件构建模块。

在Vivado中,原语可以通过两种方式使用:RTL(Register Transfer Level)和Schematic。

RTL是一种基于HDL的设计方法,允许工程师按照信号的传输和寄存器的级联来描述电路。

Schematic是一种基于图形界面的设计方法,它提供了一种直观的方式来构建电路图。

下面将分别介绍这两种方法的使用步骤。

1. RTL方法:在Vivado中创建一个新的RTL工程。

然后,使用文本编辑器打开新建的工程文件,并在文件中添加所需的原语。

Vivado原语通常以模块的形式存在,每个模块都包含一个或多个输入和输出端口。

通过声明输入和输出端口,可以定义原语的功能和接口。

接下来,使用连接运算符将原语的输入和输出端口连接到其他模块或信号。

最后,编译RTL设计并生成比特流文件。

2. Schematic方法:在Vivado中创建一个新的Schematic工程。

然后,在工程中打开Schematic编辑器。

在编辑器中,可以选择所需的原语并将其拖放到设计窗口中。

Vivado提供了一个图形库,其中包含各种常用的原语,例如逻辑门、寄存器和计数器等。

选择原语后,可以通过添加和连接线路来定义原语的功能和接口。

最后,编译Schematic设计并生成比特流文件。

无论是使用RTL还是Schematic方法,都需要注意以下几点:1. 确保原语的输入和输出端口的数据类型和宽度与设计需求一致。

2. 仔细阅读原语的文档和规范,了解其功能和使用方法。

3. 在设计中合理使用原语,避免过度使用或重复使用,以提高设计的性能和效率。

VIVADO下IBERT使用指南

VIVADO下IBERT使用指南

VIVADO下IBERT使用指南第一部分生成IBERTIP及运行工程生成配置文件1.选择IP,选择FPGA版本,protocol数量(所有通道用一个速率的话一般只选择1个protocol),速率,参考时钟频率,通道数量和QuadPLL(大于6G 的速率时必须选择)2.选择需要的Quad通道114和115,及参考时钟源,这里选择合用QUAD114的参考时钟3.时钟源选择QUAD_114_CLK0做为整个IP的系统时钟,当然这个需要根据硬件实际情况来选择。

4.生成IP之后在IP的顶层右键点击OpenIPE某ampleDeign,然后会打开一个新的VIVADO界面。

第二部分上板利用IBERT验证GT某管脚5.如果需要在ISE的ChipScope中查看IBERT时,直接点击ISE的ChipScope的Analyzer,然后点击链接->配置FPGA。

如下图所示6.如果是要在VIVADO中查看Ibert,则需要打开HardwareSeion,如下图所示7.点击Openanewhardwaretarget8.Openanewhardwaretarget界面点击Ne某t9.不用更改,点击ne某t10.选择目标FPGA芯片点击ne某t11.无需更改,点击ne某t12.选择配置文件13.选择配置的FPGA,点击右上角createlink14.点击+号将所有通路添加进去15.点击Ne某t16.IBERT界面19.可将光标放在BERT栏上右键,就可以弹出菜单,根据需要添加或减去功能20.将T某Pattern和R某Pattern选为31bit与IP中设置相符21.点击AUTOREFRSSH可以看到各个通道的速率变化。

VIVADO下IBERT使用指南

VIVADO下IBERT使用指南

VIVADO下IBERT使用指南第一部分生成IBERT IP及运行工程生成配置文件1.选择IP,选择FPGA版本,protocol数量(所有通道用一个速率的话一般只选择1个protocol),速率,参考时钟频率,通道数量和Quad PLL(大于6G的速率时必须选择)2.选择需要的Quad 通道114和115,及参考时钟源,这里选择合用QUAD114的参考时钟3.时钟源选择QUAD_114_CLK0做为整个IP的系统时钟,当然这个需要根据硬件实际情况来选择。

4.生成IP之后在IP的顶层右键点击Open IP Example Design,然后会打开一个新的VIVADO 界面。

第二部分上板利用IBERT验证GTX管脚5.如果需要在ISE的ChipScope中查看IBERT时,直接点击ISE的ChipScope的Analyzer,然后点击链接->配置FPGA。

如下图所示6.如果是要在VIVADO中查看Ibert,则需要打开Hard ware Session,如下图所示7. 点击Open a new hardware target8. Open a new hardware target界面点击Next9. 不用更改,点击next10.选择目标FPGA芯片点击next11.无需更改,点击next12. 选择配置文件13.选择配置的FPGA,点击右上角create links14.点击+号将所有通路添加进去15. 点击Next16. IBERT 界面19.可将光标放在BERT栏上右键,就可以弹出菜单,根据需要添加或减去功能20.将TX Pattern 和RX Pattern选为31 bit与IP中设置相符21. 点击AUTO REFRSSH可以看到各个通道的速率变化22. 选择一路通道,右键选择create scan可以创建眼图。

23.眼图。

vivado安装教程

vivado安装教程

vivado安装教程
1. 首先,打开Xilinx官方网站,前往下载页面,并寻找Vivado的最新版本。

2. 在下载页面中,选择适用于您的操作系统的Vivado版本,并点击下载按钮。

3. 等待下载完成后,双击安装包以开始安装过程。

4. 接下来,根据安装程序提供的指示一步一步进行安装。

您可能需要选择安装位置、许可证文件和其他选项。

确保按照您的需求进行选择。

5. 安装完成后,您可以选择启动Vivado,这将打开Vivado IDE。

6. 在Vivado IDE中,您可以创建新项目、添加设计文件、运行综合、实现和生成比特流文件等。

7. 如果您需要配置Vivado以与硬件设备进行通信,则需要在Vivado中设置连接。

根据您使用的硬件平台,选择适当的连接选项,并按照指示进行设置。

8. 安装完成后,您可以开始使用Vivado进行FPGA设计和开发。

请注意,以上步骤仅供参考,并且可能因Vivado版本或操作系统而有所不同。

请确保仔细阅读官方的安装文档或指南,并根据需要进行相应的调整和更改。

vivado 导入源文件 的方法

vivado 导入源文件 的方法

vivado 导入源文件的方法
在Vivado中导入源文件,可以按照以下步骤进行:
1. 打开Vivado软件,并创建一个新工程。

2. 在工程设置中,选择适当的工程路径和名称。

请确保路径中不包含中文字符。

3. 选择工程类型。

根据需要选择RTL(自己开发)、Post-synthesis(后综合工程)、Import(导入工程)、Example(从一个预定义的模板中创建
一个Vivado项目)等选项。

4. 根据需要选择所使用芯片的型号、封装和速度等级。

5. 完成以上设置后,点击“Create”按钮创建工程。

6. 在工程创建完成后,进入项目导航器界面。

在左侧的项目导航器中,右键单击“Sources”文件夹,并选择“Add Files to Project”选项。

7. 在弹出的文件选择对话框中,浏览并选择要导入的源文件。

可以按住Ctrl 键同时选择多个文件,或者使用通配符进行批量选择。

8. 单击“Open”按钮,将源文件添加到项目中。

9. 完成导入后,可以在项目导航器中查看已导入的源文件。

右键单击源文件,并选择“New HDL wrapper”选项,为源文件创建一个HDL封装器。

10. 完成以上步骤后,就可以开始对源文件进行仿真和综合等操作了。

需要注意的是,在导入源文件之前,确保源文件的格式和内容符合Vivado 的规范和要求。

同时,根据具体的工程需求和芯片型号等参数,可能还需要进行其他设置和配置。

建议参考Vivado的官方文档和教程,以获取更详细和准确的指导信息。

vivado ip核使用方法

vivado ip核使用方法

vivado ip核使用方法Vivado IP核是Xilinx Vivado集成开发环境中的一种可重用的IP(知识产权)模块,它们可以用于加速FPGA设计流程。

下面我将从多个角度来介绍Vivado IP核的使用方法。

1. IP核的添加和使用:在Vivado中,你可以通过IP Integrator界面来添加IP核。

首先,打开Vivado并创建一个新的项目,然后在Flow Navigator中选择“Create Block Design”来创建一个新的Block Design。

在Block Design界面中,你可以点击“Add IP”按钮来添加IP核。

你可以从IP库中选择所需的IP核,然后将其拖放到设计中。

接下来,你可以对IP核进行配置,包括参数设置、端口连接等。

完成配置后,你可以生成HDl代码以及相应的约束文件。

2. IP核的配置和定制:Vivado IP核通常具有多个参数和配置选项,你可以根据需要对其进行定制。

在IP Integrator界面中,双击已添加的IP核可以打开其配置界面,你可以在这里设置IP核的各种参数,比如时钟频率、数据宽度、接口协议等。

有些IP核还支持通过外部接口进行动态配置,这样可以在设计运行时对IP核进行调整。

3. IP核的验证和仿真:在使用IP核之前,你需要对其进行验证和仿真以确保其功能和性能符合预期。

Vivado提供了一套强大的仿真工具,你可以使用Vivado自带的仿真器或者第三方仿真工具来对IP核进行功能验证和时序分析。

在仿真过程中,你可以输入测试数据并观察输出结果,以验证IP核的正确性。

4. IP核的文档和支持:Xilinx官方网站提供了丰富的IP核文档和支持资源,包括IP核的技术文档、应用笔记、示例设计等。

在使用IP核时,你可以查阅相关的文档来了解IP核的详细功能和特性,以及最佳实践和设计建议。

此外,Xilinx还提供了在线论坛和技术支持,你可以在这里获取到针对IP核的帮助和解决方案。

vivado_pcie_教程

vivado_pcie_教程

先建立一个vivado工程,我用的版本是2015.4,其实其他版本的vivado也无所谓了。

器件型号要选xc7v2000tflg1925-1工程建立好了之后是空的,开始添加IP点击图上左边红圈里面的IP Catalog,就会出现右边的IP列表在IP列表的搜索框里键入pcie四个字母,就可以看到有两个IP被搜到。

PB的参考设计用是下面一个IP,AXI Memory Mapped to PCI Express双击选中的这个IP,就可以打开配置界面。

这就是AXI Memory Mapped to PCI Express的配置界面第一页全部采用默认设置即可这是IP配置界面的第二页,这个例子里用的是板子上的第二个GTH接口,所以第一个红圈里的block location设为X0Y1。

如果需要配置为第一个接口,就应该把第一个红圈里的block location改为X0Y0。

下面两个红圈里的配置为PCIE X4 GEN2 模式。

第三页,默认设置即可第四页,默认设置即可第五页,默认设置即可依旧默认设置即可依旧默认设置即可最后一页依旧默认设置即可,最后在此对话框右下方点击OK点红圈里的Generate , 开始编译IP红圈内信息可知,编译此IP已经成功编译IP成功后,在左上角选中的axi_pcie_0(axi_pcie_0.xci)上用右键点出右键菜单,然后左键点击右键菜单里面的“Open IP Example Design” (如红圈所示)这一步是为了让vivado自动生成xilinx官方的IP参考设计,用于上板子测试。

点击图中红圈,选择放置xilinx官方参考设计的目录。

最后点OK然后vivado会自动重新打开一个vivado窗口,窗口里面就是参考设计的工程。

这个参考工程的最终pin分配,供参考其实要改的就两个,就是最下面的sys_clk_p和sys_rst_nsys_clk_p的AG8是来自PC端的PCIE_REFCLK_P(参见子卡手册和板子手册)sys_rst_n的T24是板子上的按键SW2,下沿复位有效。

Vivado入门学习资料整理与备忘

Vivado入门学习资料整理与备忘

Vivado入门学习资料整理与备忘新的博客,新的起点!打算学习Xilinx最近大力推广的开发环境Vivado,到网上搜了一下资料,发现一个叫cuter的网友写了一系列关于Vivado的文章,从简单的HDL设计到系统设计都有相关介绍,而且步骤详细,非常适合小白入门。

重要的是基于ZedBoard实现,正好手头也有一块,能够完成文章提到的所有实验。

这里把他的文章整理出来,以备使用时查看。

1、Vivado实现纯逻辑开发——从最简单的开始这篇笔记介绍了如何使用Vivado进行基于HDL的逻辑设计,记录了从编码到最后比特流的生成流程。

2、基于Vivado的嵌入式开发——PS+PL实践这篇笔记介绍了如何在Vivado平台下实现zynq ps+pl设计,侧重点在于block design的创建,IP核的添加。

3、Vivado轻松实现IP封装这篇笔记介绍了如何在Vivado环境下将设计好的HDL资源打包成IP核,供Vivado调用。

举一反三:在Vivado环境下新建IP核流程也是类似的。

介绍完基础的工具操作之后,作者给出了一个设计实例,是一个等精度频率计。

1、Vivado设计实战——等精度频率计(概述篇)2、Vivado设计实战——等精度频率计(原理篇)3、Vivado设计实战——等精度频率计(完结篇)接下来是Vivado HLS的使用,前面的设计实例和ISE还有所关联,我还略知一二。

HLS这个东东,我是从来没接触过了。

盗用一下原作者的摘要吧。

1、Vivado HLS初体验1.1、前言该笔记主要是Vivado HLS开发流程的学习心得,掌握HLS开发的全流程:从工程创建到算法仿真到综合再到设计实现,由于截图较多,暂时只写到前两部分。

1.2、目标1)熟悉Vivado HLS GUI的使用2)如何进行C/C++算法仿真2、自己设计简单算法,进一步熟悉HLS《Vivado HLS初体验》一文中,使用别人设计的yuv_filter demo文件新建工程,添加了文件,基本掌握了新建工程和算法仿真的流程,由于没有完全按照现有的教程进行学习,所以对整个流程有了较好的理解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Xilinx zynq 7010clg400-1 sopc 基于zybo开发板之gpio使用 Vivado 2015.4 SDK 2015.4

魏如峰 2016年6月7日 20:10:33 版本说明 版本 作者 说明 目录

Vivado 搭建底层硬件系统 .............................................................................................................. 4 二、sdk使用 .................................................................................................................................. 26 三、总结......................................................................................................................................... 38 附录程序......................................................................................................................................... 38 Vivado 搭建底层硬件系统

首先使用vivado搭建一个底层硬件系统,具体操作过程如下,用图的方式来说明,直观方便

打开vivado 2015.4 如下

单击create new project,如下图,单击next 继续单击next,如下如,

解释一下 1:工程的名字 2:工程在电脑中的位置,不要中文,不要空格 3:打上勾表示在2的位置基础上创建一个子目录,不勾就表示不创建,我一般都是按大类来分,比如米尔的文件夹,zingsk的文件夹,zybo的文件夹,所以我都勾上,我的位置如下图

设置好了之后继续单击next,这里是说创建一个什么养的工程 一般都是rtl的工程,其他的我还没研究过,直接看官方文档学的,做fpga或者soc,sopc,都是rtl工程。这里也有个可以勾选的地方,勾上的意思是现在不指定源文件,如果不够上,就进入具体设置,有硬件语言的类型,ip的选择,and so on ,可以自己去看看,建议勾选,这些可以在工程中设置的,没有必要提前设置

单击next 这里面可选的就很多了,从上到下,从左到右简单的说下 Part和board分别指的是单个芯片和官方或者安富利的板子 下面的这些是指fpga的类和速度和温度,左后的search,是你之前用过的芯片的记录或者直接收你想要的芯片名字,第一次选好,以后直接到search中选就行 这个是zybo的板子的芯片型号,或者在board中直接选zybo,继续单击next,一个summary 继续单击next,vivado给咱们创建工程 创建好了就是这个样子,一个空的工程

接下来我们要建立一个空的图片,用来搭建zynq的底层,单击箭头指的地方 会出现下图这样 这个表示设计的名字和存储的路径,一般都是系统,我习惯于功能加系统的方式命名,比如这次是对gpio进行操作,我会做gpio_sys,然后单击ok 接下来我们来添加zynq的ps,单击,或者单击,再或者crtl + I

出现这个图

我们在search这输入zynq,选择第一个,单击左键或者回车,都行,下面的那个好像是microblaze,没用过,以后再研究,好像类似于nios(这块我不确定,可以忽略不记) 完了是这个样子的 双击zynq 如图,配置zynq,这里是重点,详细说起来很多,可以参考ug585,我现在也没有全搞明白,也是觉得哪里不对去文档里找,那个文档1800多页,细读完了一定会忘,不如用哪看哪(个人观点) 配置完是这样 单击run block automtian 完了是这样的,把ddr和fix——io引出来了 接下来就是本文重点,开始添加gpio的ip

双击 配置gpio的ip,简单改一下ip的位宽, 单击ok 然后直接单击 如图 然后在导航栏,点source 右键gpio_sys 单击create hdl wapper 单击ok 上面的那个是手动,后面让eda自动updata,选下面的就好,单击ok

在左侧的导航栏中,单击箭头指的位置 生成一些ip的约束, 单击genrate

等一会 单击ok,然后编译,等着

如果之前忘了保存,这时候会弹出保存的,选save

一段漫长的等待之后,分配管教,指定电平水平LMOS33 然后这样,先不要综合,没有分配管教 在这点这个 然后在这选layout 然后选ioplane

单击之后如下图 分配完了,ctrl + s 点ok 设置一个名字 可以叫pin_location 然后综合

然后生成bit文件 这个bit文件可以生成,也可以不生成,取决于有没有pl,有的话就要生成bit文件

这两个过程很长时间!!!!!!!最后好了单击ok Vivado的工作要完成了,就剩最后两步 File –》export export hardware

如下图 单击ok

最后file –》lanch sdk,vivado的工作就完成了

二、sdk使用 File—》new—》baord suport package

默认选项就行 单击finish

如下图,再单击finish

左边多了一个bsp的文件夹 在这里有我们想要用的函数和一些参数信息 今天这个是gpio的,主要这个两个函数头文件 再建一个应用工程 然后起名子, 短则刚才建立bsp生成的bsp Next,选helloword工程 单击finish 多了一个工程 接下来就可以写程序了 展开这个gpio的工程

打开如图 接下来我们先写程序,要讲三个函数 1. gpio初始化函数 2. gpio数据方向设置函数 3. gpio写数据函数

有关gpio大概有十二三个函数,在bspincludexgpio.h下,在crtl+左键,进入xgpio.c讲的很详细,不过是英语的,如图

这是讲初始化函数的 我先说这几个参数什么意思,再说怎么用 首先 int Xgpio_Initialize(Gpio*inr,u16 DeviceID); 这个函数是有返回值的,返回一个int型,0和1 其中 0:XST_SUCCESS,1:XTS_DEVICE_NOT_FOUND 写程序的时候可以直接判断一个变量 比如 if(a == XST_SUCCESS or XTS_DEVICE_NOT_FOUND ){}

或者if(a==0 or 1){} 前面的指针变量是指向某个gpio的,该gpio在xilinx中被定义为Xgpio类型的变量,后面的device id 表示你要初始化的具体的gpio,这个id在bspincludexparameters.h下,比如

在这里可以对这些代码进行更改,如果觉得名字太长的话。 具体怎么用这个函数呢,我来仔细说 首先要包含两个头文件 xparameters.h和xgpio.h 然后声明一个Xgpio类型的变量 最后调用Xgpio_Initialize函数

Ex:#include“xparameters.h” #include“xgpio.h” XGpio gpio_led; Xgpio_Initialize(&gpio_led, 0);

成功了,我们一步一步往下来

接下来我们来设置数据流方向,用到的就是void Xgpio_SetDataDirection(XGpio *inr, channel, direction ),无反回参数的函数

简单的解释一下,指针跟前面的一样,channel,就是通道,在做gpio ip配置的时候,不知道有没有注意到gpio有两个通道,所以这个值就是1 or 2 ,分别代表通道1和通道2,最后就是方向,数据是输入(读),还是输出(写),这里也是两个值0:代表输出,1:代表输入

Ex:#include“xparameters.h” #include“xgpio.h” XGpio gpio_led; void Xgpio_SetDataDirection(&gpio_led,1,0);//通道1,输出

接下来我们就来点亮一个灯,用的是void XGpio_DiscreteWrite(XGpio * InstancePtr, unsigned Channel, u32 Data)函数 前两个参数和上面的基本相同,u32 data 就是要写的数据,我们给个000f,全亮

#include“xparameters.h” #include“xgpio.h” XGpio gpio_led; void Xgpio_SetDataDirection(&gpio_led,1,0x0a);

相关文档
最新文档