那些年我们拿下了 Zynq

news2024/11/17 3:50:21

小菜鸟的 Zynq 学习经验分享~
资料来源:黑金 Zynq7035 开发板配套资料,完全适合于 Zynq 学习。
获取方式:【51爱电子】回复【Zynq7000】即可获取资料链接!本资料仅供学习使用,切勿商用。

另外四个是关于 Altera FPGA 的学习资料。
其实很多东西都是相通的,要学会举一反三。

搭建开发环境

1、Windows 下安装 Vivado

Vivado 是 Xilinx FPGA 开发的主要软件(2019年10月,赛灵思推出了Vitis)。

下载软件包后解压缩,安装过程较为简单,自行探索。

问:教程文档里不是有安装步骤吗?
答:这不就是让你们自行探索嘛。
问:我想用高版本的 Vivado 行不行?
答:Vivado> 各版本兼容性不好,资料例程也是 Vivado 2017.4 版本创建,最好一致。
问:都 2023 年了呀
答:你可以试试呀~

注意:软件安装路径不要有中文!Vivado 工程路径不要有中文!
顺便提一下,计算机名、账户名最好也不要是中文,有时会出现一些玄学问题,脑壳痛……
最新发现,某电脑管家软件会拦截 Vivado 某些进程,导致综合失败,所以玩 Vivado 前最好都关掉!

2、虚拟机 + Ubuntu,在 Linux 下安装 Vivado + Petalinux,配置 NFS

Linux 开发环境主要用于 Zynq 平台 Linux 应用、即嵌入式 Linux 开发。
可以先安装 虚拟机 + Ubuntu,熟悉 Linux 基础操作,熟悉常用命令。
Vivado 可以先不装,但是如果你学得快的话……
建议:虚拟机配置时,硬盘设大一点,不然后面存储不够了还得扩容,比较麻烦(PS:我配置了 200G) 。

3、PuTTY - 友情推荐

PuTTY 是一个 Telnet、SSH、rlogin、纯 TCP 以及串行接口连接软件。可用来远程管理 Linux。
这里主要使用 Serial 功能,用来交互、查看输出信息或调试时用来打印 log。

这个可以去官网下载最新版本。

Zynq 开发的四种方式

  • 纯 PS 开发,即 ARM 开发
  • 纯 PL 开发,即 FPGA 开发
  • PS 无操作系统 + PL 开发,即裸机开发
  • PS 有操作系统 + PL 开发,即使用 RTOS 或 Linux 开发

当前阶段先从 FPGA 开发学起,然后再去学 ARM 开发,最后再学习联合开发。

Verilog 学习

问:为什么不学 VHDL?
答:因为 Verilog 好学易上手,资料多。
问:C/C++ 还要再学吗?
答:如果玩单片机玩的比较熟的话,基本可以了。

推荐一个 Verilog 练习网站:https://hdlbits.01xz.net/wiki/Main_Page

开始实践

1、PL 开发

  • 学习初期
    • 内容:熟悉 Verilog 语法,熟练使用 Vivado 软件,熟悉 FPGA 开发流程;
    • 建议:根据文档实现简单实验,比如点灯,按键控制 LED、串口通信等;
    • 目标:脱离教程与例程,从零独立完成一个综合小项目,具体做啥可以自己找。
  • 学习中期
    • 内容:常用 IP 核及复杂资源的使用;
    • 建议:可以根据需要去学习,有方向更有效率;
    • 目标:对于新东西,有手册就要会用。
  • 学习后期
    • 内容:需要什么就学什么;
    • 建议:可以干大事了;
    • 目标:干大事。

注:一般 Zynq 开发板板载 UART 接在了 PS 端,PL 端没有设计 UART 接口,但是可以这样:

所以说,只要你想,就没有做不到的事情,没有条件也可以创造条件。

2、PS 开发

Vivado 内置了 ARM 开发用到的 SDK 开发工具,可以根据需求自行探索学习。
对于 ARM 开发,学过 32 的应该会很快上手。

