ZedBoard 最小系统构建 (一)-硬件结构搭建
前言
Xilinx 的ZYNQ-7000系列SOC芯片,整合了ARM9和PLD单元,比传统的DSP+FPGA 或 ARM+FPGA的设计复杂度更低,带宽更高,通信方式更加灵活。对于诸如数字信号处理、图像处理等工程化应用,是一个比较好的选择。ZedBoard是Digilent公司针对ZYNQ XC7Z020-CLG484这款芯片开发的一套工具,布置了HDMI,千兆以太网,VGA,USB-OTG和音频等接口,并板载了USB转串和调试工具,是一个很好的应用平台。这个板子官方价格不菲,但国内可以找到与之对应的类似产品,我选的是希科电子的一款核心板-底板栈结结构的产品。本文及后续几章的开发内容都是针对这个平台进行开发讨论的。
ZYNQ芯片分为PS单元和PL单元,可以近似将PS单元视作ARM单元,可以运行Linux操作系统;将PL单元视作FPGA,运行可编程逻辑。两者可以公用一些外设,比如GPIO,也可以通过AXI总线进行数据交互。
最后建立的工程,应该包括以上红框内的几个单元,包括DDR,QSPI,SD卡,USB等等。
软件环境使用Xilinx Vivado 2015.4.2,操作系统是windows7 64位。
一、硬件布置
1)新建工程
打开Vivado 2015.4.2软件,新建工程microsys
工程类型选择[RTL Project]
芯片类型选择XC7Z020-CLG484-1
Family:ZYNQ-7000
Package:CLG484
Speed Grade: -1
点击[Finish]完成工程向导。
等待系统自己完成相关初始化,最后可以见到如下图所示的界面。
2)添加IP核
建立一个模块,名字为[microsys]
首先搜索并添加ARM 子系统
这就是默认的一个IP核,包含DDR,FIXED_IO,FCLKd等单元。
双击这个模块,打开配置界面,在芯片配置结构图中可以看到,系统尚未勾选外设,
下面我们针对第一张图中框住的单元,进行配置。
配置系统时钟
ENET0 选择片内时钟源
取消FCLK_CLK0 输出。
配置DDR
PS-PL通信配置
最终形成的最小系统如下图所示
点击鼠标右键,选择[Run Block Automation]
会发现引出了DDR和FIXED_IO两条总线
这样基本的一个ARM IP就配置完成了。
上面的MIO[53:0]包含了所有外设的输出管脚
添加一个反向器
在[Utility Vector Logic]核中,配置操作为[not],位宽为1,即成为一个反向器。
添加一个[otg_vbussoc] Port
添加[gpio_i] [gpib_o][gpio_t] 3个port,并连接到ZYNQ system中gpio 端口,并规整连线
这就是最终的Block系统
下一章将对如何生成bit流文件进行讲解。