15.2.2. 功能描述

15.2.2.1. 版本

由于FPGA资源有限,无法实现芯片的全部逻辑,也由于模块的验证需求不尽相同,开发一款芯片 往往会实现多个FPGA版本,通过制作bitfile选择项不同,实现不同资源的bitfile,FPGA版本制作 bitfile选择项目如 表 15.1 所示。

  • PROCESS/MEMORY/DISPLAY/ENGINE选择模块为互斥,只能从三/二选一

  • 除了部分接口不出IO,其他模块默认包含在FPGA中

表 15.1 FPGA Bitfile 选择项

分类

选择1

选择2

选择3

备注

PROCESS

CPU

PCIE

MEMORY

DDR2

DDR3

NDDR

DISPLAY

LVDS

MIPI

NLCD

选择1包含LVDS&RGB

ENGINE

CE

GA

VE

选择1包含CE&SID

处理器选择说明

PROCESS选择项为CPU/PCIE,两者差别如 图 15.1 所示, 左边是选择CPU,右边是选择PCIE。

../../../_images/fpga_function_process.png

图 15.1 CPU和PCIE版本的区别

CPU选择项版本用于各种功能验证以及操作系统调试; CPU选择项版本等同于ASIC实现,通过PC机连接仿真器,仿真器连接到FPGA的JTAG接口,控制CPU实现访问。

PCIE选择项版本主要用于DE/GE/VE等具有大吞吐数据的模块自动化验证; PCIE选择项版本通过PC的PCIe连接到FPGA PCIe,FPGA实现PCIe转AXI,使用AXI进行传输和控制; 具有数据吞吐量大(2.5Gbps,当前使用<5MB,后续需要进一步提升)且方便自动验证。

接口模块说明

由于FPGA IO限制,接口模块往往没有包括ASIC所有模块;主要表现为在有多套一样的模块时, FPGA套数没有实际芯片那么多,具体套数如 表 15.2 所示。 接口IO分配的具体位置可参考附录1

表 15.2 FPGA 接口模块

模块

套数

备注

UART

3

UART0: 2线用于DEBUG,UART1/2: 3线用于RS485验证

TWI

4

TWI0/1:CON,TWI2: AUDIO-AC101,TWI3: DVP/MIPI-CSI

CIR

2

CAN

2

MIPI

GMAC

2

GMAC0: RMII 100M,GMAC1: RGMII 1000M

USB

2

USB0: DEVICE,USB1: HOST

I2S

1

接AC101

DMIC

1

SPK_OUT

1

SPI

3

SPI0/1用于SPI NAND/NOR,SPI2用于PWMCS ADC使用

SDMC

3

PWM

ADCIM

15.2.2.2. 时钟

FPGA时钟管理原则如下:

  • CMU中模块的复位有效,但时钟Gating无效,不做关闭

  • CMU无MUX选择,每个模块固定时钟输入

  • 注意,CMU的RST控制位还是有效的

FPGA时钟树如 图 15.2 所示:

  • CPU/DDR/AXI可分别配置频率,通过烧写bitfile时配置FPGA输入时钟频率实现

  • GMAC/LCD/SDMC可动态调整频率,通过配置DRP寄存器修改FPGA内部PLL实现,见1.3.3

  • CLOCK5/CLOCK6/MMCM BANK70用于扩展使用

../../../_images/fpga_function_clock_tree.png

图 15.2 FPGA时钟树