1038|8

1367

帖子

2

资源

五彩晶圆(初级)

Zynq学习笔记 (1)矿板小试FPGA开发流程 [复制链接]

  Xilinx Zynq系列是带有ARM Cortex-A系列CPU核的FPGA. 前几年流落到二手市场上的“矿板”就以Zynq 7010为核心,可以说是最廉价的Zynq实验平台了。淘个这样的板子,再另外找个Xilinx的JTAG就可以玩FPGA和ARM Linux. 因为玩的人多,网上有资料,还有别人做过的扩展板可以参考。本坛大佬们早就玩过了。我三年前就买了一块,但一直是闲置状态,直到现在才想来搞搞。

  这块EBAZ4025板子接上12V电源就可以工作了,有RJ45网口,板子上有焊盘可以自己焊上TF卡座、UART接口、JTAG口,就相当于一个完整的ARM Linux板子(板载DDR3 SDRAM 256MB,NAND Flash 128MB),还有若干FPGA I/O引出来到双列排针座,方便自己分配用途。

  EBAZ4025通电以后上面的Linux就启动了,通过UART连接可以看到uboot和Linux输出的信息。我是要把它作为FPGA开发来用的,所以先直接焊上JTAG排针连接调试器,电脑软件可以识别到JTAG 扫描链上有两个设备,一个是FPGA,一个是ARM CPU.

 

  Zynq的内部分为两个系统,一个叫PS,就是ARM CPU以及外设,包括DDR内存控制器、DMA等等这些ARM运行依赖的部件;另一个系统叫PL,就相当于传统的FPGA. 这两部分之间有很多种方式可以通信,就可以比结合FPGA和ARM的各自优点来处理复杂的任务了。

  Zynq 7000系列的IO引脚也分为PS和PL各自管理的的,PS部分引脚有固定的用途,和开发FPGA时写引脚约束不同。根据矿板的电路图了解到,两个LED是连接到PL部分的,而UART直接接的是PS的MIO.

 

  学习Zynq的开发可以参考网上的教程。这玩意门槛稍微高一点,先得下载Vivado安装,为了开发ARM的程序还要安装SDK,都是很庞大的软件。如果熟悉了的话Vivado操作起来也很快,但头几次么……

  先创建一个工程,选择器件型号,这和其它FPGA开发思路是一样的。

 

  按照教程,然后是Create Block Design,

 

  添加IP——ZYNQ7 Processing System. 这种图形化的block design方式我最初学FPGA的时候就用,直观容易理解。

  加上这个IP之后框图上就出现了一个模块,代表PS部分。

  在图上双击这个ZYNQ Processing System模块,就打开配置窗口,进行时钟、IO、内存等设置了。这些需要根据矿板上的资源和连接关系来定。

 

  首先这里有个PS部分的结构图,可以了解有那些片上外设可以供CPU用的。第一个实验为了让程序能打印输出,需要用UART.