IC设计知识点:高扇出的危害、RAM相关

电子说

1.3w人已加入

描述

    IC前后端:高扇出的危害

1、什么是高扇出?

高扇出指的是一个逻辑单元驱动的逻辑单元过多。常见于寄存器驱动过多的组合逻辑单元。至于驱动多少逻辑单元算过多,需要根据工艺,后端实现情况以及芯片本身类型来决定。

一般来说如果驱动逻辑大于10K以上,算是比较多的了。

2、高扇出有哪些危害?

危害1:驱动能力下降,时序紧张

扇出过高也就是也就意味了负载电容过大,电路原理基础告诉咱们,负载电容越大,充放电速度越慢,电平跳变所需要的时间增加,即驱动能力下降,时序更加紧张。面对高扇出的情况,后端工具通常会通过插入buffer增加驱动能力,然后插入buff又会增加延时,造成时序紧张。

危害2:不利于布局布线,会增加走线延时

高扇出的情况通常意味着负载end_point分布在block的各个位置。而驱动的start_point需要放置在相对应的中心位置,这就意味到start_point到end_points的走线延时较大,一旦时序紧张,后端工具需要花费很多时间去优化,玩玩结果还不理想。

如下图所示:黑色点为end_point

ECC

A图所示,扇出高并且end_point很分散,在高扇出情况中很常见,后端工具实现花费时间长,并且很难优化,走线延时比较大,时序比较紧张。

B图所示:扇出不高但是end_point很分散,后端工具实现花费时间教长,优化有难度,走线延时比较大,时序比较紧张。

C图所示, 扇出不高并且end_point集中,是理想情况,后端工具实现简单,走线延时比较小。

    IC设计RAM相关:RAM读写冲突返回值

1、RAM读写冲突返回值

在使用底层RAM IP的时候,以1R1W的ram为例,我们需要考虑 某个地址同时发生读写操作的时候(俗称读写冲突),RAM IP输出的data_out是什么值,不同的厂家IP会不一样,同一个厂家的不同ram也有可能不一样。例如:发生读写冲突时,有些ram会输出老值,有些ram会输出新值,有些ram输出不确定的值

2、从设计角度考虑RAM读写冲突返回值

从严谨的设计角度看,应该从方案设计角度避免此问题。在verilog实现中,ram就不允许发生同时读写同一个地址的情况,采用外部逻辑进行读写冲突保护。原因如下:

不同ram IP在读写冲突时,读写冲突返回值不一样,容易出错。

不同项目使用的工艺不一样,从而导致ram ip读写冲突返回值不一致,不利于代码复用。

    IC设计RAM相关:ECC校验原理基础

1、ECC校验基础

Ram的ECC校验通常基于海明码编码原理实现,使用海明码编码需要额外的bit位存储校验位,ECC校验仅能纠正1bit的,无法纠正2bit以及以上数据错误,能发现部分多bit位错误的情况。

2、RAM ECC校验实现原理

如图所示为1r1w的ram为例,cfg_32x119_ram_wrapper为verilog代码直接调用层次的ram_wrapper,表示了一个深度为32,数据位宽为119bit的ram。ram_asic.v为真实的ram IP。其中119bit的数据位宽紧张ECC计算需要7bit的校验位,因此物理IP最少需要126bit的ram IP。通常memory产生工具会更具时钟频率,深度位宽等因素对ram进行切分,因此本例中,使用了2个32x64的ram ip。

在data_in写入ram_asic模块之前,会经过ecc_gen模块,产生7bit的ecc校验位,随着数据一同写入ram_asic,其中data_in[63:0]写入第一个ram_asic,{2’b0,ecc_in[6:0],data_in[118:64]}写入第二个ram_asic。从ram_asic读出的数据会经过ecc_out模块经过ecc校验,输出校验后的data_out[118:0]和2bit的ecc_err_out告警。

ECC

    审核编辑:汤梓红

 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分