FPGA CLB介绍

一个CLB包含两个Slice,两个Slice分别位于独立的列,有各自的进位链,他们相互不连接。每个CLB连接到一个Switch matrix上已完成布线。CLB中底部的Slice为Slice0,上部的为Slice1。

Xilinx给Slice的标号为X代表列、Y代表行,从die的左下角开始排序。

每个Slice包含4个逻辑生成器(6-LUT)、4个Storage element、4个Wide-function multiplexer、1个进位逻辑。这些器件可以实现逻辑、算术运算、ROM的功能。此外,有一些Slice可以支持2种额外功能:用Distributed RAM存数、32位移位寄存器,这些有额外功能的Slice叫SliceM。其他的Slice叫SliceL。

每个CLB可以提供的逻辑资源如下。

Slice中的逻辑生成器由6-LUT实现。每个6-LUT有6个独立输入(A1~A6)、两个独立输出(O5、O6)。6-LUT可以实现任意6输入布尔逻辑,也可以实现任意两个5输入布尔逻辑,只要这两个逻辑运算有共同输入。O6是6输入布尔逻辑运算的输出,而O5、O6是5输入布尔逻辑运算的输出。一个6-LUT的延迟是与所计算的逻辑函数无关的。布尔逻辑运算的结果可以①输出Slice(O6通过A、B、C、D,O5通过AMUX、BMUX、CMUX、DMUX),②O6的输出可以进入一个专用异或门,③O5的输出可以进入进位逻辑链,④O6的输出还可以进入进位逻辑选择器的选择端,⑤进入Storage element的数据输入端口,⑥O6的输出进入F7AMUX/F7BMUX。

F7AMUX/F7BMUX、F8MUX是用来组合四个6-LUT用的,可以提供7输入布尔逻辑运算、8输入布尔逻辑运算。更多输入的布尔逻辑运算需要更多的Slice。

CLB中的Storage element可以配置为边沿触发的DFF或者锁存器。配置为DFF时,DFF的输入可以是6-LUT的输出通过AFFMUX、BFFMUX、CFFMUX、DFFMUX这4个选择器输入,或者通过AX、BX、CX、DX输入而passby掉6-LUT。配置为锁存器是,当CLK为低时,输出随输入变化(transparent)。

Storage element的控制信号有时钟(CK)、时钟使能(CE)、置位复位(SR)、取反(REV)。一个Slice中所有Storage element共用相同的控制信号,但是时钟信号的极性可以不同(通过时钟路径上的非门实现)。

Attribute SRHIGH决定了当SR assert时,输出高。而Attribute SRLOW决定了当SR assert时,输出低。同时REV assert时输出取反。Slice中的每个storage element的Attribute SRHIGH 与Attribute SRLOW都能独立设置。但是SR是同步还是异步则不能独立设置。

Attribute INT0与Attribute INT1设置了Storage element的初始值。默认情况设置Attribute SRLOW时设置了INIT0,而设置Attribute SRHIGH时设置了INIT1。但是Attribute INT0与Attribute INT1可以独立于Attribute SRLOW、Attribute SRHIGH单独设置。

SliceM中的6-LUT可以配置为Distributed RAM。

每种RAM所需的LUT数量如下,

单端口模式时,分布式RAM的同步写、异步读共用相同的端口。双端口模式时,分布式RAM的一个端口用于同步写、异步读,另一个用于异步读。对于四端口模式时,一个端口用于同步写和异步读,另三个用于异步读。

单端口模式中,读写共用相同的地址总线,双端口模式中,一个函数生成器连接共用的读写地址,另一个函数生成器的A pin连接第二个端口的只读地址总线,WA pin连接第一端口的读写地址总线。

上图是4端口32x2 bit RAM,A~C是只读端口,D是读写端口,4个函数生成器(DPRAM32)的输入DI1、DI2是输入的2bit数据。

上图是单个2端口32x6 bit RAM,用4个函数生成器实现一个双端口RAM。

上图是用1个函数生成器实现的单端口64x1 bit RAM。DI1是1bit数据输入,A是读写地址。

上图是双端口64x1 bit RAM。

同步写操作:时钟沿来到的时候,当写使能为高,数据端口的数据写入RAM中地址A处。

异步读操作:输出由A pin决定(单端口模式或者双端口模式中的SPO pin)、DPRA pin决定(双端口模式中的DPO pin)。只要地址端口变化,一定的LUT延迟后,输出就会变。

配置为只读ROM所需的函数生成器数量如下表。

SliceM、SliceL都可以配置为64x1 bit ROM、128x1 bit ROM、256x1 bit ROM。

SliceM可以配置为32位移位寄存器。

函数生成器还可以实现选择器。

Slice中的进位逻辑资源用于算术加、减法。

