fpga系列 硬件:FPGA 最小系统参考图与图释+Zynq-7010 最小系统Zynq-7010 启动配置
FPGA 最小系统参考图与图释
- FPGA最小系统是指能够使FPGA正常工作的最简化配置。通常包括以下几个关键组成部分,如图所示:
_______
| |
| POWER |>====+
|_______| | +-----启动模式配置
| _____________ |
+=====>| | | _________
| |<-------+ | |
_______ | FPGA | | FLASH |
| | | |====>==SPI==>|_________|
| CLK |----------->| | (BPI)
|_______| +==JTAG==>|_____________|
|
====>==+
-
FPGA芯片:
- 选择合适的FPGA型号,考虑管脚的兼容性、器件的成本和维护因素等。国内外主要的FPGA厂家如下:
- Xilinx(赛灵思):Xilinx是全球领先的FPGA解决方案提供商(2021年底被AMD收购),提供了包括Spartan、Artix、Versal、Kintex、Virtex 和 Zynq以及全可编程SoC和MPSoC系列在内的广泛产品线。
- Intel(英特尔):Intel通过收购Altera进入了FPGA市场(最近Altera又独立运营了),提供基于Agilex、Stratix、Arria、Cyclone、MAX等系列的高性能FPGA产品。
- 其他优势厂商:Microchip(ProASIC、SmatrFusion系列)、Lattice Semiconductor(iCE(ICE40)、ECP、MachXO系列)、Achronix Semiconductor(Speedster系列)、紫光同创、安路科技、高云半导体、智多晶微电子、复旦微电子、京微齐力、771所(西安微电子技术研究所) 和 772所(北京微电子技术研究所)、华微电子、上海微电子
- 选择合适的FPGA型号,考虑管脚的兼容性、器件的成本和维护因素等。国内外主要的FPGA厂家如下:
-
电源部分:
- FPGA需要多组不同的电源轨来为内部逻辑、PLL(锁相环)、IO接口等供电,常见的电源轨包括:
- VCCINT: 内核电压,支持1.0V或1.2V。
- VCCD_PLL: PLL数字电路电源,与VCCINT相同电压,但需通过磁珠隔离以减少纹波。
- VCCA: PLL模拟电路电源,通常为2.5V。
- VCCIO: 各个BANK的IO供电,支持多种电压如1.2V, 1.5V, 1.8V, 2.5V, 3.0V, 3.3V,具体取决于外设需求。
- 注:需要使用稳压器(例如线性稳压器LDO或开关模式电源DC-DC转换器)为这些电源轨提供稳定且符合规格的电压。
- FPGA需要多组不同的电源轨来为内部逻辑、PLL(锁相环)、IO接口等供电,常见的电源轨包括:
-
外部时钟源:
- FPGA通常需要一个稳定的时钟信号作为参考时钟。可以使用有源晶振(Oscillator)或者无源晶振加缓冲电路来生成时钟信号。
- 为了适应不同应用的需求,可以选择适当的频率,并确保时钟信号的质量(如抖动和相位噪声)满足设计要求。
-
下载与调试电路:
- JTAG接口:用于配置FPGA内部逻辑以及进行在线调试。JTAG接口允许用户通过PC或其他设备加载配置文件到FPGA中。
- AS(Active Serial)配置模式:这是一种常见的配置方式,其中配置数据从外部SPI Flash存储器加载到FPGA中。需要正确设置MSEL引脚以选择AS模式,并连接必要的控制信号(如nCONFIG, nSTATUS, CONF_DONE等)。
-
配置存储器(如果适用):
- 如果FPGA不带有内置非易失性存储器,则需要外置Flash来保存配置数据。在上电时,FPGA会从这个外部Flash读取配置信息并加载到其内部RAM中。
-
复位电路(可选):
- 包括上电复位和手动复位功能。一般采用低电平有效的复位方式,并可能包含RC延迟网络来保证足够的复位时间。
- 复位信号可以通过专用引脚接入FPGA,也可以利用某些特定的IO引脚实现。
Zynq-7010 最小系统
1. 电源系统
Zynq-7010 的电源输入需要多个电压轨来支持不同模块的工作:
- 核心电压(VCCINT):1.0V(FPGA 核心逻辑供电)。
- 辅助电压(VCCAUX):1.8V(辅助电源,支持 I/O 配置、时钟等)。
- I/O 电压(VCCO):1.8V/3.3V(支持 I/O 接口,如 GPIO、DDR、UART)。
- PS 部分供电(PS_VCC):1.0V 和 1.8V(处理系统部分的电源)。
- DDR 电源(VCCDDR):1.5V 或 1.35V(根据 DDR 类型,供给外置 DDR 的电源)。
注意:需要使用 DC-DC 转换器 或 LDO 稳压器 提供稳定的多路电压,同时确保电源时序符合芯片的要求。
2. 时钟系统
- 主时钟输入(PS_CLK):
- 通常使用 33.333 MHz 或 50 MHz 的晶振 为 Zynq 提供主系统时钟。
- 时钟输入用于 PS 部分的启动和内部 PLL 的工作。
- 外部时钟(可选):
- 根据 FPGA 部分设计需要,可以增加额外的外部时钟输入用于 FPGA 逻辑。
3. 复位电路
- 复位信号(PS_RST_B):
- PS 部分启动时需要稳定的复位信号,确保电源和时钟已完全稳定。
- PL端可以提供一个复位输入信号,可以通过按键或自动复位芯片(如 MAX803)实现。
4. 配置存储和启动配置
- 非易失性存储器:
- 通常使用 SPI Flash(如 QSPI) 或 eMMC 作为配置存储,用于保存引导程序和系统配置文件。
- SPI Flash 接口需要正确连接到 Zynq 的 PS 部分。
4.1 Zynq-7010 启动配置
- ZYNQ-7000 Boot-Mode-Pin-Settings 启动引脚配置说明:
- 开关“SW 1” 和“SW 2”闭合时,MIO[8:2]的值为 100 00 00 ,此为为JTAG启动模式:
_______
| | _________________
| POWER |>==========>| |
|_______| | |
| TCK_0|-F9-JTAG_TCK--->
_______ | TDI_0|-G6-JTAG_TDI--->
| | | TDO_0|-F6-JTAG_TDO--->
| CLK |----------->| TMS_0|-J6-JTAG_TMS--->
|_______| | |
| |
| PS_MIO8_500|-D5---------[10KR]------|3V3
| PS_MIO7_500|-D8---------[10KR]------|GND
| PS_MIO6_500|-A5---------[33 R]------------------[10KR]------|GND
| PS_MIO5_500|-A6----------------[20KR]-----+---[10KR]---------|3V3
| PS_MIO4_500|-B7---------------------------|---------------[20KR]-----+---[10KR]---------|3V3
| PS_MIO3_500|-D6---------[10KR]------|GND +---[SW 1]---------|GND |
| PS_MIO2_500|-B8---------[10KR]------|GND +---[SW 2]---------|GND
| PS_MIO1_500|-A7---------[470R]------|3V3
| PS_MIO0_500|-E6---------------------×
|_________________|
- 完整连接图:
_______
| | _________________
| POWER |>==========>| |
|_______| | |
| TCK_0|-F9-JTAG_TCK--->
_______ | TDI_0|-G6-JTAG_TDI--->
| | | TDO_0|-F6-JTAG_TDO--->
| CLK |----------->| TMS_0|-J6-JTAG_TMS--->
|_______| | |
| |
| PS_MIO8_500|-D5---------[10KR]------|3V3
| PS_MIO7_500|-D8---------[10KR]------|GND
| PS_MIO6_500|-A5---------[33 R]--------------------------+---[10KR]------|GND
| PS_MIO5_500|-A6---------+-------[20KR]------+---[10KR]--|------|3V3
| PS_MIO4_500|-B7--------+|-------------------|-----------|---[20KR]-----+---[10KR]---------|3V3
| PS_MIO3_500|-D6-------+||--[10KR]------|GND +---[SW 1]--|------|GND |
| PS_MIO2_500|-B8------+|||--[10KR]------|GND | +---[SW 2]---------|GND
| PS_MIO1_500|-A7-----+||||---[470R]-----|3V3 +--------+
| PS_MIO0_500|-E6-----|||||--------------× _________ |
| | |||||QSPI_D3---------------| |-------+
| | ||||QSPI_D2----------------| |
|_________________| |||QSPI_D1-----------------| FLASH |
||QSPI_D0------------------| |
|QSPI_CS-------------------|_________|
5. (可选)外部 DDR 内存
Zynq 的 PS 部分需要外部 DDR 内存来运行操作系统或应用程序:
- DDR 类型:支持 DDR3 或 DDR3L,典型容量为 512MB 或 1GB。
- 连接设计:
- DDR 的地址、数据总线以及控制信号必须严格按照 Zynq 的硬件设计指南布局。
- 使用合适的终端电阻和差分对设计,避免信号完整性问题。