忙了两天其他的事,我又开始找时间写了这篇文章

,今天写的这个其实很早我就想记录下了,以前学数电的时候好像就有接触到相关的一些概念,但是后来学FPGA以后没太注意,感觉没什么关系,直到多次遇到梗以后才想着对这些概念重新了解下,特别是上几个月在求职的时候发现一些公司在招聘要求上写了需要对FPGA的架构要熟悉,那时候我还对架构有点懵逼,差点就不想玩了,然后耐着性子重新去找资料看了下,原来这些已经有过接触,这个要求上的架构指的就是FPGA的结构

,感觉这是我学习FPGA的一大失误,顺便再整理下当分享了,可能看着会有点枯燥,但是如果你想学FPGA的话,希望你一定要耐心看完。

 

FPGA内部的架构包括可编程输入输出单元,可配置逻辑块,嵌入式块RAM,布线资源,底层内嵌功能单元和内嵌专用硬核。

 

1、可编程输入输出单元

可编程输入输出单元就是指IOB(InputOutput Block),是芯片与外界电路的接口部分,完成不同电气特性下对输入/输出信号的驱动和匹配要求。

FPGA内的I/O按组分类,每组都能够独立地支持不同的I/O标准。在FPGA进行管脚约束的时候,可以配置不同的电气标准和I/O物理特性,也还可以调整驱动电流的大小等。

FPGA的IOB被划分为若干个组(Bank),每个Bank的接口标准都由其接口电压决定,一个Bank只能有一种接口电压,但不同Bank的接口电压可以不同。只有相同电气标准和物理特性的端口才能连接在一起,接口电压相同是连接的基本条件。

外部输入信号可以通过IOB模块的存储单元输入到FPGA的内部,也可以直接输入FPGA内部。当外部输入信号经过IOB模块的存储单元输入到FPGA内部时,其保持时间要尽可能的低,通常默认为0

 

2、可配置逻辑块

缩写是CLB即ConfigurableLogic Block,一个CLB是由查找表(LUT)、数据选择器(MUX)、进位链(Carry Chain)、寄存器组成。

LUT+MUX可以完成组合逻辑功能

寄存器配置成触发器(flip flop)(FF)或锁存器(Latch)可以完成时序逻辑功能

在Xilinx公司的FPGA中,一个CLB由多个相同的Slice和附加逻辑构成,Slice是Xilinx定义的基本逻辑单位,一个Slice由两个4输入的函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。

 

 

 

 

3、嵌入式块RAM(BRAM)(Block RAM)

块RAM可被配置为ROM、RAM以及FIFO等常用存储模块,BRAM是由一定数量固定大小的储存块构成的,速度快,不过使用的时候比较消耗BRAM的资源,都是按块的整数倍使用的;

在使用BRAM的时候一般还会注意到一个分布式RAM(DRAM),BRAM和DRAM的区别就在于DRAM主要由LUT组成,不会占用BRAM的资源,DRAM也可以被配置成ROM、RAM和FIFO等存储模块,但是性能没BRAM的强,一般是BRAM的资源不够用了才考虑改成使用DRAM。

 
 
 
 
 
 

4、布线资源

布线资源连通FPGA内部的所有单元,而连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。FPGA芯片内部有着丰富的布线资源,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别:第一类是全局布线资源,用于芯片内部全局时钟和全局复位的布线;第二类是长线资源,用于完成芯片Bank间的高速信号和第二全局时钟信号的布线;第三类是短线资源,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线资源,用于专有时钟、复位等控制信号线。

不过在实际设计的时候不需要我们去选择布线资源,布局布线器会根据输入逻辑网表的拓扑结构和约束条件来自动连通各模块。

 
 

5、底层内嵌功能单元

内嵌功能模块主要指DLL(DelayLocked Loop)、PLL(Phase LockedLoop)、DCM(Digitial Clock Manger)、DSP(Digital System Processing)和CPU等软核。现在越来越丰富的内嵌功能单元,使得单片FPGA成为了系统级的设计工具,使其具备了软硬件联合设计的能力,逐步向SOC平台过渡。 DLL和PLL具有类似的功能,可以完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。PLL或DLL可以通过对应公司的开发平台通过生成IP核的方式进行管理和配置

 

6、内嵌专用硬核

内嵌专用硬核是相对底层嵌入的软核而言的,指FPGA处理能力强大的硬核(Hard Core),等效于ASIC电路,比如ZYNQ系列就内嵌了ARM Cortex-A9的硬核,工作频率可达1GHz以上。为了提高FPGA性能,芯片生产商在芯片内部集成了一些专用的硬核。包括为了提高FPGA的乘法速度,主流的FPGA 中都集成了专用乘法器;为了适用通信总线与接口标准,很多高端的FPGA内部都集成了串并收发器(SERDES),可以达到数十Gbps的收发速度。

 
 
转载自下面网址。如有侵权,请联系我删除。

FPGA的基本架构 - 云+社区 - 腾讯云 (tencent.com)