Xilinx系ZYNQ学习笔记(一)Vivado使用说明

news2024/11/13 10:52:29

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 启示界面介绍
  • 新建工程
  • 主界面
    • RTL分析与描述
    • 设计与综合
    • 引脚分配约束
    • 设计实现
    • 比特流文件的下载
    • 固化程序
  • 添加源文件


前言

最近买了块xilinx的FPGA进行学习

启示界面介绍

在这里插入图片描述

新建工程

在这里插入图片描述
在这里插入图片描述

主界面

在这里插入图片描述

鼠标放在选项上时会出现中文翻译
在这里插入图片描述

RTL分析与描述

RTL分析与描述:用 Verilog 语言去描述电路,进行语法错误检测(register-transfer level,寄存器传输级)
在这里插入图片描述
单击Schematic,打开 RTL 原理图。该原理图是依据 HDL 描述生成的,根据该原理图可以查看设计是否达到要求并加以修改。
在这里插入图片描述
这是用我们常见的数字逻辑器件搭建的原理图

设计与综合

在这里插入图片描述
在综合后的原理图视图中,电路网表即采用 FPGA 器件中拥有的基本元件来搭建,RTL 设计转化为基于 FPGA 底层资源的电路网表
在这里插入图片描述

可以查看 LUT的内部映射关系。在原理图窗口内选择 LUT对应的 Cell。在 Sources 窗口下方的 Cell Properties 窗口中,选择 Truth Table,可以看到逻辑表达式以及真值表
在这里插入图片描述
Report Utilization们可以得到工具针对当前设计的资源利用率的详细报告
在这里插入图片描述
LUT:查找表(Look-Up-Table),本质上就是一个RAM。它把数据事先写入RAM后,每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。
FF:(Flip Flop):触发器,时钟沿触发,可以存储1bit的数据,是reg的基本存储单位。
IO:外部引脚

引脚分配约束

Open Synthesized Design 来打开综合后的设计,只有综合后才能分配引脚,在菜单栏的layout中,I/O Planning view 点击进入 IO 规划视图界面
在这里插入图片描述

设计实现

将 FPGA 综合后的电路网表针某个具体指定的器件以及相关物理与性能约束进行优化、布局、布线并生成最终可以下载到
FPGA 芯片配置文件的过程。
在这里插入图片描述
实现过程分为几个子过程:

  1. 优化设计 Opt Design : 针对所选器件,对逻辑设计进行优化,以便达到最优实现;
  2. 功耗优化设计 Power Opt Design (可选):从降低功耗的角度,对逻辑设计进行优化;
  3. 布局设计 Place Design(必选):将设计网表在所选器件上进行布局;
  4. 布局后功耗优化 Post-Place Power Opt Design (可选):在布局之后的网表基础上优化功耗;
  5. 布局后物理优化 Post-Place Phys Opt Design (可选):在布局之后的网表基础上进行物理优化,主要针对时序性能;
  6. 布线设计 Route Design(必选): 在布局后的设计上,进行布线;
  7. 布线后物理优化 Post-Route Phys Opt Design (可选):在布线后的设计上,参考布线后的设计延时,对逻辑、布局、布线等情况再次进行优化;
    在这里插入图片描述

比特流文件的下载

将 Vivado 实现产生的网表文件转化为比特流文件,并且将比特流文件下载到 FPGA 芯片中。在这里插入图片描述
编译好后,Open Hardware Manager
在这里插入图片描述
单击 Auto Connect 连接设备,右键单击 xc7a35t_0
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

固化程序

将程序烧写到片外 flash 上,在设置里面按照下图勾选-bin_file*,点击确定后,再重新生成一次 bit 文件,这个时候就
会在生成 bit 文件的同时也会生成 bin 文件。
在这里插入图片描述
之后添加flash器件,选择我们用的flash型号
在这里插入图片描述
在这里插入图片描述
之后选bin文件下载
在这里插入图片描述
如果想要清空可以把veritify和program选项去掉,只擦除
在这里插入图片描述
在 bin 文件烧写完后,需要拔掉下载器,重新上电才有现象

添加源文件

在这里插入图片描述
在 Sources 面板下单击+按钮,可以添加以下几种文件
Add or Create Constraints(添加或者创建约束);
Add or Create Design Sources(添加或者创建设计源文件);
Add or Create Simulation Sources(添加或者创建仿真文件);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2095554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于STM32心电模块学习笔记

一、项目简介 技术原理和优势:通过医疗电子单片机高级开发系统,读取人体生理参数监测系统发送过来的心率和心电导联信息数据包,并对这两个数据包进行解包,最后,将解包之后的心率值和心电导联信息显示在OLED显示屏上,如下图所示。该实验的数据源是人体生理参数监测系统,该…

牛牛替换(c语言)

1.//描述 //牛牛有一个长度为 n 的字符数组,他尝试把字符数组中其中一些字符替换成另一些字符。 //输入描述: //第一行输入一个正整数 n 表示字符数组的长度,四个个字符分别 a1 和 a2 , a3 和 a4, // 表示把字符数组中…

【Unity实战】Visual Studio Debug失败

Visual Studio,就像以前Eclipse在Java领域中的地位一样,至少在Jetbrains人人皆爱之前,它是主流。可能对于当下来说显得臃肿,而且没有Jetbrains智能准确的代码分析提示,但是依旧能用。而且开大工程来说,至少…

内存管理笔记

