学习笔记——7系列FPGA CLB

CLB(Configure Logic Block):可编程逻辑单元

CH1. 总述

  1. 一个CLB包含两个slice,slice类型为 两个slice L 或是 一个slice L和slice M。所有CLB中slice L和slice M的比例约为2:1。
  2. 一个CLB所含资源如下表所示。每个slice包括:4个LUT、8个存储资源、多路复用器、进位逻辑。一个CLB中的逻辑资源

CH2.功能细述

Slice

一个CLB中的slice没有直接连接,每个slice各成一列,每个slice都有独立的进位链(Carry chain),如下图所示。

slice M中的LUT可以用作64bit的分布式RAM或是32位移位寄存器(SRL32)或是SRL16,可读可写。SliceL中的LUT不可用作RAM、SRL32和SRL16,只读。
在这里插入图片描述
在这里插入图片描述

LUT

LUT6由两个LUT5组成,如下图所示。因此,LUT可以配置成LUT6,或是具有单独输出但具有公共地址或逻辑输入的两个LUT5。

每个LUT5由一个触发器(FF, Flip-flops)驱动。每个slice有4个LUT6和8个FF,与上表一个CLB所含资源数一致。
在这里插入图片描述

Storage Elements

每个slice有八个存储单元。
四个可配置成边缘触发D型触发器或电平敏感锁存器。
另外四个附加的存储元件只能配置为边缘触发D型触发器。当四个触发器配置成锁存器时,另外四个不能使用。
在这里插入图片描述
控制信号:时钟(CLK)、时钟使能(CE)、置位或复位(SR)。
CE和SR是高电平有效。
SRLOW:当SR有效时同步或异步复位;
SRHIGH:SR有效时同步或异步置位;
INIT0:通电异步复位或全局置/复位;
INIT1:通电异步置位或全局置/复位。

Distributed RAM (Available in SLICEM Only)

一个sliceM中可配置的RAM类型如下表所示。

分布式RAM同步写入,写入操作需要一个时钟沿,异步读取。
在这里插入图片描述
Slice L和Slice M都可以实现64bit ROM,有三种ROM可实现,配置和占用LUT数量如下:
在这里插入图片描述

Shift Registers (Available in SLICEM Only)

Slice M可以配置成32bit 移位寄存器,且使用slice中的触发器。

每个LUT可以将串行数据延迟1-32个clk。Slice中4个LUT级联可以产生128个clk延迟,亦可以跨多个slice合并移位寄存器。Slice之间没有直接连接以形成更长的移位寄存器。

移位操作需要一个时钟边缘;LUT Q输出的动态长度读取操作是异步的;LUT Q输出的静态长度读取操作是同步的;

应用:

  • 延迟或延迟补偿 ;

  • 同步FIFO和 内容存储器(content addressable memory,CAM)
    在这里插入图片描述

Multiplexers

可以在多个slice上创建宽度大于16:1的多路复用器。然而,slice之间没有直接连接来形成这些宽复用器。
4:1多路复用器,使用1个LUT
8:1多路复用器,使用2个LUT
16:1多路复用器,使用4个LUT
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Carry Logic

用于在slice中执行快速算术加减运算。7系列FPGA CLB有两个单独的进位链。

进位链向上运行,每个slice的高度为四位。对于每个位,都有一个进位多路复用器(MUXCY)和一个专用的异或门,用于将操作数与所选进位相加/相减。专用进位路径和进位多路复用器(MUXCY)也可用于级联函数生成器。
在这里插入图片描述

CH3.Primitives

Multiplexer Primitives

多路复用器原语提供每个slice中专用多路复用器的直接实例化,允许构建更广泛的多路复用器。表3-1描述了这两个原语。两个复用器原语的端口信号相同。
在这里插入图片描述在这里插入图片描述

Carry Chain Primitive

可以实现两个4bit数的加减法运算。
在这里插入图片描述
Sum Outputs - O[3:0] 求和或减法输出
Carry Outputs - CO[3:0] 每一位的进位输出
Carry In – CI 进位输入
Data Inputs - DI[3:0] 数据输入
Select Inputs - S[3:0] 数据异或输入
Carry Initialize – CYINIT 进位初始化输入用于选择进位链中的第一位。该引脚的值为0(用于加法)、1(用于减法)或AX输入(用于动态第一进位)。

