推开zynq-7000的大门

推开zynq-7000的大门

1 背景知识

20104月硅谷举行的嵌入式系统大会上,赛灵思发布了可扩展处理平台的架构详情,这款基于无处不在的ARM处理器的SoC可满足复杂嵌入式系统的高性能、低功耗和多核处理能力要求。赛灵思可扩展处理平台芯片硬件的核心本质就是将通用基础双ARM Cortex-A9 MP Core处理器系统作为“主系统”,结合低功耗28nm工艺技术,以实现高度的灵活性、强大的配置功能和高性能。由于该新型器件的可编程逻辑部分基于赛灵思28nm 7系列FPGA,因此该系列产品的名称中添加了“7000”,以保持与7系列FPGA的一致性,同时也方便日后本系列新产品的命名。

    1. 什么是SOC

SoC 这个术语常用于指专用集成电路 Application Specific Integrated CircuitASIC),它上面可以有数字的、模拟的和射频的元件,和混合信号模块组合起来来实现模拟 - 数字转换和数字 - 模拟转换(ADC DAC)。单就数字部分而言,一块 SoC 可以组合上数字系统所有的功能:处理、高速逻辑、接口、存储器等等。所有这些功能也可以用物理上分立的器件来实现,然后在印刷电路板 PCB)的层面上组合起来。SoC 的解决方案成本更低,能在不同的系统单元之间实现更快更安全的数据传输,具有更高的整体系统速度、更低的功耗、更小的物理尺寸和更好的可靠性。事实上有一大堆无可辩驳的理由来说明 SoC 比等价的分立元件系统要强!可以看一下图1和图2,这是关于板上系统和片上系统的简单图形化比较。

图1 板上系统

 

图2 片上系统

    1. 嵌入式 SoC 的简单剖析

处理器可以被看作是硬件系统的中央单元。软件系统 (软件 ”)是运行在处理器上的,由应用程序 (通常是基于操作系统的)和一个更低的与硬件系统打交道的软件功能层组成的。系统单元之间的通信是通过互联进行的。这种互联可能是直接的、点对点链接,也可能是服务于多个单元的总线。如果是后者,就需要协议来管理总线访问。注意的是,尽管图 3 所示是有外设连接着的单一总线,但是一个处理器可以具有多个总线连接。

3 嵌入式 SoC 的硬件系统架构

 

4 给出了把图 3 所示的硬件系统映射到图 2 所描绘的 Zynq 芯片上的样子两者的架构都被大大地简化了, 因为目前我们的目标只是从高层阐述嵌入式SoC是如何映射在 Zynq 芯片上的。PS 具有固定的架构,承载了处理器和系统存储区,而 PL 完全是灵活的,给了设计者一面 空白画布 来创建定制的外设,或重用标准外设。互联是通过连接了 PS PL AXI 接口来实现的。

4 软件系统、硬件系统和 Zynq 架构之间的关系

2 硬件介绍

5  Zynq 处理器系统

如图5所示,所有的 Zynq 芯片都有相同的基本架构。主要由两大部分组成PSProcessing System)和PLProgrammable Logic)组成。

2.1 PS

作为处理器系统的基础,所有的芯片都包含了一颗双核 ARM Cortex-A9 处理器。 这是一颗处理器 —— 它是芯片上专用而且优化过的硅片元件。PSAPUApplication Processing UnitAPU )、扩展外设接口、存储器接口、互联接口、时钟发生电路、以及cache 存储器等电路组成。这里重点介绍一下APU

6 应用处理器单元(APU)的框图

如图6所示,APU(应用处理器单元 ) 主要是由两个 ARM 处理核组成的,每个都关联了一些可计算的单元:一个 NEONTM 媒体处理引擎(Media Processing EngineMPE)和浮点单元 Floating Point UnitFPU);一个内存管理单元(Memory Management UnitMMU);和一个一级 cache 存储器(分为指令和数据两个部分)。APU 里还有一个二级 cache 存储器,再往下还有片上存储器 On Chip MemoryOCM)。最后,由一个一致性控制单元(Snoop Control UnitSCU)在 ARM 核和二级 cache OCM 存储器之间形成了桥连接,这个单元还部分负责与 PL 对接,图中没有标出这个接口。

2.2 PL

Zynq 架构的第二个主要部分是可编程逻辑。这是基于 Artix®-7Kintex®-7 FPGA 组件的7 描绘了 Zynq 芯片的 PL 部分,其中几个功能被高亮了出来。PL 主要是由通用FPGA 逻辑部分组成的,这个FPGA 是由逻辑片和可配置逻辑块 ConfigurableLogic BlockCLB)组成的,另外还有用于接口的输入 / 输出块(Input/ OutputBlockIOB)(注意这些都是 Xilinx 专有的术语)

7 逻辑部分及其组成单元

可配置逻辑块 (CLB) — CLB 是逻辑单元的小规模、普通编组,在 PL 中排列为一个二维阵列,通过可编程互联连接到其他类似的资源。每个 CLB 里包含两个逻辑片,并且紧邻一个开关矩阵。
    • Slice — CLB 里的一个子单元,里面有实现组合和时序逻辑电路的资源。Zynq 的片是由 4 个查找表、8 个触发器和其他一些逻辑所组成的。
    • 查找表 Lookup TableLUT 一个灵活的资源,可以实现 (一)至多 6个输入的逻辑函数; (二)一小片只读存储器 ROM); (三)一小片随机访问存储器 RAM);或 (四)一个移位寄存器。LUT 可以按需组合起来形成更大的逻辑函数、存储器或移位寄存器。
    • 触发器(Flip-flopFF 一个实现 1 位寄存的时序电路,带有复位功能。FF 的一种用处是实现锁存。
    • 开关矩阵 Switch Matrix 每个 CLB 旁都有一个开关矩阵,实现灵活的布线功能来(一)连接 CLB 内的单元;或(二)把一个 CLB PL 内的其他资源连接起来。

进位逻辑 Carry Logic 算术电路需要在相邻的片之间传递信号,这就是通过进位逻辑来实现的。进位逻辑把布线和复用器组成链条来连接一个垂直列上的片。
    • 输入 / 输出块 Input/Output BlocksIOB — IOB 实现了 PL 逻辑资源之间的对接,并且提供物理设备焊盘来连接外部电路。每个 IOB 可以处理一位的输入或输出信号。IOB 通常位于芯片的周边。

3 设计流程

图8  Zynq-7000的基本设计流程框图

如图8所示,Xilinx Zynq-7000系列的基本设计流程从需求和技术指标开始,进入系统设计后首先进行软硬件划分,硬件部分通过vivado软件进行设计,包括Zynq-7000系统的搭建、综合、布局布线、约束生成bit文件等步骤。软件部分通过SDK来设计。最后嵌入式系统联合调试。

FPGA自习学院》将不断更新和总结FPGA相关学习资料,书籍,实例工程和视频。欢迎大家加入《FPGA自习学院》,一起学习一起成长。

 

 

 

猜你喜欢

转载自blog.csdn.net/baidu_34971492/article/details/88353409