XILINX 7 系列FPGA内部逻辑分析

 

1、可编程逻辑资源 (configurable logic block ,CLB)

      CLB在FPGA中最为丰富,由两个slice(片)构成:SLICEL(L:logic) 和SLICEM(M:memory)之分,因此CLB可分为CLBLL和CLBLM两类。一个芯片差不多2/3是SLICEL,1/3是SLICEM。

     SLICEL和SLICEM内部都包含4个6输入查找表(LUT6)、3个数据选择器(MUX)、1个进位链(carry chain)和8个触发器(flip flop)。但是两者结构有一些差异。SLICEL 和 SLICEM都含有LUT (查找表)的功能,的区别在于,SliceM中含有能够把LUT资源重新整合为Ram和Rom的逻辑。这就是所谓的Distributed Ram。

FPGA 中LUT LATCH FF

LUT:(Look Up Table) 查找表
LUT本质上就是一个RAM。它把数据事先写入RAM后,每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。

LATCH:就是锁存器。由电平触发,非同步控制。在使能信号有效时latch相当于通路,在使能信号无效时,latch保持输出状态。

LUT和LATCH他们的共同点是:均属于组合逻辑(和时钟没有任何关系)
不同点是:LUT是FPGA最小单元的组成结构,而latch不是。

扩展:分布式RAM是如何产生的及其与Block RAM的区别

CLB单元生成的distribute ram ,CLB是FPGA的基本单元,blockram也是基本单元,但分布ram要由CLB单元生成。由CLB生成分布式ram,消耗逻辑资源。而blockram则固定在fpga内,无论使用与否都存在于那里。通常,distribute ram 用于少量的数据的存储,当数据量大时,选择block ram,或者 当block ram不够用时可以用逻辑资源生成分布式ram。

2、存储单元(BLOCK RAM ,BRAM)

  每个BRAM大小为36KB(RAMB36E1)(平时在芯片选型时候标记的数据,指的是36KB 的个数),由两个独立的18KB BRAM (RAMB 18E1)构成,因此一个36KB的BRAM课配置为4中情形。由于两个18KB的BRAM无法共享其中的FIFO logic (用于生成FIFO控制信号包括读、写地址等),因此无法将一个36KB的BRAM当做两个18KB的built-in fifo (使用固有的fifo logic)来使用。

说明:fifo logic 用于生成FIFO 的控制信号 (如读写地址)和状态信号(如空/满标记信号)。

           在fpga中,BRAM 都是按块使用的,一个最小的块18KB,就算当时BRAM 使用空间实际只用了1KB,本质上也是占用 了 18KB的空间。

XILINX 7 系列FPGA内部逻辑分析

3、运算单元 (DSP48E1)

7系列FPGA中的运算单元为DSP48E1,它不仅可以实现逻辑运算,如与、或、异或,也可以实现算术运算,如加法、乘法、乘累加等。