IC设计:常见的ram访问冲突

ram冲突是几乎每颗芯片都需要关注的问题,部分场景下,ram访问冲突不容易验证到,容易造成芯片bug。ram访问冲突的类型通常有访问接口冲突和访问地址冲突。
术语解释:1r1w ram表示ram存在一个写口和一个读口,一共2个端口。1rw ram表示ram只有一个端口,此端口能写能读,同一个周期不能同时读写。1r1rw ram表示存在2个端口,其中一个端口只支持读操作,另外一个端口支持写操作和读操作(不能同时读写)。下文中的logic访问指的由硬件逻辑发起的访问。csr表示可配置模块, 其对应的soft_access通常是由软件发起的对ram的访问,可能是读操作,也可能是写操作。
1、访问接口冲突
接口冲突,即多个访问请求同时访问一个ram的端口,例下图所示,logic 访问和soft访问同时竞争同一个端口。case1所示为1rw ram(只有一个端口,能读能写),逻辑读和逻辑写同时竞争一个端口。case2所示ram(可以是多个端口的ram),逻辑访问(读or写)和软件(写or读)访问同时竞争一个端口。
危害:接口冲突类型中,如果某一个访问存在高优先级,那么低优先级访问可能一直无法响应。轻则导致访问失败,重则模块挂死。
解决方案:高优先级访问接口需要控制连续访问次数,必须在一定时间内插入空拍。
2、访问地址冲突
我们以1r1w的ram和1r1rw的ram为例进行讲解。如图所示:访问地址冲突,指的是读操作和写操作同时访问且地址相同。注意:此处的同时并不一定是同一个周期,同时指的是从ram读接口收到读操作直到返回读数据的若干个周期内(一般是1~3周期)。例如t0 clk,ram收到对addr(0x10)的读操作,t1 clk,读数据还未返回,此时ram收到对addr(0x10)的写操作,这种也算读写地址冲突。
危害:发送读写地址冲突时,读返回的数据可能不符合期望,读返回的可能是不确定值,可能是新值(写操作写入的值),也可能是旧值(不同厂家不同类型的ram响应因为不一样),部分厂家支持ram定制返回新值或者旧值,部分厂家ram返回的就是不确定值。读到不确定值明显会影响模块功能。
解决方案:在ram访问接口添加保护模块。
如果读返回需要新值,则在发送地址冲突时,将写操作的写数据转移给读返回。
如果读返回需要旧值,(比较少见)
定制读返回旧值的ram
添加冲突保护模块,发生地址冲突时,对写操作进行反压,此方案需要应用场景允许


一款简易调频话筒
led贴膜屏在未来的发展趋势分析
超酷奔驰2030概念车设计
为什么要用电池管理系统?开发电池管理解决方案时注意事项
聊天机器人已经在Twitter上超过了人类
IC设计:常见的ram访问冲突
分频器介绍_分频器工作原理解析
酷睿i9-9980XE跑分曝光 一万六买个新的18核心效果到底如何
树莓派的PWM模式介绍
华为正式发布了MatePad Pro和MateBook D笔记本电脑等多款产品
如何在PCB Layout的不同阶段使用EMC分析来检查项目
8位Laser Bee MCU EFM8LB12F32实现便携式呼吸机系统
人脸识别技术大火,深度学习做支撑
罗德与施瓦茨ZNB20矢量网络分析仪维修
2017最便宜的智能手机多少钱?杀价无下限 吓我一大跳
讯维远程会议中心案例分享
全球动力电池行业现状如何?谁将获得主导权?
长安汽车朱华荣:建议出台积极政策推动汽车芯片国产化
河南电信与华为签订了战略合作协议将共同推进5G+物流发展
牙医专业推荐水牙线,除了洁碧还有它