FPGA资源介绍——可配置逻辑块CLB(三)
CLB(Configurable Logic Block)由两个Slice组成,由于Slice有SliceL(Logic)和SliceM(Memory)之分,因此CLB可分为CLBLL和CLBLM两类。
SliceL和SliceM内部都包含4个6输入查找表(LUT6)、3个数据选择器(MUX)、1个进位链(Carry Chain)和8个触发器(Flip-Flop)。
SliceL的内部示意图
输入查找表(LUT6)
SLICEL和SLICEM的结构组成一样,但两者更细化的结构上略有不同,区别在于LUT6上(如下图所示),从而导致LUT6的功能有所不同。
数据选择器(MUX)
SLICE中的三个MUX(Multiplexer:F7AMUX,F7BMUX和F8MUX)可以和LUT6联合共同实现更大的MUX。
SLICE中的F7MUX(F7AMUX和F7BMUX)的输入数据来自于相邻的两个LUT6的O6端口。F8MUX的输入数据来自F7AMUX和F7BMUX的输出端口。
事实上,一个LUT6可实现4选1的MUX。一个F7MUX和相邻的两个LUT6可实现一个8选1的MUX。因此,一个SLICE可实现2个8选1的MUX。4个LUT6、F7AMUX、F7BMUX和F8MUX可实现一个16选1的MUX。因此,一个SLICE可实现一个16选1的MUX。
进位链(Carry Chain)
进位链的内部包含4个MUX和4个2输入的异或门,进位链用于实现加法和减法运行。异或运算是加法运算中必不可少的运算。
Xilinx 7系中进位链的结构
触发器(Flip-Flop)
每个SLICE中有8个触发器。这个8个触发器可分为两大类:4个只能配置为边沿敏感的D触发器(Flip-Flop)和4个即可配置为边沿敏感的D触发器又可配置为电平敏感的锁存器(Flop&Latch)。当后者被用作锁存器的时候,前者将无法使用。
https://www.cnblogs.com/rouwawa/p/10031833.html#1-%E6%80%BB%E8%A7%88.