之前学习FPGA时,使用自己手写的读/写模块+SRAM实现过数据的读写:http://t.csdn.cn/zwmxD
而这里在芯片设计中使用SRAM需要注意的点,与使用存在本质差别。
首先说明(叠个甲),这里是课程笔记,如果觉得侵权请联系删帖。数字IC/数字电路/FPGA设计_从入门到精通
目录
-----------------------------------------------------------------------------------------------------------------------------
1.SRAM类型
---------------------------------------------------------------------------------------------------------------------------------
1.SRAM类型
sram行为:大容量存储器 几KB-几M(2KB-1/2MB),数据写入、地址线读出。
clk——同步时钟,ce——chip enable片选信号, we——write enable写使能,wbe——位写使能,addr——地址,din——写入数据,dout——读出数据
SP-SRAM——Single Random Access Memory单口随机存储器
因为随机访问,所以地址给012 或 210都行,可以连续读
时序上(Timing)分析,SRAM类似DFF(寄存器),除了CLK以外的输入信号,都有和CLK之间检查setup/hold的需求。dout在时钟的上升沿过后看到的地址数据输出,间隔delay——CLK to dout的间隔是比较大的,且memory深度越大,delay也越大。
wbe基本不影响SRAM的面积,有/无差别不大。 ce、we示例为高有效,有的也可以是低有效。
2.使用建议
原因②:SRAM一般摆在IP或芯片外围的一周或者两周,从SRAM走线到DFF(芯片外围)就比较长,Delay比较大,线长导致电容比较大,所以整个clk to dout 延迟+走线延迟 整体延迟很大,所以建议后面不接组合逻辑,先接入DFF。
而对于输入端:也是距离原因,也加入寄存器减小延迟 实在不能接DFF就尽量接一个很小的东西,如图中dout后面的三角——小的buffer缓存器。 其他原因:在做ASIC时,需要做DFT(design for test),会在SRAM周围包一层memory bist(memory built in self-test),bist逻辑会和本身的逻辑做MUX,也会产生一点点delay。
综上,设计建议SRAM输入输出逻辑尽量做到很小!