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

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

3天内不再提示

Xilinx RAM地址冲突

FPGA开发之路 来源:FPGA开发之路 2023-01-15 16:15 次阅读

Address collision 指的是RAM的两个port同时访问相同的地址可能导致数据发生错误的情况。在Xilinx中,不同的RAM,不同的RAM配置会导致address collision时不同的数据结果。

Distributed RAM

对于DRAM,写数据是 synchronous write,需要一个时钟周期, 读数据是 asynchronous read,当前时钟周期就能读出数据。因此当在某一个cycle读写同时访问同一地址时,读数据是 old data,即该地址原存放的数据而不是新要写入的数据。

Block RAM

BRAM的读写都是 synchronous。BRAM的两个Port分别为 PortA 和 PortB。

我们可以将 BRAM address collision 分为以下三类。

PortA 和 PortB 同时读数据

两个Port都会正确读出该地址中的数据。

PortA 和 PortB 同时写入数据

该地址最终被写入的数据是 non-deterministic。因此设计中要避免两个port同时写数据的address collision。

PortA 写数据同时 PortB 读数据,或者是 PortA 读数据同时 PortB 写数据

在这种情况下,数据总是会被正确写入到RAM中,但是读出的数据内容则依赖于BRAM的配置。BRAM的write mode可以配置为三种模式,write first,read first 和 no change。

下图为不同配置下的数据读写结果。可以看到当 write port 配置为 READ_FIRST时,不管 read port 如何配置,都会读出 old data。而当 write port 配置为 WRITE_FIRST 或 NO_CHANGE时,不管 read port 如何配置,读数据都是 X,即 undeterministic。因此在可能发生address collision 的BRAM,一般将两个 port都配置为 READ_FIRST,以确保数据读出的正确。

be7c4db8-94a4-11ed-bfe3-dac502259ad0.png

Ultra RAM

URAM的读写也都是 synchronous。URAM比较有意思的一点是,PortA 总是先于 PortB 执行操作,因此在 address collision 我们会看到不同于BRAM的结果。

PortA写,PortB读。PortB 会读出new data。(因为PortA先执行,所以在PortB读执行时,new data已经写入RAM中了)

PortA读,PortB写。PortA 会读出old data。(同样的,这也是因为PortA先执行)

PortA写,PortB写。最终该地址写入的值是PortB的值。(PortB因为后执行会覆盖PortA写的值)

beafa7ee-94a4-11ed-bfe3-dac502259ad0.png

Reference

《UltraScale Architecture Configurable Logic Block》

《UltraScale Architecture Memory Resources》

审核编辑 :李倩

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

    关注

    8

    文章

    7014

    浏览量

    88982
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1368

    浏览量

    114659
  • Xilinx
    +关注

    关注

    71

    文章

    2167

    浏览量

    121353

原文标题:Xilinx RAM Address Collision

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

