Memory Compiler使用介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Memory Compiler使用介绍在使用Memory Compiler时,请务必确保你的RAM从头到尾的规格与设定都相同,否则会造成一些不可避免的错误。
首先在RTL代码阶段,要用到RAM就要用Artisan公司提供的Memory Compile产生的verilog代码,此时不需要着急产生其他后阶段的必要数据,因为RTL代码阶段,只需要行为级模型即可。
当进入门级代码后,RAM compiler就要产生其他的相关数据了,同时要考虑RAM版图的位置与方向。由于一个大的设计不会设计一次就会完成,所以有两个重点,第一个是每次使用RAM compiler时都一定要让它产生特性设置文档,避免忘记自己做过的设定。第二件事是对应的文件名要定义好,否则RAM的方向不同但是又用到了相同的文件名,就会把原始数据覆盖掉。
下图为SRAM在流程中需要产生的文档
RTL阶段
在RTL阶段主要只是产生verilog行为级和设置文件。因为在RTL阶段不需要考虑RAM 的位置信息。Memory Compiler提供4种选择,分别为ra1sh,ra2sh,rf1sh,rf2sh。前面的ra与rf分别指的是SRAM与registerfile,其中rf在同样的情况下比ra占的面积小,但是rf的大小有限制,其限制大小位4096bits。而后面1sh与2sh表示位单端口还是双端口,如果SRAM 的容量比较大的话,相同设置下,1sh比2sh面积要小,速度也要快,功耗要低。
Memory Compiler运行界面如下图所示
instance name:该设置是对RAM的命名,由于ram的特性有地址和位数,所以在命名的时候尽量包含这些信息。
number of words:该设置用来确定RAM的深度,即寻址空间大小。
number of bits:该设置用来确定RAM的宽度。
frequency:该设置用来确定RAM的工作频率,该设置确定后就可以基本确定RAM的
功耗,估计的结果位平均电流,通过该数据来设定电源环的宽度。
ring width:该设置为工具建议的电源环宽度。
relative footprint:该设置确定RAM的形状,最好让RAM的形状接近正方形。
接着选择utilities->advanced options,将Ground 的名字改成GND或者VSS。如下图所示.
在VIEWS选项中选择postscript datasheet与verilog model,点击generate按钮,便会产生相应的verilog代码与设置文件。
最后在MENU中点击utilities->write spec产生SRAM的注释文档。
综合与布局布线阶段
为了避免重新启用Memory Compiler与以前设置有出入,所以最好一次性将Memory Compiler能够产生的相关数据一并输出。在这里,Memory Compiler还需要产生3种数据。
1..LIB 该数据是RAM的时序信息文件
2..VCLEF 布局布线工具需要使用的物理信息文件
3..SPEC RAM的注释文件
在布局布线前,需要考虑RAM的长与宽,估计它的位置与方向,尽量让功能想关的模块靠近一些。
将产生的.LIB文件转换成.DB文件,就可以把Memory Compiler生成的RAM加入到代码中进行综合了。在综合工具的脚本中的serch_path下加入RAM的DB文件地址即可。
将产生的vclef加入到布局布线工具中,如下图所示。
这样Memory Compiler的使用与应用基本就完成了。