Xilinx Virtex-5 FPGA CLB资源学习笔记相关推荐

  1. Xilinx 7系列 FPGA CLB资源介绍

    赛灵思 7系列 FPGA CLB资源介绍 ---主要来源于官方技术手册ug474_7Series_CLB.pdf FPGA共有6大组成部分:1.可编程输入输出I/O单元:2.基本可编程逻辑单元CLB: ...

  2. 沧小海的《xilinx的A7系列芯片资源学习笔记》之第一部分:I/O BANK(三)

    目录 2.3 OSERDESE2与ISERDESE2 2.2.1 ISERDESE2 2.2.2 OSERDESE2 2.2.3 IO_FIFO 2.4 其他 2.3 OSERDESE2与ISERDE ...

  3. 特权同学的FPGA/CPLD设计学习笔记

    题记:这个笔记不是特权同学自己整理的,特权同学只是对这个笔记做了一下完善,也忘了是从那DOWNLOAD来的,首先对整理者表示感谢.这些知识点确实都很实用,这些设计思想或者也可以说是经验吧,是很值得每一 ...

  4. FPGA:zcu102学习笔记(参考自xing见博客)

    1,概述 有一个计划是打算做一个摄像头的驱动与显示. 但是实际上手上只有一个zcu102开发板,没有摄像头,也没有上位机,自己也不会写.所以就将方案阉割成将录制好的视频放在SD卡里面,然后从SD卡里面 ...

  5. 【FPGA】流水线学习笔记

    下面的内容来自:<从算法设计到硬件逻辑的实现> 所谓流水线设计实际上就是把规模较大.层次较多的组合逻辑电路分为几个级,在每一级插入寄存器组暂存中间数据.K 级的流水线就是从组合逻辑的输入到 ...

  6. 野火FPGA征途Pro学习笔记(IP核)

    分频器 偶分频器 通过always语句,对系统时钟进型分频,例如4分频:对系统时钟进行计数四次,产生一个高电平的flag信号. 在后级模块中使用时,采用 系统时钟&&flag==1 的 ...

  7. 收藏了两年的嵌入式AI资源学习笔记,今天全分享给大家(附代码/资料/视频/学习规划)...

    当前乃至未来5-10年,嵌入式开发者还有哪些风口?" 画外音:风口的本质,其实就是一段时间的人才供需不平衡.说白了就是由于行业突变,敏锐的资本快速进入,导致短时间内行业大量扩张,需要大量开发 ...

  8. Android Android应用资源 | 学习笔记

    Android应用资源 一.字符串资源 步骤 二.颜色资源 步骤 三.尺寸资源 步骤 四.数据资源 一.字符串资源 为了改善程序的可读性和维护成本,Android允许把应用中用到的各种资源:字符串资源 ...

  9. IOS安全测试(资源学习笔记)

    客户端程序安全 位置无关代码 检测客户端是有启用Position Independent Executable(PIE)编译选项,采用PIE选项编译的引用程序允许使用地址空间随机分布功能(ASLR, ...

最新文章

  1. Jmeter使用指南
  2. 挺水的一门课,发现全系都过了,就自己挂了,这是一种什么样的感觉呢?
  3. Anti-Forgery Request Recipes For ASP.NET MVC And AJAX 防伪验证,防伪请求
  4. 学完python基础后该学什么_想提一个老生常谈的问题, Python 基础学完后我应该干啥?...
  5. 织梦数据库支持mysql5.7_最新织梦DEDECMS5.7数据库说明文档
  6. goaheadlinux移植_goahead
  7. MyBatis的配置和用法
  8. jQuery使用总结 - jQuery组成和主要功能 1/4
  9. sql server 性能_如何在SQL Server中收集性能和系统信息
  10. 【jQuery笔记Part1】02-jQuery代码风格
  11. Test.ai完成1100万美元A轮融资,Google人工智能基金领投
  12. 一组这几年,美国人均寿命变化的数据
  13. openwrt reboot流程
  14. 模仿天猫商城的J2EE商城网站项目后端5——bean包
  15. Android图片添加水印图片并把图片保存到文件存储
  16. 浏览器跳不同 不同页面 php,利用js根据不同浏览器自动跳转不同页面
  17. Linux用wget和curl下载jdk
  18. 关于Android高德地图路线规划的学习
  19. 吉林大学数据库系统概念2015年期末试题自做答案
  20. matlab怎么运行步进,有没有大侠知道怎么用matlab控制步进电机

热门文章

  1. 组件数据更新页面未更新的解决方法
  2. http://cs.dartmouth.edu/~xy/blog/facel/
  3. Android设备测试应用总结
  4. 不忍了!自己来搭建一个网盘
  5. 分布式数据库系统面临的问题和挑战
  6. 5500xt挖矿算力_(视频)静态计算 RTX 3080 的以太坊挖矿回本周期 白露矿业报告 (20.09.19)...
  7. hdu-1225-Football Score
  8. 特来电最新财务数据曝光:年亏7770万,与星星充电争抢上市
  9. 刷酸记录(迪维维A酸乳膏)20190906-0908
  10. 百度地图AK鉴权说明与白名单设置方法