收藏 人收藏

    评论

    相关推荐

    什么原因会导致IP地址冲突

    IP地址冲突是运维常见的问题,很多人并不知道是什么原因会产生IP地址冲突故障,也不知道怎么样去解决这种问题。 要想去解决这类问题,需要了解IP地址
    的头像 发表于 12-01 23:00 142次阅读

    一般ram芯片上的引脚有哪些

    引脚 : VCC:工作电源正电压输入,通常为+5V或+3.3V,具体取决于芯片类型和规格。 GND:地引脚,提供电源负极,确保电流回路。 地址引脚(A0~An) : 这些引脚用于输入地址信号,指定RAM中将要访问的存储单元的位置
    的头像 发表于 09-18 11:07 1360次阅读

    工业设备IP地址冲突如何通过NAT网关解决

    已经陷入枯竭,IP地址重复便有可能导致数据送错,通信网络便会出现故障,无论是广域网还是局域网都有可能面对到IP冲突的问题。 对此,物通博联提供基于NAT网关的解决方案。网关可以通过WAN和LAN多个接口形成不同防火墙区域,从而对设备进行网段隔离;通过NAT和IP映射实
    的头像 发表于 08-07 15:21 326次阅读
    工业设备IP<b class='flag-5'>地址</b><b class='flag-5'>冲突</b>如何通过NAT网关解决

    IP地址冲突解决方法图示

    你是否在日常使用网络时,有这样的经历:突然就失去网络连接,时断时续,加载缓慢,文件传输突然中断?网络连接并没有完全断开,但网速变得异常缓慢看电视剧卡顿、下载文件简直龟速?那么你可能是IP地址冲突
    的头像 发表于 07-26 11:51 437次阅读

    两个路由器ip地址冲突怎么解决

    当两个路由器的IP地址发生冲突时,会导致网络连接不稳定或无法连接。以下是解决两个路由器IP地址冲突的步骤: 确定冲突的IP
    的头像 发表于 07-09 11:35 5785次阅读

    NAT网关实现工业设备网段隔离,解决IP冲突问题

    在制造业工厂中,存在大量已经提前布设好的通信网络,通过实现设备联网数据采集,可以实现设备的远程监控与远程控制,从而为高效率生产带来各种智能应用。但在新设备联网时,往往会遇见IP地址冲突
    的头像 发表于 06-20 14:11 558次阅读
    NAT网关实现工业设备网段隔离,解决IP<b class='flag-5'>冲突</b>问题

    如何解决工厂中相同IP设备冲突故障问题

    随着网络规模的不断扩大,相应的IP地址资源也越来越捉襟见肘,IP地址冲突现象与日俱增。特别是在工业场景中,很多相同设备会放在相似的网络环境进行测试后才出货,当设备部署到工厂现场中就十分容易出现IP
    的头像 发表于 06-13 17:30 489次阅读
    如何解决工厂中相同IP设备<b class='flag-5'>冲突</b>故障问题

    stm8l中断控制串口收发,提示串口地址和变量地址冲突了怎么解决?

    刚刚接触单片机,刚刚接触stm8l,想实现串口有数据时通过CC1101将数据发送,当串口没有数据时则进入接收状态。但是编译时出现,中断地址和代码中的变量地址冲突的错误无法解决。希望大神予以指点。
    发表于 04-19 06:30

    产线设备联网过程中的IP冲突(NAT转换)问题如何解决

    都是唯一而独立的,以便在网络上进行通信。然而,当两台或更多的设备被分配了相同的IP地址时,就会出现IP地址冲突的问题。这种情况可能会导致网络连接问题,甚至可能导致整个网络瘫痪。 在工厂产线设备联网中,往往会遇见IP
    的头像 发表于 04-09 17:28 566次阅读
    产线设备联网过程中的IP<b class='flag-5'>冲突</b>(NAT转换)问题如何解决

    你以为的RAM不是你以为的RAM~

    一、DTCM和AXI连接的RAMSTM32H7系列处理器内部有多个RAM空间,每个RAM空间的大小和响应速度都不一样。这里面我们重点关注DTCM总线矩阵连接的128KBRAM和AXI总线矩阵连接
    的头像 发表于 04-05 08:09 1184次阅读
    你以为的<b class='flag-5'>RAM</b>不是你以为的<b class='flag-5'>RAM</b>~

    在远程访问设备如果PLC的IP地址冲突如何解决

    要求从PLC中采集数据以达到远程监控的目的,从而实现设备、人员、物料、能源等多种生产要素的互联共通,从而及时觉察设备故障与产能缺陷,合理利用数据分析手段进行决策。但如果现场IP的IP地址冲突,那么数据采集通信便无法实现,后续
    的头像 发表于 02-20 17:26 750次阅读
    在远程访问设备如果PLC的IP<b class='flag-5'>地址</b><b class='flag-5'>冲突</b>如何解决

    局域网IP地址冲突、环路的罪魁祸首是什么?

    局域网IP地址冲突、环路的罪魁祸首是什么? 局域网IP地址冲突和环路是网络中常见的问题,它们会导致网络故障和通信中断,影响企业和个人的网络使用体验。本文将详细说明局域网IP
    的头像 发表于 02-04 11:03 4519次阅读

    什么是透明网桥?多台网桥的IP地址冲突是否会影响视频监控传输?

    什么是透明网桥?多台网桥的IP地址冲突是否会影响视频监控传输? 透明网桥是一种网络设备,用于连接两个以太网LAN,通过MAC地址过滤和转发数据帧。它能够学习和存储网络中各个节点的MAC地址
    的头像 发表于 02-03 16:41 1826次阅读

    求助,如何指定变量的RAM和ROM地址

    我使用 \" pragma 部分 far \" data 来指定 ram 地址,但我怎样才能指定它加载的 ROM 地址
    发表于 01-25 06:44

    softune如何把一个变量定义在指定RAM地址

    你好,请问如何把一个变量定义在指定RAM地址? 例如把 i 变量定义在 RAM地址 0x0200,谢谢!
    发表于 01-18 10:48