SocKit系列—— # FPGA、SOC相关概念

FPGA相关概念

  1. FPGA与CPLD的区别: 正点原子开拓者 P32
  1. FPGA 基于SRAM编程(任意次数),CPLD基于EEPROM或FLASH存储器编程
  2. CPLD主体结构是与或阵列,FPGA是查找表+寄存器。查找表完成纯组合逻辑功能。
  3. CPLD组合逻辑更强,FPGA时序逻辑。
    SocKit系列—— # FPGA、SOC相关概念_第1张图片
    (正点原子超越者更详细介绍了这几类P27)
  1. FPGA的基本组成单元LUT,以及三种核的概念

Altera—>逻辑阵列块(Logic Array Block,LAB):每个 LAB 由 16 个 LE(Logic Element)组成,每个 LE 主要由查找表和寄存器组成。
Altera可编程逻辑单元通常被称为LE(Logic Element),由一个寄存器加一个LUT构成。Altera大多数FPGA将10个LE有机地组合在一起,构成更大的功能单元——逻辑阵列模块(LAB,Logic Array Block),LAB中除了LE还包含LE之间的进位链,LAB控制信号,局部互联线资源,LUT级联链,寄存器级联链等连线与控制资源
(LE是可编程逻辑单元,LAB是LE的有机组合)
Xilinx可编程逻辑单元叫Slice,它是由上下两个部分组成,每个部
分都由一个寄存器加一个LUT组成,被称为LC(Logic Cell,逻辑单元),两个LC之间有一些共用逻辑,可以完成LC之间的配合与级联。(下面的更在准确一点)
可编程逻辑单元叫 CLB(Configurable Logic Block,可配置逻辑块)它是最小的可编辑逻辑单元,每个 CLB 里包含两个逻辑片(Slice),每个 Slice 由 4 个查找表(LUT)、8 个触发器
(FF)和其他一些逻辑所组成的。

  • 基本的可编程逻辑单元就是LE和LC,然后10个LE构成一个LAB,2个slices构成一个CLB(LC是一个LUT+一个寄存器,但是Slice是4个LUT+8个寄存器)
  • 一般来说CLB是最小的逻辑单元。
    SocKit系列—— # FPGA、SOC相关概念_第2张图片

有关 Spartan-6 系列( 6输入查找表(LUT))中的 3种Slices 的区别参考正点超越者P32。

  1. FPGA的基本结构:

    正点原子开拓者P33 包含不同厂商的比较;
    野火征途 P36 对内部结构更详细,但只介绍了Altera。

1.基本可编程逻辑单元,LE和LC;
2.用户可编程 I/O(User I/Os,也被简称为 IOE)FPGA 的 IOE 部分被划分为若干个组(Bank)
3.嵌入式块RAM。 嵌入式存储单元(Memory Bits,也被称为 Block RAM 或简称为 BRAM)
4.互连线资源(Interconnect):布线资源连通 FPGA 内部的所有单元,而连线的长度 和工艺决定着信号在连线上的驱动能力和传输速度
5.底层嵌入功能单元,通用程度较高的嵌入式功能模块,比如PLL(Phase Locked Loop)、DLL(Delay Locked Loop)、DSP、CPU等。(正点)
嵌入式乘法单元(Embedded multiPlier 9-bit elements,也简称为 DSP 块)(野火)
这个概念比较笼统,大致理解即可。
Altera芯片集成的是PLL,Xilinx集成的是DLL
6.锁相环(Phase Lock Loop,PLL)野火教程中将PLL作为一类单独拿出来,而正点中作为底层嵌入式功能单元了。
7.(正点)内嵌专用硬核
这里的内嵌专用硬核与前面的底层嵌入单元是有区分的,这里讲的内嵌专用硬核主要指那些通用性相对较弱,不是所有FPGA器件都包含硬核。

嵌入式块RAM(正点开拓者)

FPGA内嵌的块RAM一般可配置为单口RAM,双口RAM,伪
双口RAM,CAM,FIFO等常用存储结构。(1)RAM。(2)ROM:FPGA中其实并没有专用的ROM硬件资源,实现ROM的思路是对RAM赋予初值。
(3)CAM: CAM,即内容地址存储器,CAM这种存储器在其每个存储单元都包含了一个内嵌的比较逻辑,写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的地址。概括的讲,RAM是一种根据地址读,写数据的存储单元;而CAM和RAM恰恰相反,它返回的是端口数据相同的所有内部地址。 CAM的应用也十分广泛,比如在路由器中的交换表等。
除了块RAM,还可以灵活地将LUT配置成RAM,ROM,FIFO等存储结构,这种技术被称为分布式RAM。
相对于 LUT 构成的分布式 RAM(Distribute RAM,简称为 RAM),这种专用存储单元速度更快,容量更大,可以避免 LUT 资源的浪费,只有在 BRAM 资源不够时才不得不使用分布式 RAM。

