电子产业一站式赋能平台

PCB联盟网

搜索
查看: 13|回复: 0
收起左侧

【芯片设计】sram wrapper的封装思路

[复制链接]
匿名  发表于 6 天前 |阅读模式
项目交付总结输出继续,这一篇跟上篇相似都是遇到了一些问题后的回忆款。不过说实话我也不是很确定记忆有没有误差毕竟时间太长,所以当作一个参考思路就好了。
那么这次遭遇的是什么问题呢?芯片尤其智能驾驶芯片不是越来越重视功能安全的问题了嘛,所以就必然会涉及到数据的校验,其中ECC校验就是很常见的检错纠错方法,尤其对于数据通路如SRAM这类单元的数据保护。所以在项目推进的过程中,抽空就回想了一下之前比较成熟的设计方案是怎么弄的。
很多时候通过工具生成的sram是不会直接使用,而是要裹上若干层wrapper之后才会在RTL中例化。具体的wrapper层数和每层的行为记得没那么准,但大体上是能对上的。生成的sram拿过来之后,最先封装的就是其对应的校验逻辑,包括输入侧的ecc encoding和输出侧的decoding,decoding时会对原始数据进行纠错。最终输出为纠错逻辑后的读数据和1bit/2bit err上报信息。在出口时根据时序压力可以选择是否对数据进行打拍,印象中ecc后通常会打一拍。

在sram_wrap1的基础上会继续封装wrapper2拼接层,这里有些忘了,是单独做一层还是直接和wrapper1合在一起,故这层wrapper不是一定会出现的。有sram生成经验的小伙伴都清楚,工艺和制造商不是什么要求都满足的,因此给定一个深度和宽度后工具很有可能告诉你没有满足的sram可以使用(在另一篇《【芯片设计】sram的一次选型与优化经历》里再聊这个)。这个时候怎么办呢,无非是拼深度、拼宽度更有甚至通过spram去拼dpram。有深度和宽度的拼接那就必然会引入选择和数据组合的逻辑,加之我们尽可能希望外部使用时不去感知内部真实sram的组织结构,所以这一层也可以单独封装为sram_wrap2。不过还是要强调下,不确定这层是一定存在的,甚至这个拼接是在ecc里还是外也有些印象模糊,那姑且就按当前的思路来吧。这一级也是一样,根据时序情况可以在出口增加寄存器打拍。

第三级wrapper也是可选的,即RTL可以直接拿sram_wrap2去用也可以选择sram_wrap3,这一级主要是bypass逻辑或者叫hazard处理。结构图简化就是下面这样:

这一层wrapper是要处理什么事呢,在另一篇有关断言的文章里最后一题描述的就是这个场景,直接截图下:



sram_wrap3实现的就是这个读回过程中有同地址的写则将最新写入的数据直接读出的功能,当然了数据顺序和时序是需要满足的啊,规定好的3拍回数据拿还是得在第3拍回不能早也不能超车。到wrapper3这层就已经满足RTL里所有的功能需求了,那么是不是还需要wrapper4呢?是可以有的,不过这就是fifo或者类似场景下的定向需求了。这个需求点在哪里呢,如果我们的fifo很大很深的话用寄存器搭建会导致很大的面积以及功耗开销,因此可以替换为sram作为存储单元。可是以sram为存储单元,以目前封装wrapper的情况看,发起读请求后需要3到4拍数据才能返回,这显然会导致性能下降以及潜在的功能问题。
根据fifo取数的特点(顺序读写),通常我们都会采用预取的策略,即在已经知道下一个要读取的数据地址前提下,提前把数据从sram读到寄存器中,这样当需要读取时当拍即可把预读的数据给下游使用。当然实际场景里会更复杂些,比如预取区有空位为sram为空,则数据直接进入预取区不经过sram。但总之就是这样的一套逻辑,之前在实现基于sram的同步fifo时也参考了该方案。

以上这些内容就是在记忆中对sram使用前的封装处理,最后将他们汇总到一张图中。


系列文章入口——
【芯片设计】SoC 101(一):绪论
【芯片设计】FIFO漫谈(零)从无处不在的FIFO开始说起
【芯片设计】计算机体系结构(一)虚拟内存
【芯片设计】深入理解AMBA总线(零)绪论
【芯片设计】握手协议的介绍与时序说明
【芯片设计】复位那些小事 —— 复位消抖
【芯片设计】快速入门数字芯片设计(一)Introduction
【芯片验证】UVM源码计划(零)下定决心读源码前的自测环节
【芯片设计】异步电路碎碎念(一) 到底什么是异步电路
【芯片设计】从RTL到GDS(一):Introduction
其他文章链接——
【芯片验证】sva_assertion: 15道助力飞升的断言练习
【芯片验证】可能是RTL定向验证的巅峰之作
【芯片验证】RTL仿真中X态行为的传播 —— 从xprop说起
【芯片验证】年轻人的第一个systemVerilog验证环境全工程与解析
【芯片设计】verilog中有符号数和无符号数的本质探究
【芯片设计】论RTL中always语法的消失术
【芯片设计】代码即注释,注释即代码
【芯片设计】700行代码的risc处理器你确实不能要求太多了
入职芯片开发部门后,每天摸鱼之外的时间我们要做些什么呢
如何计算系统的outstanding 和 burst length?
芯片搬砖日常·逼死强迫症的关键词不对齐事件
熟人社会里,一群没有社会价值的局外人

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表