GG484-2 的 FPGA 芯片内部的整体架构(基于 Xilinx Viv域划分的话(时钟域,顾名思义就是不同频率不同相位的时钟所划分的不同区域模块),通常根据不同的工艺、器件速度及其对应的时钟进行划分,如划分为 8 个区域;按照不同的资源类型划分的话,就是按照不同的资源部件的不同功能进行划分,如划分成 10 种资源;按照不同的模块划分的话,FPGA 芯片架构可以划分为 6 大模块。
为了便于管理和适应多种电气标准,FPGA 的 IOB 被划分为若干个组(Bank),每个 Bank 的接口标准由其接口电压 VCCO 决定;一个 Bank 只能有一种 VCCO,而不同 Bank 的 VCCO 可以不同;只有相同电气标准和物理特性的端口才能连接在一起,VCCO 电压相同是接口标准的基本条件。
IOB 为芯片内部逻辑和芯片外部输入和输出信号提供接口,可编程为输入、输出和双向 IO 三种方式。(通过 RTL 代码中信号的定义和引脚的约束即可实现)
SLICEL 和 SLICEM 内部都各自包含了 4 个 6 输入查找表(LUT6)、3 个数据选择器(Mux)、1 个进位链(Carry Chain)和 8 个寄存器(Register)。查找表和数据选择器完成组合逻辑功能,寄存器(可配置成触发器或锁存器)完成时序逻辑功能。
行业里的原因,就是太昂贵了)。6 输入表示输入地址位宽为 6 bits,更通俗地讲就是地址线 根;对于查找表,目前主流 FPGA 都采用了基于 SRAM 工艺的查找表(LUT)(Look Up Table)结构,所以 LUT 本质上就是一个 RAM。当用户通过原理图或 HDL 语言描述了一个逻辑电路以后,FPGA 开发软件会自动计算逻辑电路的所有可能结果,列成一个真值表的形式,并把真值表(即输入对应的输出逻辑)事先写入 RAM(写入 RAM 的过程即为 Bitstream 配置的过程,数据的载入),这样,每输入一个信号进行逻辑运算就等价于输入一个地址进行查表(软件中称为索引),找出地址对应的内容,然后输出即可(思考一下,
寄存器:可以配置成多种工作方式,比如 FF 或 Latch、同步复位或异步复位、复位高电平有效或低电平有效等等。SLICEM 的结构与 SLICEL 的结构类似,最大的区别是使用了一个新的单元代替 SLICE 中的查找表,这个新的单元可以配置为 LUT、RAM、ROM 或移位寄存器(SRL16 或 SRL32),从而可以实现 LUT 的逻辑功能,也能做存储单元(多个单元组合起来可以提供更大的容量)和移位寄存器(提供延迟等功能)。
BRAM 可被配置为 ROM、RAM、FIFO 等常用的存储模块。区别于分布式 RAM(Distributed RAM),DRAM主要由 LUT 组成的,而不占用 BRAM 的资源,分布式 RAM 也可以被配置为 ROM、RAM、FIFO 等常用的存储模块,但是性能不如 BRAM,毕竟 BRAM 才是专用的(在IC设计中,专用的才是性能较好的,例如ASIC就比 FPGA 性能好,GPU就比 CPU 跑得快,但是,太专一的缺点就是不够灵活哈哈)。所以,在 BRAM 资源不够用的情况下,才使用分布式 RAM,或者是不追求性能的情况下。
BRAM 由一定数量固定大小的存储块构成的,使用 BRAM 资源不占用额外的逻辑资源,并且速度快性能高。然而,使用的时候消耗的 BRAM 资源只能是其块大小的整数倍,当你调用了 BRAM,就算你只存了一个比特也要占用一个 BRAM。 一个 BRAM 的大小为 36K Bits,可以分成两个小的 RAMB18 各自为 18K Bits,以及一个大的 RAMBFIFO36 为 36K Bits,例如,总共有 135 个 BRAM,又可以分为 135 个 RAMB36 或 270 个 RAMB18。
在 FIFO 例化的时候可以将 BRAM 设置为 FIFO 时,不会使用额外的 CLB 资源,并且这部分 RAM 是真双口 RAM。
布线资源连通着 FPGA 内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA 芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为 4 类不同的类别:
想要详细了解布局布线 Place & Route 的话,可以参考文章《数字 IC 笔试面试必考点(3)数字 IC 前端设计 + 后端实现》
DLL 和 PLL 具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和相移功能。Xilinx 公司生产的芯片上集成了 DCM 和 DLL,Altera公司生产的芯片上集成了 PLL。PLL 和 DLL 可以通过 IP 核生成的方式进行管理和配置。
DCM 是 FPGA 内部处理时钟的重要器件,他的作用主要有三个:消除时钟偏差(Clock De-Skew)、频率合成(Frequency Synthesis)和相位调整(Phase Shifting);DCM 的核心器件是延时锁相环 DLL 和锁相环 PLL,它是由一串固定时延的延时器组成,每一个延时器的时延约为 30 皮秒,也就是说,DCM 所进行的倍频、分频、调相的精度为 30 皮秒(DLL 由数字电路实现,PLL 由数模混合电路实现)。
对于时钟,我们最好不要将两个时钟通过一个与门或者或门操作(等等的一些逻辑操作),这样的话就很可能会产生毛刺,影响系统稳定性,如果要对时钟进行操作,例如切换时钟等,可以使用 FPGA 内部的专用器件 BUFGMUX(原语 Primitives)。
现在越来越丰富的底层内嵌功能单元,使得单片 FPGA 成为了系统级的设计工具,具备了软硬件联合设计的能力,逐步向 SoC 平台过渡。
内嵌专用硬核是相对底层嵌入的软核而言的,指的是 FPGA 处理能力强大的硬核(比如ARMCortex-A9 的硬核),等效于 ASIC 电路。为了提高 FPGA 性能,芯片生产商在芯片内部集成了一些专用的硬核。例如,主流的 FPGA 中都集成了专用的 DSP 乘法器,用于提高 FPGA 乘法器的速度;而为了适用通信总线与接口标准,很多高端的 FPGA 内部都集成了串并收发器(Serdes),例如 FMC,可以达到数十 Gbps 的收发速度呢。
成本分析,以便在企业上云时有一个更清晰的成本观念。云桌面的成本之前禹龙云有介绍过(云桌面的成本核算方法)大家可以看看。今天重点简述
,可编程成几乎任何类型的系统或数字电路,类似于PLD。PLD仅限于数百个门,但
特点总结国产化分析华为Atlas 300寒武纪比特大陆各种硬件CPUCPU(Central Processing Unit)中央处理器,是一块
1.可编程输入输出单元(IOB)(Input Output Block)2.可配置逻辑块(CLB)(Configurable Logic Block)3.
如下所示,大体按照时钟域划分的,即根据不同的工艺、器件速度和对应的时钟进行划分。
西门子plc S7-1200/S7-1500优化的DB块与标准的DB块整体对比