0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

介绍SLICEM里的LUT如何形成RAM资源

电子工程师 来源:未知 作者:李倩 2018-10-30 10:28 次阅读

初识FPGA CLB之LUT实现RAM

一. 概述

在文章《初识FPGA CLB之LUT实现逻辑函数》里面我们讲过了LUT的原理,实现逻辑函数时,相当于一个ROM将结果预存,然后把通过输入信号当作地址对预存的结果进行寻址。因此同样借助LUT加几个端口,就可以实现RAM。SLICEM里面的LUT就可以用来实现RAM资源。

二. 原理介绍

SLICEM里面的LUT跟SLICEL里面的LUT相比多了DI2,WA[6:1],CLK,WE这几个端口。做RAM用的时候,其中DI1,DI2是写数据输入端口,O5,O6同样是数据输出端口,支持一次性两bit或者单bit读写。A[6:1]为读地址,WA[6:1]为写地址,WE为写使用,CLK为时钟端口。

从这可以看出,一个LUT具有2^6=64bit的存储空间。

故一个LUT可以作为64x1bits的RAM(内存大小为64bit,1bit读写),地址为6位。当读写地址共用一个端口时为单端口RAM,不共用时则为双端口RAM(SLICEM里面第一个LUT的WA与A是连在一起的,故第一个LUT做不了双端口RAM)。输出数据可以经过SLICEM里面的Register资源打一拍以提高时序特性(在工具里面可以自己设置)。

或者作为32x2bits的RAM(2bit读写),地址为5位,A[6]拉高。输出为O5,O6。

三. 扩展与提升

一个SLICEM里面有4个LUT,他们可以组合得到多种大小的RAM。首先就是四端口的32x2bits的RAM,支持一次性读写2bits,原理如下图。四个LUT的写数据端口DI1,DI2,写使能WE,写地址WA共用,称为写控制信号共用。读地址A分别控制。

如下图,4个LUT构成32x6bits的RAM,支持6bits读写操作。当读写共用一个地址时,就是单端口RAM,当读写不共用地址时就是双端口RAM。可以看到第一个LUT其实没用到,是因为第一个LUT的A与WA是连到一起的不能改变,所以做不了双端口。其实现原理就是3个LUT的并行2bit读写。

当然大家自己开动脑筋想一下也就知道了还可以组成其它什么类型的RAM,这里我们再举个例子就是借助选择器实现128x1bits的RAM。

同样借助选择器在一个SLICEM里面还可以构成256x1bit的RAM,这里就不赘述,大家可以自行思考。总之在一个SLICEM里面可以实现的RAM有如下表中的几种。

多个SLICEM资源配合就可以构成更多内存大小种类的RAM。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RAM
    RAM
    +关注

    关注

    7

    文章

    1321

    浏览量

    113705
  • 输出数据
    +关注

    关注

    0

    文章

    4

    浏览量

    6112

原文标题:初识FPGA CLB之LUT实现RAM

