最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

Memory-Compiler使用入门介绍

IT圈 admin 23浏览 0评论

2024年4月10日发(作者:帛章)

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与register file,其中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加入到代

码中进行综合了。在综合工具的脚本中的search path下加入RAM的DB文件地址即可。

将产生的vclef加入到布局布线工具中,如下图所示。

这样Memory Compiler的使用与应用基本就完成了。

2024年4月10日发(作者:帛章)

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与register file,其中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加入到代

码中进行综合了。在综合工具的脚本中的search path下加入RAM的DB文件地址即可。

将产生的vclef加入到布局布线工具中,如下图所示。

这样Memory Compiler的使用与应用基本就完成了。

发布评论

评论列表 (0)

  1. 暂无评论