SLICEM Distributed RAM Primitives

在这里插入图片描述
在这里插入图片描述
Clock – WCLK:用于同步写入的时钟
Enable – WE/WED:写入使能
Address – A[#:0], DPRA[#:0], and ADDRA[#:0] – ADDRD[#:0]:地址
Data In – D, DID[#:0]:写入数据
Data Out – O, SPO, DPO and DOA[#:0] – DOD[#:0]:数据输出

SLICEM SRL Shift Register Primitive

在这里插入图片描述
Clock – CLK时钟
Data In – D数据输入
Clock Enable – CE时钟使能
Address – A[4:0]地址
Data In – Q数据输出,由A选择移位的输出
Data Out – Q31 移位32输出

Flip-Flop Primitives

在这里插入图片描述

  • Data In – D:输入数据.
  • Data Out – Q:移位寄存数据输出
  • Clock - C:时钟 Clock Enable - CE:时钟使能
  • Synchronous Reset -R:当R为高时,所有其他输入被覆盖,数据输出(Q)在活动时钟转换时被驱动为低。
  • Synchronous Set – S :当S为高时,所有其他输入被覆盖,并且数据输出(Q)在活动时钟转换上被驱动为高。
  • Asynchronous Clear -CLR:当CLR为高时,所有其他输入被覆盖,数据输出(Q)被驱动为低。
  • Asynchronous Preset -PRE:当PRE为高时,所有其他输入被覆盖,数据输出(Q)被驱动为高。

CH4 Applications

Synchronous Shift Registers

在这里插入图片描述

Static-Length Shift Registers

图4-2显示了一个72位移位寄存器。只有最后一个SRLC32E原语需要将其地址输入绑定到5b’00111。或者,移位寄存器长度可以限制为71位(地址绑定到5b’00110),触发器可以用作最后一个寄存器。(在SRLC32E原语中,移位寄存器长度为地址输入+1)。
在这里插入图片描述
使用STARTUPE2原语定义并连接GSR和GTS信号源。此原语允许用户定义这些专用网络的源。GSR和GTS在配置过程中始终处于激活状态,通过STARTUPE2原语将信号连接到GSR和GTS,定义了配置后如何控制GSR和GTS。默认情况下,在启动阶段的选定时钟周期上进行配置后,它们将被禁用,从而启用设备中的触发器和I/O。

参考资料:

xilinx官方文档: UG474 -7 Series FPGAs Configurable Logic Block User Guide
https://blog.csdn.net/wuzhikaidetb/article/details/124642077

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于FPGA(Field-Programmable Gate Array)的CLB(Configurable Logic Block)测试,可以执行以下步骤: 1. 配置测试环境:准备好适用于FPGA的测试工具和开发环境。这可能包括Xilinx Vivado、Intel Quartus Prime等。 2. 设计测试模块:根据您的需求,设计一个用于测试CLB的模块。这可以是一个简单的逻辑电路,也可以是更复杂的组合电路。 3. 生成测试向量:根据设计的测试模块,生成一组适当的输入测试向量。这些向量应该包含各种可能的输入组合,以验证CLB的功能和性能。 4. 编译和综合:使用测试工具,将设计和测试向量编译成适合FPGA的比特流文件。这个过程通常包括将设计映射到FPGA的逻辑资源,并生成适当的时序约束。 5. 下载和配置:将生成的比特流文件下载到目标FPGA设备中,并进行配置。这样,CLB就会被正确地实现和配置在FPGA上。 6. 运行测试:使用适当的测试工具和方法,对已经配置好的FPGA进行测试。这可能包括检查输出结果是否与预期相符,测量时序延迟等。 7. 分析和调试:如果测试发现问题,可以使用调试工具和技术来分析和修复问题。这可能涉及查看波形、调整时序约束、重新设计电路等。 需要注意的是,具体的CLB测试方法可能因FPGA厂商和工具而异。因此,在进行CLB测试之前,建议参考相关的FPGA厂商文档和测试指南,以获取更详细和准确的信息。 希望这些信息能对您有所帮助!如果您有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值