0,前言

小声bb。首先很很感谢尤恺元老师的系列免费课程,FPGA公开直播课每周开课一次免费课程在这里可以看。B站也有。我看了很多zynq的教程,米联客的,黑金的,李工的,还有diligant官方的教程等等,这里不做评级。单纯感谢一下所有大佬提供的开源教程。凯元老师讲的很不错,特此总结一个系列记录下来。最后感谢!!!

1,ZYNQ的架构

学习zynq,起码大概知道人家是什么吧。所谓知己知彼,方能百战不殆。

ZYNQ分为PL(Programmable Logic)和PS(Processing System)两个部分组成。

其中呢,PL就是之前学习过的FPGA部分的资源了。而PS集成了两颗 A9 双核硬核,我不太清楚这里的部分以及两者的交互部分。感觉和这里的PS端STM32很像。数据互联都是使用的AXI总线。这里后面单独说。

下面分析下上图。

上图黄色的就是PL。Cortex A9双核系统有很多固定的外设。例如DDR,例如左半边的类似SPI等的连接,这也牵扯到后面配置ZYNQip的知识。可以看到这里很多都是使用的AMBA进行数据交互。这里可以自行百度。笔者也不是很清楚。后面明白再补更。左边部分的ACP以及HP0-3好像是和数据一致性有关的问题。其次DDR和PS端连接,但是PL也能访问其中的数据。

2,I/O的架构

下图讲的很清楚,一些固定的I/O一个有54个,分别是连接了一些PS的固定外设,在设置ZYNQIP的时候,都有很重要的联系。

什么是软核和硬核以及其联系。怎么连接,怎么设置完全依据原理图,所以怎么看原理图也是很重要的。下面我截取几张原理图以及配置的问题供参考。

这里原理图是48-49.而uart1中有,uart0就没有这个管脚。下面的CD与SD也是类似。其他的可以自己看原理图。

ZYNQ 的 GPIO( 通用输入输出(General Purpose Input/Output)),分为两种,MIO(multiuse I/O)和 EMIO(extendable multiuse I/O)

54 个 MIO(multiuse I/O),它们分配在 GPIO 的 Bank0 和 Bank1 隶属于 PS 部分,这些
IO 与 PS 直接相连。不需要添加引脚约束,MIO 信号对 PL 部分是透明的,不可见。所以对 MIO 的操作可以看作是纯
PS 的操作。MIO分配在bank0和bank1直接与PS部分相连,EMIO分配在bank2和bank3和PL部分相连。除了bank1是22-bit
之外,其他的 bank 都是 32-bit。所以 MIO 有 53 个引脚可供我们使用,而 EMIO 有 64 个引脚可供我们使用。
使用 EMIO 的好处就是,当 MIO 不够用时,PS 可以通过驱动 EMIO 控制 PL 部分的引脚,接下来就来详细介绍下
EMIO 的使用。
EMIO 的使用和 MIO 的使用其实是非常相似的。区别在于,EMIO 的使用相当于 PS + PL 的结合使用的例子。所
以,EMIO 需要分配引脚,以及编译综合生成 bit 文件。在课程中,老师将EMIO作为引脚引入逻辑部分,因此不要绑定引脚。只需要将LED绑引脚就可以了。

至于bank0-1设置的电平也可以在原理图中找到。

3,启动流程

这里的启动流程很多板子需要自己配置,根据板子的硬件说明。这里=老师给了一张图。引导ROM。加载LSBL,加载bit流文件(可选),加载或运行SSBL或逻辑程序。

4,软核以及其他

引用老师的文案同时引荐两篇博文。

zynq核和MB软核以及A家NIOSII核,三者区别和一些共性。

共性:1,把一些通用的驱动或者一些简单的C语言的计算的代码,直接引入到FPGA开发环境中。

区别:1,ZYNQ四 A9 双核硬核2,MB 和NIOS都是软核,性能差别很大,而且占用FPGA逻辑资源,数据互联或数据访问效率比较低。

引荐博文:1,FPGA的软核、硬核以及固核的概念2,为什么非要在FPGA上用硬核或软核?

5,BD工程的搭建

这里工程的搭建可以具体参考我之前的流水灯的例子。过程很详细。Vivado入门创建工程之----流水灯其中里面还涉及到了自定义IP的使用。下面是生成的ZYNQip以及简单的分析。

这里的GPIO有一个输入两个输出,

gpio[0]直接通过FPGA管脚输出控制LED灯;

gpio[1]输入到FPGA的逻辑块作为一个标志信号,使能我们一个计数器,控制计数器产生震荡信号,震荡信号驱动LED;

这里的GPIO全部引入了逻辑,也可以绑引脚,直接连接FPGA的外设。

