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

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

3天内不再提示

单口、双口、简单双口、真双口RAM的区别

FPGA之家 来源:FPGA探索者 作者:FPGA探索者 2022-07-03 09:56 次阅读

单口 RAM(Single RAM)、双口 RAM(Dual RAM)、简单双口 RAM(Simple-Dual RAM)、真双口 RAM(True-Dual RAM)有什么不同?

【华为2021秋招】FPGA逻辑笔试解析【独家】【数字IC】【FPGA逻辑】【2021届秋招】中的第 2 题,答案正确,解析有误。

对于 分布式 RAM,支持简单双口 RAM 和双口 RAM,不能配置成真双口 RAM。

问题在于:Xilinx 给出的 DRAM(分布式 RAM)支持双口,我把双口认为包含真双口了,不对。

344c9032-fa6f-11ec-ba43-dac502259ad0.png

先总结一下,如有不对,欢迎私信联系批评指正。

3465bf58-fa6f-11ec-ba43-dac502259ad0.png

对于 BRAM(Block RAM,块 RAM)

在 BRAM Controller 控制器下,支持单口 RAM、真双口 RAM、单口 ROM 和双口 ROM;

在不使用 AXI 的控制器情况下,支持单口 RAM、简单双口 RAM、真双口 RAM,单口 ROM 和双口 ROM。

347843da-fa6f-11ec-ba43-dac502259ad0.png

单口RAM:

1 个时钟,1 个读写地址(要么读用,要么写用),可以读也可以写,但是不能同时读写;

348a438c-fa6f-11ec-ba43-dac502259ad0.png

简单双口 RAM:

2 个端口,有相互独立的时钟,一个口专门负责写,一个口专门负责读;

34991772-fa6f-11ec-ba43-dac502259ad0.png

真双口 RAM:

和简单双口的区别:

简单双口是一个口专门读,一个口专门写;

真双口是 2 个口都可以读写;

真双口可以看成是 2 个单口拼起来的,且 2 个单口共享存储器。

34a97586-fa6f-11ec-ba43-dac502259ad0.png

单口 ROM 和 双口 ROM

双口 ROM 可以看成是 2 个单口拼起来的,且 2 个单口共享存储区。

34bcd892-fa6f-11ec-ba43-dac502259ad0.png

对于 DRAM(Distribute RAM,分布式 RAM)

34d7c71a-fa6f-11ec-ba43-dac502259ad0.png

ROM

给地址,出对应地址的数据,没有时钟

34e9b006-fa6f-11ec-ba43-dac502259ad0.png

RAM:支持单口、简单双口、双口。

(注意!这里的双口和真双口不同,DRAM 不支持真双口 RAM)

3504b28e-fa6f-11ec-ba43-dac502259ad0.png

单口 RAM:读写共用地址 a[5:0],写数据时 we 拉高,不能同时读写;

简单双口 RAM:1 个读地址,1 个写地址,1 个输入,1 个输出;

双口 RAM:1 个通道共享读写(等同于单口),1 个通道只读,2 个输出,

spo 数据对应 a 地址,dpo 数据对应 dpra 地址;

a[5:0],读写共用的地址,当 we = 1 时表示写地址,将 d[15:0] 写入 RAM,当 we = 0 时,将 a[5:0] 地址的数据从 spo[15:0] 上输出;

dpra[5:0] 只用于读的地址,读出 dpra[5:0] 上的数据,从 dpo[15:0] 输出。

当进行读取时,简单双口一次读取 1 个数据,双口可以同时读取出 2 个数据。

四口 RAM:1 个通道共享读写,3 个通道只读;

单口:

WE = 1 写入,使用的实际上是 WA[6:1] 地址,写入发生在时钟的上升沿,时序逻辑;

WE = 0 读出,使用的是 A[6:1] 地址,地址线上有地址,数据立刻读出,组合逻辑输出;

单口情况下,A 和 WA 连在一起,共享读写地址线;

3512d170-fa6f-11ec-ba43-dac502259ad0.png

双端口:

•一个用于同步写入和异步读取的端口

第一个函数发生器与共享读写端口地址相连

•一个用于异步读取的端口

第二函数发生器具有连接到第二个读端口地址的A输入,并且 WA 输入与第一读/写端口地址共享

353ed8ba-fa6f-11ec-ba43-dac502259ad0.png

如下图所示为双口 DRAM 的读写仿真

(1)在 WE = 0 时,两个口均为读出口,A 口的地址线 ADDR[3:0] 的地址为 0,在 SPO[7:0] 上读出数据 17,B 口的地址线 DPRA[3:0] 为 0,在 DPO[7:0] 上读出数据 17;

(2)在 WE = 1 时,A 口为写入口,B 口是只读口,此时仍为读出口,A 口向地址 0 写入数据 D[7:0] = 34,B 口仍为读,读出 0 地址的数据 34;

3551aad0-fa6f-11ec-ba43-dac502259ad0.png

简单双端口

•一个用于同步写入的端口(没有来自写入端口的数据输出/读取端口)

•一个用于异步读取的端口

357002f0-fa6f-11ec-ba43-dac502259ad0.png

35809912-fa6f-11ec-ba43-dac502259ad0.png

参考:

[1] Xilinx ug474_7Series_CLB

[2] Xilinx pg063-dist-mem-gen

[3] Xilinx pg058-blk-mem-gen

原文标题:Xilinx的分布式RAM和块RAM——单口、双口、简单双口、真双口的区别

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

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

    关注

    1629

    文章

    21742

    浏览量

    603534
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1368

    浏览量

    114715
  • Xilinx
    +关注

    关注

    71

    文章

    2167

    浏览量

    121466

原文标题:Xilinx的分布式RAM和块RAM——单口、双口、简单双口、真双口的区别

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    利用FPGA实现RAM的设计及应用

    利用FPGA实现RAM的设计及应用 概述:为了在高速采集时不丢失数据,在数据采集系统和
    发表于 04-16 14:08 1.2w次阅读
    利用FPGA实现<b class='flag-5'>双</b><b class='flag-5'>口</b><b class='flag-5'>RAM</b>的设计及应用

    RAM分为简单RAMRAM

    RAM给设计带来很多便利。在高速存储中,需要对连续的数据同时处理,使用简单
    的头像 发表于 06-29 08:54 3.4w次阅读
    <b class='flag-5'>RAM</b>分为<b class='flag-5'>简单</b><b class='flag-5'>双</b><b class='flag-5'>口</b><b class='flag-5'>RAM</b>和<b class='flag-5'>真</b><b class='flag-5'>双</b><b class='flag-5'>口</b><b class='flag-5'>RAM</b>

    求助,RAM选型!

    我想选一片RAM,是32KX8,5V供电的,我首先选择了IDT7007但是发现没有工业级的,军用级价格很贵但是采购有很麻烦,请求大家推荐一块
    发表于 09-20 10:30

    基于CPLD的RAM设计

    求教大牛关于CPLD的RAM设计程序!
    发表于 10-22 16:18

    什么是RAM? 基于FPGA的RAM有哪些应用?

    什么是RAM?基于FPGA的RAM有哪些应用?
    发表于 05-06 07:41

    基于RAMCPU并行通信的研究与实现

    本文从现代通信系统的要求出发,详细研究了利用RAM 来实现CPU 之间高速的并行数据通信,指出了设计中需要解决的几个关键问题并给出了相应的解决方法。关键字:
    发表于 08-26 11:56 40次下载

    基于FPGA的RAM实现及应用

      为了在高速采集时不丢失数据,在数据采集系统和CPU之间设置一个数据暂存区。介绍RAM的存储原理及其在数字系统中的应用。采用FPGA技术构造
    发表于 02-11 11:20 69次下载

    网络测试

    网络测试 一、实验目的1. 加深理解网络的基本理论。2. 掌握直流网络传输参数的测
    发表于 09-24 09:46 1.5w次阅读
    <b class='flag-5'>双</b><b class='flag-5'>口</b>网络测试

    基于RAM的ARM与DSP通信接口设计

    基于RAM的ARM与DSP通信接口设计
    发表于 10-19 14:14 7次下载
    基于<b class='flag-5'>双</b><b class='flag-5'>口</b><b class='flag-5'>RAM</b>的ARM与DSP通信接口设计

    RAM的ARM与DSP通信接口设计

    RAM的ARM与DSP通信接口设计
    发表于 10-20 16:21 20次下载
    <b class='flag-5'>双</b><b class='flag-5'>口</b><b class='flag-5'>RAM</b>的ARM与DSP通信接口设计

    RAM概述及Vivado RAM IP核应用

    RAM概述 RAM(dual port RAM
    发表于 03-21 13:34 1.3w次阅读

    Xilinx中RAM的单简单有什么不同?

    单口 RAM(Single RAM)、 RAM(Dual
    的头像 发表于 05-03 09:47 7838次阅读
    Xilinx中<b class='flag-5'>RAM</b>的单<b class='flag-5'>双</b><b class='flag-5'>口</b>、<b class='flag-5'>简单</b><b class='flag-5'>双</b><b class='flag-5'>口</b>和<b class='flag-5'>真</b><b class='flag-5'>双</b><b class='flag-5'>口</b>有什么不同?

    RAM——单口简单区别

    在 WE = 0 时,两个均为读出口,A 的地址线 ADDR[3:0] 的地址为 0,在 SPO[7:0] 上读出数据 17,B 的地址线 DPRA[3:0] 为 0,在 DPO[7:0] 上读出数据 17;
    发表于 07-26 09:26 1w次阅读

    Xilinx分布式RAM和块RAM单口简单区别

    单口 RAM(Single RAM)、 RAM(Dual
    发表于 06-25 17:47 3194次阅读
    Xilinx分布式<b class='flag-5'>RAM</b>和块<b class='flag-5'>RAM</b>—<b class='flag-5'>单口</b>、<b class='flag-5'>双</b><b class='flag-5'>口</b>、<b class='flag-5'>简单</b><b class='flag-5'>双</b><b class='flag-5'>口</b>、<b class='flag-5'>真</b><b class='flag-5'>双</b><b class='flag-5'>口</b>的<b class='flag-5'>区别</b>

    fpgaram的使用

    FPGARAM的使用主要涉及配置和使用端口RAM模块。端口
    的头像 发表于 03-15 13:58 1011次阅读