3、PS + PL 开发

学习到这一步,真的可以自行探索了……

强烈建议

  • 多动手!多动手!多动手!
  • 别光看!别光看!别光看!
  • 实践出真知!
  • 多学!多练!多思考!

FPGA 相关论坛、资料开源、学习网站推荐:

  • 米联客:https://www.uisrc.com/
  • 正点原子:http://47.111.11.73/forum.php
  • 野火电子:https://www.firebbs.cn/
  • 明德扬:http://www.mdy-edu.com/
  • 小梅哥:http://www.corecourse.cn/
  • 哔哩哔哩:https://www.bilibili.com/
  • 待补充……

学会自己去寻找资源、获取资源和利用资源,很重要!!!

注:学习参考资料也不仅仅局限于开发板配套资料,也可参考其他板卡开源资料,比如正点原子、野火电子都推出了 FPGA 板卡,教程文档写的也很不错,实验项目与实现方法也是各不相同,资料也很齐全,建议也都看一看,学习一下设计思路与设计方法,考虑其中的设计特点。
最主要的还是自己多学多练多思考

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

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

相关文章

跨域和cookie

本文以前端的视角来探讨浏览器的跨域和cookie问题。 一、跨域 跨域简介: 为什么会出现跨域? 出于浏览器的同源策略限制,浏览器会拒绝跨域请求。 什么情况下出现跨域? 不同源就会跨域。同源即:协议、域名、端口号…

图文详解:箭头函数与常规函数的this指向问题