6,问题总结以及反思

这里使用到了ila进行逻辑分析,学会了如何自己打包生成的ip中自带ip进行分析。

对zynq架构有一个更好的认识。

对zynq配置进行了总结。

跨时钟域的处理。(之前有总结过)

第一课--BD的使用相关推荐

  1. c语言 字母 八进制表示'/1011',C语言C语言第一课:C语言概述为什么学习C语言怎样学习C语言.DOC...

    [摘要]C语言 第一课: C语言概述 为什么学习C语言 怎样学习C语言 参考资料 ----------------------------------------------------------- ...

  2. 【JavaScript从入门到精通】第一课 初探JavaScript魅力-01

    第一课 初探JavaScript魅力-01 JavaScript是什么 如今我们打开一个大型的网站,都会有很多JS效果的功能和应用.对于学过CSS+HTML的同学,即使是像淘宝那样的网站,用一两天时间 ...

  3. 什么是优秀管理者的第一课?【如何搞垮一个企业】

    什么是优秀管理者的第一课?[如何搞垮一个企业]                                           文 韩宇斌 <道德与企业成败 [如何搞垮一个企业.序]> ...

  4. 三层代码讲解--第一课

    主题:三层代码讲解--第一课 主持人:老吴 时间:2004-05-24 2004-05-24 10:47:00 天之痕_若虹(86278566) 請教大家一個問題好嗎 2004-05-24 10:47 ...

  5. Web 探索之旅 | 第二部分第一课:客户端语言

    -- 作者 谢恩铭 转载请注明出处 Web探索之旅 | 第二部分 第二部分第一课:客户端语言 第二部分第二课:服务器语言 第二部分第三课:框架和内容管理系统 第二部分第四课:数据库 第二部分第五课:响 ...

  6. LINUX-Shell第一课

    LINUX-Shell第一课 1.通过一个小例子进行一下介绍shell #!/bin/sh调用sehll echo 打印内容   read 输入内容  cd 跳转目录  pwd查看当前目录 2.定义两 ...

  7. java day01第一课java简介

    java简介 个人简介 陈杜杰 联系方式:18227288633 从事java后台开发三年多,在创业公司和国企做过开发 熟悉JAVA.HTML.JS.CSS等语言 教学方式: 1.尊重学生,希望学生是 ...

  8. 妙味课堂——HTML+CSS(第一课)

    一句话,还记忆不如烂笔头,何况还这么笨,记下笔记,也是记录这一路学习的过程. 妙味课堂第一课并未一味地先讲HTML,而是穿插着CSS讲解,这一点不同于一些其他视频,这一点挺特别的!所以这一课涉及到HT ...

  9. 0.0 目录-深度学习第一课《神经网络与深度学习》-Stanford吴恩达教授

    文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...

最新文章

  1. amd一点也不yes_AMD, 真的YES吗?
  2. 关于微信的jsapi_ticket的获取方法;
  3. RHEL6基础四十三之RHEL文件共享②Samba简介
  4. 外观模式和代理模式的联系和区别_java23种设计模式-结构型模式之外观模式
  5. 提升对前端的认知,不得不了解Web API的DOM和BOM
  6. C# 使用Quartz简单实例以及备忘
  7. 黑马博客——详细步骤(五)项目功能的实现之用户信息修改
  8. TCP协议与UDP协议的区别
  9. python定义复数矩阵_python矩阵运算,转置,逆运算,共轭矩阵实例
  10. 软件multisim的安装教程
  11. Linux下Weblogic部署安装
  12. Mybatis 拦截器报错
  13. mysql高频面试题合集
  14. 三星S9微信和服务器怎么连接,三星s9 微信在后台为什么收不到消息 | 手游网游页游攻略大全...
  15. 宝贝数量、流量组成结构、付费和免费流量占比、提高流量价值、店铺为什么没有销量?这些你真应该看看
  16. Simulink-模块Moudle调用回调函数步骤
  17. 女神节送什么比较好?适合女生用的蓝牙耳机推荐
  18. ES6读书笔记(下)
  19. Android 开发多摄像头 API
  20. 4.1 I/O流

热门文章

  1. 造成跨域的原因和解决方法
  2. js中的异步与同步,解决由异步引起的问题
  3. 如何在Visual Studio 2012中撤消“范围到此”?
  4. 找不到元数据文件“ .dll”
  5. fmt标签实现时间日期格式化,与类型转换Converter
  6. Spring的junit4测试集成
  7. Excel 条件格式使用方法
  8. shell脚本验证ssh连通性_ssh远程管理服务
  9. html在文本框选中后在表格中选中,excel表格出现文本框的解决方法步骤
  10. python字符串补空格输出_python实现指定字符串补全空格、前面填充0的方法