第一课--BD的使用

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配置进行了总结。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值