目录
- 可配置逻辑单元 CLB
- 概述
- FPGA 器件 CLB 资源对比
- 设计建议
- CLB 组成单元介绍
- SLICE
- Look-Up Table (LUT)
- Storage Elements
- Distributed RAM (Available in SLICEM Only)
- 32 X 2 Quad Port Distributed RAM
- 32 X 6 Simple Dual Port Distributed RAM
- 64 X 1 Single Port Distributed RAM
- 64 X 1 Dual Port Distributed RAM
- 64 X 1 Quad Port Distributed RAM
- 64 X 3 Simple Dual Port Distributed RAM
- 128 X 1 Single Port Distributed RAM
- 128 X 1 Dual Port Distributed RAM
- 256 X 1 Single Port Distributed RAM
- Read Only Memory (ROM)
- Shift Registers (Available in SLICEM Only)
- Multiplexers(多路复用器)
- Carry Logic
- 应用
- 时序
- 参考资料
可配置逻辑单元 CLB
概述
ASMBL 架构

Device 视图


命名
- X 表示第几列,从 0 开始
- Y 表示第几行,从 0 开始

功能

- 每个 LUT 可实现 1 个 6 输入查找表或者 2 个 5 输入查找表
- 分布式存储(只有 SLICEM)
- 移位寄存器(只有 SLICEM)
- 专用高速进位逻辑
- 多路复用器
FPGA 器件 CLB 资源对比
- 对于7系列包含的 6 输入 LUT 来说,一个 LUT 等效于 1.6 个 logic cell
- 1 个 logic cell ≈ 15 个 ASIC gate




设计建议
- 触发器(flip-flops)具有复位和置位功能,但二者不能同时使用
- FPGA 包含大量触发器,可通过流水线设计来提高性能
- 每个 CLB 共享一组控制信号(包括时钟,时钟使能,复位/置位,写使能),所以应减少控制信号类别,并减少使用复位/置位信号
- 6 输入 LUT 可以实现 32 bit 移位寄存器
- 6 输入 LUT 可以实现 64x1 bit 的小存储器
- 若 CLB 资源不够,可以考虑将寄存器改为 SRLs 或分布式 RAM、分布式 RAM 改为 BRAM、进位逻辑改为 DSP
CLB 组成单元介绍
SLICE
- 每个 CLB 由 2 个 SLICEL 或者 1 个 SLICEL + 1 个 SLICEM 组成
- 每个 SLICE 包含 4 个 LUTs + 8 个 存储单元 + 多路复用器 + 进位逻辑
- 所有 SLICE 都提供逻辑、算术和 ROM 功能
- 只有 SLICEM 提供 DRAM 和移位寄存器功能
SLICEL 和 SLICEM 组成框图如下所示:

Look-Up Table (LUT)

-
LUT 可实现 6 输入功能
-
F7AMUX 连接 LUT-A 和 LUT-B 的输出实现 7 输入功能,F7BMUX 连接 LUT-C 和 LUT-D 的输出实现 7 输入功能
-
F8MUX 连接 F7AMUX 和 F7BMUX 的输出实现 8 输入功能
-
大于 8 输入功能使用多个 SLICE实现
Storage Elements
- 每个 SLICE 包含 8 个 Storage Elements,其中 4 个既可以用作 D 触发器(边缘触发),又可以用作锁存器(电平触发);另外 4 个只能用作 D 触发器
- 若 SLICE 使用了锁存器,则另外 4 个 Storage Elements 无法使用,所以要避免生成锁存器,减少资源浪费
- 可以使用时钟下降沿触发,不会额外增加资源,只要做好跨时钟域处理



-
参数
- SRLOW:SR信号置位时,进行同步或者异步复位
- SRHIGH:SR信号置位时,进行同步或者异步置位
- INIT0:复位后初始值
- INIT1:置位后初始值
注:每个 Storage Elements 的 SRLOW 和 SRHIGH 参数都可以独立配置
-
RTL 综合后会生成一下五种情况:
- FDCE:D Flip-Flop with Clock Enable and Asynchronous Clear

- FDPE:D Flip-Flop with Clock Enable and Asynchronous Preset

- FDRE:D Flip-Flop with Clock Enable and Synchronous Reset

- FDSE:D Flip-Flop with Clock Enable and Synchronous Set

- Latch
Distributed RAM (Available in SLICEM Only)
- 支持单端口或双端口
- 同步写操作,需要写时钟
- 异步读操作,不需要时钟
- 数据输入需要满足建立时间要求
- 每个 SLICEM 可以实现以下功能:

32 X 2 Quad Port Distributed RAM

32 X 6 Simple Dual Port Distributed RAM

64 X 1 Single Port Distributed RAM

64 X 1 Dual Port Distributed RAM

64 X 1 Quad Port Distributed RAM

64 X 3 Simple Dual Port Distributed RAM

128 X 1 Single Port Distributed RAM

128 X 1 Dual Port Distributed RAM

256 X 1 Single Port Distributed RAM

Read Only Memory (ROM)
- 每个 SLICE 可实现以下 ROM 功能:

Shift Registers (Available in SLICEM Only)
- 每个 LUT 可实现 1-32 位移位寄存器,4 个 LUT 级联可实现 128 位移位寄存器
- 移位寄存器不支持置位和复位操作
32-Bit Shift Register

Dual 16-Bit Shift Register

64-Bit Shift Register

96-Bit Shift Register

128-Bit Shift Register

Multiplexers(多路复用器)
- 使用 1 个 LUT 实现 4 : 1 多路复用器
- 使用 2 个 LUT 实现 8 : 1 多路复用器
- 使用 4 个 LUT 实现 16 : 1 多路复用器



Carry Logic

应用
BRAM or DRAM
- 当存储深度不大于 64 bit 时,优先使用 DRAM,除非 DRAM 资源不够,因为 DRAM 在资源使用、性能和功耗上都优于 BRAM
- 当存储深度大于 64 bit 且小于等于 128 bit 时:
- 若没有 BRAM,则使用 DRAM 资源
- 延迟要求,若要实现异步读操作,则使用 DRAM
- 存储数据位宽大于 16 bit 时,使用 BRAM
- 性能要求,使用 DRAM + 寄存器输出方式
移位寄存器
Synchronous Shift Registers

Static-Length Shift Registers

进位逻辑
-
进位逻辑可实现加法器、计数器、比较器
-
较小的算术功能使用 CLB 实现更快且功耗更低,相比于 DSP48E1
时序
详见 ug474_7 Series FPGAs Configurable Logic Block User Guide 第五章节
参考资料
ug474_7 Series FPGAs Configurable Logic Block User Guide
注:所有参考资料都在该文档绑定的下载资源里面,需要可以下载!

&spm=1001.2101.3001.5002&articleId=140245913&d=1&t=3&u=caed489d20c6459d98a599f26abe3e78)
6833

被折叠的 条评论
为什么被折叠?



