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
    +关注

    关注

    8

    文章

    1367

    浏览量

    114518
  • 输出数据
    +关注

    关注

    0

    文章

    4

    浏览量

    6125

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

    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

    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

    一文看懂ARMRAM和SDRAM有什么区别

    本文主要介绍的是ARMRAM和SDRAM有什么区别,首先介绍RAM的类别及特点,其次对SDRAM做了详细阐述,最后
    发表于 04-27 16:20 3.4w次阅读

    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.3w次阅读
    Xilinx FPGA的三种片上存储<b class='flag-5'>资源</b>

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

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

    FPGA的RAM存储资源详细资料说明

    本文档的主要内容详细介绍的是FPGA的RAM存储资源详细资料说明包括了:1、 FPGA存储资源简介,2、 不同厂家的 Block RAM
    发表于 12-09 15:31 10次下载
    FPGA的<b class='flag-5'>RAM</b>存储<b class='flag-5'>资源</b>详细资料说明

    使用FPGA调用RAM资源的详细说明

    RAM),其中BRAM是block ram,是存在FPGA中的大容量的RAM,DRAM是FPGA中有LUT(look-up table 查找表)组成的。当使用的容量较小会综合成DRA
    发表于 12-30 16:27 9次下载

    LUT是什么构成的?FPGALUT有什么作用?

    首先开门见山的回答这个问题——LUT的作用是 **实现所有的逻辑函数** ,也就是类似于计算Y=A&B+C+D之类的算式结果!
    的头像 发表于 06-28 10:56 3171次阅读
    <b class='flag-5'>LUT</b>是什么构成的?FPGA<b class='flag-5'>里</b>的<b class='flag-5'>LUT</b>有什么作用?