1、内存管理简介 在计算机系统中,变量、中间数据一般存放在系统存储空间中,只有在实际使用时才将它们从存储空间调入到中央处理器内部进行运算。通常存储空间可以分为两种:内部存储空间和外部存储空间。内部存储空间访问速度比较快&#xff…

【Redis】缓存(上)

为什么要使用缓存? 在日常开发中,通常使用Redis来做MySQL的缓存。究其原因,首先,根据二八定律,20%的数据可以应对80%的请求;其次,对于MySQL这样的关系型数据库来说,性能普遍都不是很…

复习:存储类别内存分配动态分配内存

目录 存储类别说明符 自动变量(auto) 寄存器变变量(register) 块作用域的静态变量(static) 外部链接的静态变量(external) 内存分配 概念回顾 动态分配内存 malloc函数 free函数 回…

若依框架(前后端分离)增加手机号验证码登录

这篇文章主要介绍了如何在若依架(前后端分离)版本中集成短信验证码登录功能。文章内容包括了前后端的详细实现步骤,并通过代码示例展示了如何生成验证码、验证验证码、验证码登录、自定义的认证处理等功能的实现。 前端部分: 登录界面改造:在现有的登录界面上增加短信验证…

Spring Boot集成google Authenticator实现mfa

1.什么时候mfa? 多重身份验证(MFA)是多步骤的账户登录过程,它要求用户输入更多信息,而不仅仅是输入密码。例如,除了密码之外,用户可能需要输入发送到其电子邮件的代码,回答一个秘密…

GoodSync - 本地云端备份同步工具

最近几年各种加密勒索软件层出不穷,个人数据受到威胁。如何让风险降到最低?养成好的备份习惯就很重要。 GoodSync 就是你值得信赖的同步备份工具,能够实现多合一管理网盘、文件安全备份或同步。 文件同步、备份好助手 要在多种设备中同步文…

9.1centos安装postgres

目录 一、安装并启动postgres 二、设置允许远程连接 三、重置密码 四、开放防火墙端口 五、重启服务后进入命令行模式 六、远程连接 一、安装并启动postgres # Install the repository RPM: sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpm…

用Python实现时间序列模型实战——Day 7: ARIMA 模型的诊断与调整

一、学习内容 1. 残差分析与模型诊断 残差分析: 在 ARIMA 模型拟合之后,我们需要检查模型残差是否满足白噪声的假设。如果模型残差表现为零均值、方差恒定且无自相关性,这说明模型已经捕捉了时间序列中的主要结构,剩下的残差是…

jarbas 靶机渗透(cms 渗透)

靶机信息 vulnhub 靶机 主机发现 (base) ┌──(root㉿kali)-[/home/kali/testJarbas] └─# sudo nmap -sn 192.168.50.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-28 15:45 CST Nmap scan report for 192.168.50.1 Host is up (0.00023s latency). MAC …

职场真相:在草台班子中寻找自我价值

在踏入社会的那一刻起,我们每个人都怀揣着对未来的无限憧憬与梦想,渴望在职场这个广阔的舞台上绽放光彩。然而,现实往往比理想骨感得多,尤其是在初入职场的几年里,那些曾经以为的“精英团队”、“完美计划”逐渐被现实…

如何选到好的宠物空气净化器,用哪款宠物空气净化器比较好?

在当今社会,养宠物已成为许多家庭不可或缺的一部分,猫猫狗狗以其独特的魅力,悄然融入了我们的生活,成为了家中的一员,它们不仅带来了无尽的欢笑与陪伴,更在无形中丰富了我们的情感世界,让家充满…

【Python】如何使用pip,安装第三方库和生成二维码、操作Excel

文章目录 第三方库使用 pip安装第三方库 生成二维码1. 确定使用哪个库2. 查看对应文档3. 开始操作 操作 Excel1. 安装 xlrd2. 编写代码 第三方库 第三方库就是别人已经实现好了的库,我们可以拿过来直接使用 虽然标准库已经很强大了,但是终究是有限的&am…

QT线程同步

#线程同步 在前面理解了QThread两种使用方法,和线程机制以及退出过程后,需要了解线程同步的内容了,今天开启学习线程同步知识。 还是从大佬的文章开始。 从下面这篇文章开始学习 线程同步 线程同步有: QMutex(互斥&…

【PID系列】一文理解PID原理

【PID系列目录】 [1、一文理解PID原理] 2、PID代码设计 本文目录 1、引出2、 PID概念2.1 首先,什么是偏差呢?2.2 其次,什么是PID比例项?2.3 积分————解决稳态误差的利器2.4  微分————改善动态响应…

while (r > b[i].r) del(a[r--]); while (r < b[i].r)

论 分治 cdq | [SDOI2011] 拦截导弹 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度、并且能够拦截任意速度的导弹,但是以后每一发炮弹都不能高于前一发的高度…

利用深度学习实现验证码识别-2-使用Python导出ONNX模型并在Java中调用实现验证码识别

1. Python部分:导出ONNX模型 首先,我们需要在Python中定义并导出一个已经训练好的验证码识别模型。以下是完整的Python代码: import string import torch import torch.nn as nn import torch.nn.functional as FCHAR_SET string.digits# …

静态库和共享库

文章目录 库的概念函数库库函数静态库的创建与使用静态库的概念静态库的创建代码示例--静态库的创建和使用 共享库的创建和是使用共享库的概念共享库的创建共享库的使用 总结 库的概念 当进行编辑C代码的时候常常会用到printf函数,这个函数被声明在stdio.h头文件中…