欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

赛灵思逻辑单元-ug474 注释

最编程 2024-03-10 11:35:25
...

一、CLB

1.1 CLB简介

CLB的全称为CLB,是实现顺序和组合逻辑的主要逻辑单元,提供高性能的FPGA逻辑,每个CLB包含两片Slice,每个CLB都连接到一个开关矩阵,如下图所示:

既然CLB是由两片Slice构成的,那么了解Slice的属性即可了解CLB的功能,CLB中两个Slice之间没有互连线,分属于两个不同的列,每列拥有独立的快速进位链资源。每个Slice中包含(page of 16-18):

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

ii、8位寄存器

iii、进位链

iv、多路选择器

2、Slice结构

作为CLB的基本单元,Slice分为SliceL和SliceM两种类型,SliceL即Slice of Logice,可用于产生逻辑、算数、rom等。SliceM算是SliceL的升级版,除了具有SliceL的功能之外还可以配置成64bit分布式RAM(64bit Distributed RAM)或16/32位的移位寄存器。每个CLB包含两个SliceL或者一个SliceL+一个SliceM。Slices中SliceL占比大概是2/3,剩下的是SliceM。

SliceL结构图:

可以从SliceL的结构图中看到其中包含8个寄存器(中右)、4个6输入LUT、进位链、多路选择器等。

SliceM结构图:

下图为CLB的逻辑资源,注意SliceL不含有分布式RAM与触发寄存器:

3、LUT(page of 21)

7系列每个Slice中含有4个6输入查找表(A、B、C and D),每个查找表的6输入(A1-A6)是独立的,且每个LUT包含两个独立的输出(O5-O6),LUT的使用分为6-input模式和5-input模式。

6输入模式:A1-A6作为输入,O6输出。

5输入模式:A1-A5作为输入,A6高电平驱动,O5与O6输出。

3.1 复用器

除了LUT的基本功能外,Slice还有三总多路复用器,F7AMUX、F7BMUX、F8MUX,这些多路复用器用于组合最多四个函数生成器,在一个片中提供7个或者8个输入的任何函数。F7AMUX连接的是LUT A、B,F7BMUX连接的是LUT C、D。F8MUX连接四个LUT。

3.2 存储单元

每片Slice中包含8个存储单元,其中4个可以配置为边沿触发的D触发器或者低电平有效的锁存器(意思应该是在低电平时数据锁存吧),D触发器模式的的输入可以是同一Slice的复用器输出,也可以是其他Slice的数据输入。当存储单元配置为锁存器时,低电平锁存数据。

另外4中存储单元只能边沿触发的D触发器,当上述的四个存储器都配置为锁存器时,这四个存储单元被禁用。

控制信号:

控制时钟CLK、时钟使能信号CE,置位/复位SR,对于同一Slice的所有存储单元是通用的,CE与SR信号高有效。

SliceM可以配置成分布式RAM,一个SliceM中的多个LUT可以以多种方式组合在一起存储更多的数据,把多输入的地址当成输入,通过查表的形式得到逻辑输出。一个SliceM可以配置成以下形式:

Note:

32x1bit,x前面数字代表的是RAM深度,后面的数字代表数据宽度。

For example:

512x16bit,代表RAM读写时以16bit为数据单元来进行,最多可存储32个。 也就是WA地址线的2的n次方。

分布式RAM和Block Rom的选择一般遵循以下规则:

(1)、小于或等于64bit容量的都使用分布式RAM实现

(2)、深度在64~128bit之间的,如果没有额外的Block RAM可用分布式RAM

(3)、分布式RAM比Block RAM具有更好的性能,分布式RAM在专门的逻辑资源CLB中,而Block在专门的存储器阵列中,会产生较大的布线延迟,布局也受制约。

3.3 进位链

每个Slice都有4bit的进位链,每个bit都由一个MUX和一个异或门组成,可以在实现加减法时产生进位逻辑,加快运算速度,也可产生一般逻辑。