SOC部分

  1. Cyclone V系列
    注意一下 Cyclone V,因为该系列包括 6 种
    型号,有只含逻辑的 E 型号、3.125-Gbps 收发器 GX 型号、5-Gbps 收发器 GT 型号,还有集成了基于双核
    ARM®的硬核处理器系统(HPS)的 SE、SX、STSoC 型号

  2. 硬核相比软核(包括软 CPU)还有一个优势,就是硬核不需要 FPGA开发软件进行编译和布局布线,所以完全不可能出现任何时序问题。

  3. SOC电源两部分(小梅哥AC540-序言)

Intel 的 SoC 使用了一个非常有实用价值的电源技术——FPGA 部分和 ARM 部分的供电电源是互相独立的。
其中任何一方即使不启动甚至断电,另一方依旧可以正常的工作。即使 ARM 部分不启动,FPGA 部分依旧可以作为一个完全独立的系统,通过 JTAG 或者 AS、PS 方式加载配置文件并运行。即如果不用到 HPS 部分,用户在使用 Intel SoC FPGA 时,可以完全将其当成一个独立的 FPGA 来使用。

两者可以通过互相给对方停电来降低功耗,也就是说给对方的电源输出控制脚发出一个控制电平,甚至在对方电源回路中增加一个功率 MOS 管,通过控制 MOS 管的通断来实现完全的电源关断。

电源方面没有上电和关电顺序要求,可以大大降低对外围电源的设计复杂度,降低成本,提高了产品的可靠性。

  1. SOC中ARM核
    Intel SOC 器件支持 ARM 公司 Cortex-A 系列的 AMP 功能,即双核可以同时运行 2 个相同或者不同的操作系统,也可以一个核心运行操作系统,另外一个核心运行裸跑模式。例如一个核心运行 UCOS II,一个核心运行裸跑程序。

  2. APU

SocKit系列—— # FPGA、SOC相关概念_第3张图片
APU 主要是由两个 ARM 处理器核组成的,每个都关联了一些可计算的单元:一个 NEONTM 媒体处理引擎(Media Processing Engine, MPE)和浮点单元(Floating Point Unit,FPU);一个内存管理单元(Memory Management Unit, MMU);和一个一级 cache 存储器(分为指令和数据两个部分)。 APU 里还有一个二级 cache 存储器,再往下还有片上存储器(On Chip Memory, OCM),这些是两个 ARM 处理器共用的。最后,由一个一致性控制单元(Snoop Control Unit, SCU)在 ARM 核和二级 cache 及 OCM 存储器之间形成了桥连接,用来保持双核之间的数据Cache的一致性。第一个A9处理器写存储时,只是写在了缓存里,没有进主存, 如果第二个A9读操作,涉及到第一个写脏了的数据段, SCU要保证第二个A9的缓存里是最新的数据。 如果第二个A9写同样数据段的数据,需要在第一个中体现出写的内容。 SCU的存在,才使得两个核成互相联系的“双核”,才能成为MPsoc。 SCU 还部分负责与 PL 对接,图中没有标出这个接口。

Zynq7000术语详解,不懂啥是PL,PS,APU,SCU?那就进来看看吧

MCU MPU APU
在这个位置上的处理器, 还有各种其他的叫法, 有MCU (微控制器处理单元Microcontroller Unit), MPU (微处理器单元Microprocessor Unit),等等。 MCU这个叫法,暗示了处理器功能不强,只能搞搞输入输出控制啊,写个小状态机啊, 一般都是8位机。 MPU呢,就更先进了一些,成prcessor了,这意味着处理器通常是32位的, 能干点计算的事。 但是, 有一个micro词根在里面,说明干的是小活, 通常没有正式的和全尺寸的操作系统, 通常没有内存管理单元MMU。 ARM 的Cortex-M系列是干这类活的。
APU, 带了Application这个词, 意味着在上面可以跑应用程序, 暗示着这个系统是需要全尺寸的操作系统的,和现在炙手可热的应用商店app store 遥相呼应。
APU里面具体包含的内容嘛,就是双ARM-CortexA9核,加上高速缓冲,DMA,定时器,中断控制,浮点和NEON协处理,硬件加速器一致性控制器ACP神马的。 也就是,处理器核心部分。

  1. ARM NEON架构

ARM NEON优化(一)——NEON简介及基本架构
NEON 技术是 ARM Cortex™-A 系列处理器的 128 位 SIMD(单指令,多数据)架构扩展,其本质上使用的是128位NEON SIMD寄存器,这意味着如果操作32位浮点数,可同时操作4个(变量可定义:float32x4_t);如果操作 16 位整数(short),可同时操作 8 个(变量可定义:int16x8_t);而如果操作 8 位整数,则可同时操作 16 个(变量可定义:int8x16_t)。

  1. 异构计算:
    异构计算综述

  2. Cyclone V SoC FPGA 提供 3 大类可选的类型。分别为:

    1. 具有基于 ARM 的 HPS 的 Cyclone V SE SoC FPGA。
    2. 具有基于ARM的HPS和3.125-Gbps收发器的Cyclone V SX SoC FPGA。
    3. 具有基于 ARM 的 HPS 和 5-Gbps 收发器的 Cyclone V ST SoC FPGA。

你可能感兴趣的:(SocKit,fpga开发,SOC)