函数中this的指向问题特别容易让人迷糊,这里用示例来指点迷津,走出迷茫。 常规函数下的this指向 1. 纯粹的函数调用 function test(name) { console.log(name) console.log(this) } test(zjcopy) ; test.call(zjcopy, cuclife-2) ; test.call(fal…

pytesseract 安装错误总结

项目场景: 使用eclipse调用pytesseract接口,进行OCR识别。 在anaconda的python3.6.4版本,安装配置pytesseract 问题描述 pip install pytesseract 报错 错误提醒:pytesseract requires Python >3.7 but the running Python…

【数据结构】顺序栈的原理及实现

【数据结构】顺序栈的原理及实现 1.什么是栈 栈它是一种先进后出的有序列表数据结构。栈是线性表里的元素插入和删除只能在该线性表的同一端进行的一种特殊线性表。该线性表的插入和删除都叫栈顶,也就是变化的一端。另一端是固定不变的成为栈底。根据下图可以看出…

《高性能MySQL》——架构与历史(笔记)

文章目录一、MySQL架构与历史1.1.1 连接管理与安全性1.1.2 优化与执行1.2 并发控制1.2.1 读写锁1.2.2 锁粒度(锁模式)表锁(table lock)行级锁(row lock)1.3 事务1.3.1 隔离级别READ UNCOMITTED (读未提交)READ COMMITTED (读提交)REPEATABLE READ (可重复…

初识C++(学习计划)

前言 基于对C语言的学习,我将进一步学习C的相关知识。 我们在使用C语言时创建的是.c文件,使用C使用的是.cpp文件,其中p——plus(加,的意思),所以cpp就是c。 C是为了解决一些C语言不能解决的问题…

SpringBatch使用(一)

一、SpringBatch简介 1、Spring Batch是一个轻量级,全面的批处理框架,旨在开发对企业系统日常运营至关重要的强大批处理应用程序。Spring Batch构建了人们期望的Spring Framework特性(生产力,基于POJO的开发方法和一般易用性&…

docker安装elasticsearch kibana 8.6.0(设置密码+汉化+ik分词器)

安装eskibana安装:拉取镜像并安装设置密码汉化配置ik分词器安装: 记得开放使用的端口,或者关闭防火墙 提示:需要提升虚拟机或者服务器的内存到8G以上 拉取镜像并安装 docker pull elasticsearch:8.6.0 docker pull kibana:8.6.0docker network create es-netdocker run -it…

Itext7在PDF指定位置添加电子公章

目录 1. 电子公章的制作 2. java工具keytool生成p12数字证书文件 3. pom依赖 4. 实体类 5. 工具类及测试示例 6. 效果 1. 电子公章的制作 做章网站:http://seal.biaozhiku.com/ 我们选择圆形印章 然后输入公司名,输入章名输入编码然后点击395生成&…

快速幂及矩阵快速幂分析及代码实现

文章目录前言一、认识快速幂二、快速幂思路及代码三、矩阵快速幂3.1、矩阵乘法代码实现3.2、矩阵快速幂代码实现参考资料前言 在学习Acwing c蓝桥杯辅导课第九讲复杂DP-AcWing 1303. 斐波那契前 n 项和时有使用到矩阵快速幂算法,这里来记录下知识点正好也将快速幂部…

车载以太网 - SomeIP测试专栏 - 详细解析 - 01

对于介绍SomeIP协议,我还是想从最基础的协议解析来,所以今天还是先将SomeIP协议详解给大家列举一下,也方便大家在工作中如果不记得哪些信息随时可以查看学习,也算是留给我自己的笔记吧,毕竟确实容易忘记。 SomeIP数据&…

分布式数据库中间件——Mycat2

一、Mycat2 概述 Mycat是基于java语言编写的数据库中间件,核心功能是分库分表和读写分离,可以将大表水平分割为N个小表。 可以看做为Mysql的数据库服务器,可以用连接Mysql的方式去连接Mycat,端口为8066 二、Mycat的三大作用 2.…

Node 项目中常见的问题及解决方法

1. window和mac下设置NODE_ENV变量的问题 我们都知道在前端项目中会根据不同的环境变量来处理不同的逻辑,在node后端中也一样,我们需要设置本地开发环境、测试环境、 线上环境等,此时有一直设置环境变量的方案是在package.json中的script属性…

Python学习笔记——错误和异常

错误的分类编写程序过程中遇到的错误都分为两类:语法错误与运行时错误。语法错误:当代码不符合Python语法规则时, 在解析过程中会报SyntaxError。运行时错误:即语句或表达式在语法上都是正确的, 但在运行时发生了错误。当程序发生异常时&…

从零搭建完整python自动化测试框架(UI自动化和接口自动化

从零搭建完整python自动化测试框架(UI自动化和接口自动化) 文章目录 总体框架 PO模式、DDT数据驱动、关键字驱动 框架技术选择 框架运行结果 各用例对应的定义方式(PO/DDT) 测试执行结果 从零开始搭建项目 一、开发环境搭…

Vue-Vuex

前言 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库 官网介绍:https://vuex.vuejs.org/zh/ 以下主要讲解的是如何定义与使用,如果还没有对vuex进行了解的话,请先查看官网,了解其功能、用法及用途。 关于vuex&#xff0c…

代码随想录算法训练营第五十二天_第九章_动态规划 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II

LeetCdoe 121. 买卖股票的最佳时机给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可…

verilog 数字系统设计读书笔记-------持久更新

Verilog模型可以是实际电路的不同级别的抽象。这些抽象的级别和它们所对应的模型类型共有以下5种:系统级、算法级、RTL级、门级、开关级‘bz :表示高阻态, ’bx表示不定值(0或1均可)include "muxtwo.v" 将文件引进{$ ra…

【Linux】怎么理解进程

✍作者:阿润菜菜 📖专栏:Liunx系统编程 本文通过冯诺依曼体系结构(硬件部分)和操作系统(软件部分)为基础来介绍我们应该如何理解进程,为后续的学习做铺垫。 本文目录一、预备知识1.建…

误差逆传播算法公式理解及推导

前言:公式理解及推导参考自《机器学习》周志华 P101 BP网络 BP网络一般是指由 误差逆传播(error BackPropagation, BP)算法训练的多层前馈神经网络。 给定训练集 D{(x1,y1)D\left\{\left(\boldsymbol{x}_1, \boldsymbol{y}_1\right)\right…