前言
本文节选UG474进行整理翻译,用于对CLB进行简单介绍,同时简单介绍了下针对逻辑资源设计的推荐流程。
CLB简介
7 系列可配置逻辑块 (CLB) 提供先进的高性能 FPGA 逻辑:
- 真6 输入查找表 (LUT) 技术
- 双 LUT5(5 输入 LUT)选项
- 分布式存储器和移位寄存器逻辑功能
- 用于算术功能的专用高速进位逻辑
- 用于有效利用的宽多路复用器
CLB 是实现顺序电路和组合电路的主要逻辑资源。 每个 CLB 元素都连接到一个开关矩阵,用于访问通用路由矩阵。 CLB 元素包含一对切片。
7 系列 FPGA 中的 LUT 可配置为具有一个输出的 6 输入 LUT,或配置为具有独立输出但公共地址或逻辑输入的两个 5 输入 LUT。 每个 5 输入 LUT 输出可以选择在触发器中寄存。 四个这样的 6 输入 LUT 及其八个触发器以及多路复用器和算术进位逻辑形成一个 slice,两个 slice 形成一个 CLB。 每个切片四个触发器(每个 LUT 一个)可以选择配置为锁存器。 在这种情况下,该片中剩余的四个触发器必须保持未使用状态。
7 系列 CLB 特性
7 系列 CLB 与 Virtex-6 FPGA 系列中的 CLB 相同。 CLB 与 Spartan-6 FPGA 系列的 CLB 非常相似,但有以下区别:
- 列式架构
- 轻松扩展到更高的密度
- CLB 之间的更多路由
- 仅 SLICEL 和 SLICEM(无 Spartan-6 FPGA SLICEX)
- 所有切片都支持进位逻辑
- 更多优化
CLB 结构中的通用特性简化了从 Spartan-6 和 Virtex-6 系列到 7 系列器件的设计迁移。 独特的平面布置图意味着在实施最初针对早期 FPGA 的设计之前应消除位置限制。 与 Virtex-6 FPGA 系列相比,互连布线资源在尺寸、数量和灵活性上都有所增加,从而提高了自动布局布线结果的质量。
设备资源
CLB 资源可在所有 7 系列系列中进行扩展,提供可提高效率、IP 实施和设计迁移的通用架构。 CLB 的数量以及 CLB 与其他设备资源的比例区分了 7 系列系列。 7 系列系列之间的迁移不需要对 CLB 进行任何设计更改。
器件容量通常以逻辑单元来衡量,逻辑单元相当于经典的四输入 LUT 和触发器。 7 系列 FPGA CLB 六输入 LUT,丰富的触发器和锁存器,进位逻辑,以及在 SLICEM 中创建分布式 RAM 或移位寄存器的能力,增加了有效容量。 逻辑单元和 6 输入 LUT 的数量之比为 1.6:1。
推荐的设计流程
CLB 资源是针对通用设计逻辑推断的,不需要实例化。 好的 HDL 设计就足够了。 需要注意的一些事项:
- CLB 触发器具有置位或复位。 设计者不能同时使用 set 和 reset。
- Flip-flops 很丰富。 应该考虑使用流水线来提高性能。
- 控制输入在片或CLB 之间共享。 应尽量减少设计所需的独特控制输入的数量。 控制输入包括时钟、时钟使能、设置/复位和写使能。
- 6 输入 LUT 可用作 32 位移位寄存器以实现高效。
- 6 输入 LUT 可用作 64 x 1 存储器以满足小型存储要求。
- 专用进位逻辑有效地实现算术功能。
这些步骤表明了推荐的设计流程:
- 使用首选方法(HDL、IP 等)实施设计。
- 评估利用率报告以确定使用的资源。
- 考虑使用触发器。
- 为了提升性能使用流水线操作。
- 在专用资源(块 RAM、DSP)的输出端使用专用触发器。
- 允许移位寄存器使用 SRL(避免设置/重置)
- 尽量减少设置/重置的使用。
reference
- UG474