Zedboard 评测(一):Demo演示
今天拿到Zedboard,做一下Demo演示,顺便记录一下过程,其中参考了这篇http://www.digilent.com.cn/community/9.html
Zynq芯片的配置
FPGA器件有三类配置下载方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式,配置的数据存储在SRAM中,由于SRAM是易失行存储器,因此每次上电后,外部电路都需要重新将配置数据载入到芯片的配置RAM中,当FPGA上电后 进入配置模式,在最后一个配置数据载入到FPGA以后,进入初始化模式(initialization)(内部的寄存器以及I/O管脚进行初始化,I/O处于高阻态),在初始化完成后进入用户模式(user-mode),用户I/O就按照用户设计的功能工作。传统的SRAM型FPGA都是通过JTAG接口、外置非易失性存储器(PROM、FLASH)或者外部处理器一次性将程序下载到FPGA中配置。
由于ZYNQ由两部分组成,内部继承了处理器硬核和可编程逻辑,所以配置启动时分阶段的
- Stage 0: bootRom过程,Zynq芯片PS部分有片上ROM和RAM,在芯片上电或者复位后,其中一个处理器会执行片上ROM的代码进行初始化,判断启动设备(boot device),启动设备包括SPI FLASH、SD和JTAG,,将启动设备上的FSBL(first boot loader)代码拷贝到片上RAM内。
- Stage 1: FSBL代码是用户自己定制的,拷贝到片上RAM后执行。包括初始化PS部分配置、配置PL部分逻辑、加载和执行SSBL(second boot loader)或应用程序。
- Stage 2:上一阶段后硬件已经配置完成。这一阶段是可选的,完成Linux系统启动过程(U-BOOT)。
Zynq从片内处理器启动,通过根据MODE引脚判断启动方式,然后将Quad-SPI FLASH、SD卡或者JTAG接口的代码加载到SRAM中。
其中下面是管脚MODE[4…0]具体的选择
Demo的演示
Quad_SPI启动
板载SPI FLASH中有一个简单的Demo程序,SPI-FLASH启动过程可以分为:
- 上电后,片上ROM程序执行,初始化后判断从SPI FLASH启动。
- 从SPI FLASH拷贝FSBL到片上RAM执行
- FSBL执行,处理器从SPI FLASH读取比特流(bitstream)配置Zynq的PL部分
- PL配置完成后执行,点亮LED
首先要MODE跳线选择在SPI FLASH启动模式,如下图所示:
SD驱动
关闭电源,重新选择跳帽,MODE选择SD卡,也就是110。
随板附送的SD卡中有一个演示的Linux文件系统,而且在Linux系统下有一些脚本例程用来控制Zedboard板上各种外设的功能,这与之前的FPGA调试很不一样,显示了Zynq芯片软硬件开发的强大和灵活性。
需要连接电源线(刚才已连接),USB-UART接口(J14)到计算机、插上SD卡(J12)、VGA(J19)或者HDMI(J9)。
该Linux文件系统没有图形界面或者控制台,所以必须通过串口或者ssh访问。我做的时候电脑安装过USB_UART驱动,所以没有连接HDMI时识别了串口,如果没有安装驱动,则安装USB-SERIAL CH340驱动就可以识别。
安装好驱动后打开一个串口监视器,可以使用XP的超级终端或者其他的串口调试工具(Putty)。
我参考的帖子使用的是Putty,我的本身有好用的串口调试助手和VNC,所以在这里使用XP的超级终端,win7y以上的系统不自带超级终端,所以需要去软件管理里面下载一个超级终端,
-
后面发现因为是linux系统,所以还是PUTTY出来更像LINUX命令行*
串口参数设为波特率115200、数据位8、停止位1、校验无,接下来打开电源后在超级终端界面才能选择COM6,打开串口.
打开串口后,会等待几秒进行下面几项任务:
• 上电后,片上ROM程序执行,初始化后判断从SD卡启动。
• 从SD卡拷贝FSBL到片上RAM执行,FSBL配置FPGA,蓝色LED(LD12)变亮说明配置完成。
• 从SD读取SSBL,开始Uboot过程(启动Linux),启动过程中VGA输出了一个Demo演示图像。
• 串口监视程序会显示Linux启动过程(需要上电前打开putty窗口),启动完成后,板上OLED会显示一个Digilent demo图像。
zImage由head.o,piggy.gzip.o,misc等链接组成,piggy.gzip.o中包含压缩的内核镜像,zImage的作用实际上就是对内核进行解码。
板上OLED会显示一个Digilent demo图像
我连接的是HDMI,显示的是两只小企鹅
Linux系统启动后,现在可以上面做一些演示的实验以体验下Zynq芯片的应用。
接下来的显示我会在PUTTY端,并且看能不能对显示的图案做出一定的修改。