1、CLB、Slice和LUT之间的关系,以及Slice的组成;
2、LUT的功能;
3、Flip-Flop;
4、DRAM
4个6输入的LUTs(A、B、C、D)和8个触发器(其中4个可以配置成边沿触发的D触发器或电平触发的锁存器,另外的只能配置成边沿触发的D触发器)以及多路选择器(F7AMUX,F7BMUX,F8MUX)和进位链组成一个Slice,一个CLB包含两个Slices,要么是2个SLICEL或者是1个SLICEL和1个SLICEM。
There are six independent inputs (A inputs - A1 to A6) and two independent
outputs (O5 and O6) for each of the four function generators in a slice (A, B, C, and D).The function generators can implement:
• Any arbitrarily defined six-input Boolean function 任意6输入的布尔函数
• Two arbitrarily defined five-input Boolean functions, as long as these two functions
share common inputs 两个任意5输入的布尔函数
• Two arbitrarily defined Boolean functions of 3 and 2 inputs or less
其中,
LUT:可以是一个6输入的,也可以是两个5输入的,也可以是3个两输入的或者更少;
F7AMUX:将LUT A和B合成一个7输入的函数;
F7BMUX:将LUT C和D合成一个7输入的函数;
F8MUX:将LUT A、B、C、D合成一个8输入的函数;
一个Slice最多实现8输入的布尔函数,如果还想要更多的输入,可以通过多个Slices来实现。需要注意的是一个CLB中的两个Slice是没有相互连接的。
大约三分之二的Slices是SLICEL,其余的是SLICEM。SLICEM的LUTs可以配置成distributed 64-bit RAM or as 32-bit shift registers (SRL32) or as two SRL16s。
命名方式:水平方向上以Slice为单位递增,如第一个CLB中分别是X0,X1,第二个CLB中是X2,X3,以此类推;竖直方向上以CLB为单位,如第一个CLB为Y0,第二个CLB为Y1。
上图分别是SLICEM和SLICEM的示意图。
每个Slice有8个Flip-Flop,其中4个可以配置为边沿触发D触发器或电平触发的锁存器,还有四个额外的存储单元只能配置为边沿触发的D触发器。
控制信号包括:CLK(时钟信号)、CE(时钟使能)和SR(置位和复位);只有CLK信号是可编程的。
互联资源Interconnect Resources
布线资源根据工艺、长度、宽度、分布位置划分为4类:全局布线资源(如全局时钟,全局复位GSR,Global Set/Reset)、长线资源(BANK之间)、短线(不同CLB之间)、分布式布线资源。
以上内容来自xilinx官方文档UG474,相关的讲解FPGA结构的文档还有UG471,472,473等等。