可配置逻辑单元 CLB(参考ug474)

可配置逻辑单元 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

注:所有参考资料都在该文档绑定的下载资源里面,需要可以下载!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FPGA的花路

你的鼓励是我最大的创作动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>