rowen

Zedboard 学习笔记之《EMIO的使用》

0
阅读(3340)

       Zynq7020有两种GPIO,一种是上一篇讲的MIO,它是属于PS端的;另一种就是EMIO,属于PL端,有64bit,这种在操作时,需要分配引脚约束。Zedboard上有8bit的LED,通过EMIO来驱动。下面就来讲讲EMIO驱动LED的详细过程。注意这里还是采用EDK的方式,当然也可以采用纯verilog来驱动LED,这种方式相信大家都做过。

 

 

       01                      00

 

首先,打开上一篇MIO的Vivado工程,双击ZYNQ ip核,进行配置:

 

04

 

02

选择MIO Configuration,如图勾选EMIO GPIO,位宽设为8bit,因为板上是8bit的LED。

 

03

 

        点OK后,出来的IP会多出一个GPIO_0的端口,这时鼠标指针右击它,选择make  external,将引脚引出。

       接着执行编译,完成后,我们发现文件中多了inout [7:0]gpio_0_tri_io。再创建一个引脚约束文件,Project Manager – Add Source ,

 

06

 

07

08

如图,根据原理图的引脚分配,编写以上的约束文件。执行编译--综合--生成bit文件。导出硬件。

 

09

 

 

运行SDK,创建一个空白的工程,

 

10

 

在EMIO--src目录下,创建一个main.c文件,可以把上一章的文件copy过来,

 

11

 

        修改iPinNumber,MIO共54bit,从0~53。EMIO的第一位对应Bank2的第一个也就是编号54,EMIO总共64bit,也即是EMIO[63]对应Bank3的最后一位,也就是53+64=117。

 

12

 

直接贴代码,相信一目了然,

 

15

 

这样就实现了8个LED循环被点亮了。有不正确的欢迎留言指正,谢谢。