浅谈XILINX FPGA CLB单元 之 进位逻辑链(CARRY4原理分析,超前快速进位逻辑结构)

浅谈XILINX FPGA CLB单元 之 进位逻辑链(CARRY4原理分析,超前快速进位逻辑结构)

一、可配置逻辑块(Configurable Logic Block, CLB)简介

CLB可配置逻辑块是指实现各种逻辑功能的电路,是xilinx基本逻辑单元。下图给出了一个 SLICEM 的内部结构。
其中包含4个6输入LUT、进位链、多路复用器和8个寄存器
在这里插入图片描述
在Xilinx FPGA中,每个可配置逻辑块(CLB)包含2个Slice。每个Slice 包含查找表、寄存器、进位链和多个多数选择器构成。而Slice又有两种不同的逻辑片:SLICEM和SLICEL。SLICEM有多功能的LUT,可配置成移位寄存器,或者ROM和RAM。逻辑片中的每个寄存器可以配置为锁存器使用。今天写这篇文章的目的主要是为了让我们搞清楚FPGA重要资源CLB、Slice、LUT。

学习的主线是根据XILINX 官方文档“ug474_7Series_CLB.pdf”,官方下载地址

关于具体的CLB中各模块,如查找表(LUT)、存储单元、Distributed RAM、移位寄存器、Multiplexers、进位逻辑(Carry Logic)、可以参考这边博客:

本节主要针对进位逻辑(Carry Logic)部分进行详细的介绍。

二、进位逻辑链
  1. CLB进位模块
    在CLB中,除了函数发生器之外,还提供了专用的快速超前进位逻辑,以slice片中执行快速算术加法和减法。 7系列FPGA CLB具有两个独立的进位链,如下图所示。 进位链可级联以形成更宽的加/减逻辑。
    在这里插入图片描述
  2. 进位逻辑链的结构(CARRY4)
    7系列FPGA 每个 SLICE有 4bit 的进位链。进位链向上延伸,每个slice的高度为四位。 对于每个位,都有一个进位多路复用器(MUXCY) 和专用的XOR门,用于用选定的进位位加/减操作数。 专用的进位路径和进位多路复用器(MUXCY)也可以用于级联函数发生器,以实现广泛的逻辑功能。
    在这里插入图片描述
  3. CARRY4模块
    CARRY4原语实例化每个slice中可用的快速进位逻辑。 该原语与LUT结合使用以构建加法器和乘法器。 下图显示了CARRY4原语。 综合工具通常会从算术HDL代码中推断出此逻辑,从而自动正确连接此功能。
    在这里插入图片描述
    端口信号
    1)总输出-O [3:0] 总和输出提供加/减的最终结果。 它们连接到slice AMUX / BMUX / CMUX / DMUX输出。
    2)进位输出-CO [3:0] 进位输出提供每个位的进位。 CO [3]等效于COUT。 如果通过COUT将CO [3]连接到另一个CARRY4原语的CI输入,则可以创建更长的进位链,并且专用路由将进位链连接到一排片上。
    3)进位输出还可以选择连接至sliceAMUX / BMUX / CMUX / DMUX输出。
三、CARRY4结构能实现快速超前加法的原理
  1. CARRY4的原理过程:
    1)端口S[3:0]是要求数据的异或输入;
    2)端口DI[3:0]是数据的输入(a,b都可以),通过选择器判断是否是进位标志;
    3)MUXCY选择器作为向下一级输出标志的选择端口;

  2. 对于一个全加器
    具体的原理可以参考之前的一篇博客: 数字电路基础知识(四) 加法器-半加器、全加器与超前进位加法器
    基本的进位标志和输出如下。
    在这里插入图片描述
    对于CARRY4,端口S端其实是已经做过亦或处理的输入了。
    即:
    S=a@b //(@表示异或)
    端口D可以任选a、b输入当中的一个,如选择b
    输出端:
    那么O端即表示输出端:O = S@cin = a@b@cin
    进位端:
    CO=(a@b)'b +(a@b)cin //利用多路复用器:y=s’b+scin
    =(a’b+ab’)‘b+(a@b)cin
    =(a’b)’(ab’)‘b+(a@b)cin
    =(a+b’)(a’+b)b+(a@b)cin
    =(ab+b’b)(a’+b)+(a@b)cin
    =ab(a’+b)+(a@b)cin
    =(a@b)cin+ab

所以此CARRY4结构能够实现快速超前进位加法器。
如下面的一个例子,两个加数分别为0100,0101:
在这里插入图片描述

  • 22
    点赞
  • 127
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
xilinx fpga原理与实践pdf是一本介绍xilinx可编程逻辑芯片(FPGA)的书籍,全文共分为多个章节,详细讲解了FPGA的基本原理和应用实践。 首先,书中首先介绍了FPGA的基本概念和工作原理FPGA是一种可编程逻辑设备,它可以通过使用硬件描述语言(HDL)进行编程,实现各种数字电路功能。FPGA由可编程逻辑单元CLB)和输入输出单元(IOB)组成,用户可以根据设计需求自由配置这些单元。 随后,书中详细介绍了FPGA的设计流程。包括设计需求分析、功能实现、时序约束设计、综合与优化、布局布线等步骤。通过这些步骤,可以将用户的设计转化为适合FPGA实现的硬件电路。 同时,书中还提供了大量的实践案例。这些案例涵盖了FPGA在通信、图像处理、数字信号处理等领域的应用。通过实践案例,读者可以了解到如何使用Xilinx FPGA开发板进行硬件设计和验证,掌握FPGA设计的基本方法和技巧。 此外,书中还介绍了常用的FPGA开发工具。Xilinx FPGA系列产品使用Vivado作为开发工具,读者可以学习如何使用Vivado进行FPGA设计、仿真和调试。同时,书中还详细介绍了如何进行IP核的设计和使用,加速FPGA设计流程。 总体而言,xilinx fpga原理与实践pdf是一本全面介绍了FPGA基本原理和实践的书籍。通过阅读本书,读者可以深入了解FPGA的工作原理、设计流程和开发工具,为进行FPGA硬件设计和应用开发提供了很好的参考和指导。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

摆渡沧桑

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

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

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

打赏作者

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

抵扣说明:

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

余额充值