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 的
评论1