ZYNQ 系列 01 | PL 实现按键控制 LED(1)

热点 143 0

注:本篇文章由【开源骚客:OpenSoc】公众号首发,现转载至头条号。

新的开始,这一篇文章,就算是使用 Vitis 开发 ZYNQ 的第一篇文章吧。

ZYNQ 系列 01 | PL 实现按键控制 LED(1)

计划把 ZYNQ 开发写成一个系列,所使用的的软件版本为 Vitis 2019.2,硬件平台为 EBAZ4205 矿机板。

最新的软件平台配最便宜的硬件平台,哈哈哈!

软件版本可以说是最新的,选择最新,意味着这系列文章过几年后,依然不过时。硬件平台,可以算是在 ZYNQ 开发板里面最便宜的,最便宜,意味着大多数都买得起!

作为第一篇文章,暂时先不涉及 ZYNQ 的 PS 部分,以传统 FPGA 的方式来做个小实验,在 PL 端实现按键控制 LED。

当然这个小实验也可以作为验证下 EBAZ4205 转接板的好坏。

1.准备工作

EBAZ4205 矿机板本身,在 PL 端是没有焊接晶振的,但留出了使用晶振的位置。所以单纯使用 PL 端进行开发的话,咱们得先把板子上的晶振焊上。


PL晶振原理图部分

在 X5 这个位置,我焊了一个3225封装的 50M 晶振,L29的位置焊了一个 0R 电阻,R1372 焊了一个 33R 的电阻,C364 的位置焊了一个100nF 的电容,改动的地方就这几个。

这里需要注意的是,L29在背面,当时还找了挺久的一会,没电感,直接用0R电阻代替了,如果想更狠一点,用焊锡直接把 L29 连上也行!

2.Vivado 创建工程

对于 vivado 创建工程的步骤,就不详细介绍了。写这些步骤,截图太多,效率太低了。之后还是计划对这系列的文字版教程,录个配套的视频,在视频里面,跟着做,来得更直接。

代码如下:

工程代码

其功能,最终就是实现按键按一次,LED 的状态反转一下,当然内部也有按键的消抖。

相关的引脚约束信息如下:

引脚约束信息

3.让工程编译的速度更快些

在 TCL 输入框中输入 set_param general.maxThreads 8,可以让编译的速度提升,vivado 默认的线程数是2。

我总共花的时间是 1分半钟 还不到,大家可以自行比较一下在设置了最大线程的状态下,与没有设置之前的编译时间会快多少。这里我就不演示了。

这一点设置非常有意义哦,大家千万别小看了它。

另外一点,矿机板默认是没有 X5 这个晶振的,那没有这个晶振,如何来实现本文中同样的功能呢?

下一篇文章,将讲解从 ZYNQ 的 PS 端引出时钟给 PL 端使用,敬请关注!

标签: pl

抱歉,评论功能暂时关闭!