文章出处:【微信号:LF-FPGA,微信公众号:小鱼FPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA重要资源CLB、Slice、LUT介绍

    CLB可配置逻辑块是指实现各种逻辑功能的电路,是xilinx基本逻辑单元。下图给出了一个 SLICEM 的内部结构。
    发表于 10-08 09:43 6459次阅读

    初识FPGA CLB之LUT实现逻辑函数

    LUT中文名字叫查找表。以7系列的FPGA为例,每一个Slice里面有四个LUT。FPGA就是通过LUT实现大量的组合逻辑,以及SLICEM里面的L
    的头像 发表于 03-13 10:28 2140次阅读

    FPGA—LUT结构介绍

    下面给大家介绍FPGA LUT的结构
    发表于 07-09 04:57

    Virtex-6 FPGA上的可重配置LUT无法打包

    用于Virtex 6设计的可重配置LUT(CFGLUT)可能被封装到FPGA的输出逻辑OLOGICE1而不是SLICEM上的LUT。我的设计涉及使用存在于与CFGLUT相同的片中的FF(用于流水线
    发表于 10-22 11:04

    寄存器中的RAM合成而不是LUT

    大家好,我无法合成LUT RAM(16深48位宽),而RAM则由寄存器构建。经过实验,我发现我可以通过注释掉一些代码来获得LUT RAM综合
    发表于 02-15 11:42

    LUT和Kintex 7 FPGA芯片中的FF所需的资源

    你好。我正在写一篇技术论文和需要知道LUT和Kintex 7 FPGA芯片中的FF所需的资源资源可以是晶体管数量,栅极数,芯片面积大小等等。我在一个网站上听说LUT需要2.5倍的“F
    发表于 02-27 13:49

    SLICEM和SLICEL的输出差异怎么回事

    嗨, 我想知道sliceM的输出。在一个地方,我已经读过它的同步写和异步读,而在其他地方,sliceM已经注册了输出。我知道在写DRAM(sliceM)时会进行同步操作。我想知道在读取时是否异步
    发表于 06-15 10:35

    如何读出LUTRAM的上电值?

    ”,在初始化期间,器件会在上电后强制清除配置存储器。这意味着如果我们不初始化LUT RAMduring配置,所有内存内容都将归零,因此我们感兴趣的信息(SRAM的上电状态)将丢失。那么,有没有办法绕过这样的“清除配置内存”步骤?是否可以保持LUT
    发表于 06-18 09:26

    在FPGA设计中如何用LUT组建分布式的RAM

    一、查找表LUT就是查找表,对于4输入的LUT而言,实际上就是4位地址位,一位数据位的存储器,能够存储16位数据,所以我们在FPGA设计中可以用LUT组建分布式的RAM。这样也可以解释
    发表于 07-28 08:42

    与FPGA CLB相关的第一节LUT

    LUT:(look up table) 查找表今天我要讲的与FPGA CLB相关的第一节LUT。根据上一节课的课程大纲,讲CLB应该是讲SLICEL(SLICEM)。不过当我打开用户手册,看了一下
    发表于 07-29 08:13

    【中科亿海微EQ6HL45开发平台试用体验】Tiny RISC-V 在中科亿海微EQ6HL45 FPGA 平台移植实践(2)-RAM IP的使用

    Tiny RISC-V移植中的问题前面提到tiny Risc-V里面的ROM/RAM是用LUT构成的,好处是代码在不同的平台可以通用,不好的地方是消耗过多的LUT资源不适合小容量FPG
    发表于 08-02 20:07

    FPGA内部可编程逻辑资源的结构,CLB资源介绍

    第二种Slice叫SLICEM,电路结构如下。除了LUTS与SLICEL的LUTS不同之外,其余结构都一样。这就是SLICEM与SLICEL之间的区别,利用SLICEM的LUTS还可以构成RA
    的头像 发表于 10-18 17:04 1.1w次阅读

    Xilinx FPGA的三种片上存储资源

    Xilinx FPGA有三种可以用来做片上存储(RAM,ROM等等)的资源,第一个就是Flip Flop;第二种就是SLICEM里面LUT;第三种就是Block RAMs
    发表于 12-16 11:31 1.2w次阅读
    Xilinx FPGA的三种片上存储<b class='flag-5'>资源</b>

    对于Xilinx FPGA的片上存储资源的统计介绍

    Xilinx FPGA有三种可以用来做片上存储(RAM,ROM等等)的资源,第一个就是Flip Flop;第二种就是SLICEM里面LUT;第三种就是Block RAMs
    发表于 09-15 12:21 4881次阅读
    对于Xilinx FPGA的片上存储<b class='flag-5'>资源</b>的统计<b class='flag-5'>介绍</b>

    FPGA中的LUT有什么作用

    xilinx的LUT是**4输入1输出的** **RAM** ,也就是4根地址线的,一根数据线的RAM,并且I1是高地址位,I4是低地址位,样子参考下图。I1到I4就是地址线,O是输出数据线。
    的头像 发表于 03-21 14:06 1093次阅读
    FPGA中的<b class='flag-5'>LUT</b>有什么作用