如何使用mem compiler 创建mem

经常有人问我怎么create mem 。 我这里就简单概述一下。
不同厂商mem create 方法是不同的。具体其实琢磨下就能做。 我这里只介绍Synopsy和ARM 家的mem
tsmc 也差不多。
另外也有脚本create 和 gui 上create的。 方法其实大同小异,我这里就简单介绍一种方法。

image

Ip 路径 从S 官网上下载。 1 是解压包, 2是解压的dir.
从名字上能看出来是什么样的mem 比如 a 代表smic40 nm工艺 b位置 代表是single port 还是dual port.

然后名字里面有asdv是rom , 有r的是register file 有s的是sram 图中红色标注处。
关于名字dir里面的pdf 最下面有详细说明。

然后这是lib ip dir内部,没啥好看的都是用来生成mem的ip文件对我们最有用的就是这个pdf
image
主要此ip 的各项特性等信息。需要阅读。

接下来有了lib ip 需要产生mem要用synopsy的 embed it tool

然后创建工程
其中注意的是compile library 就是你的下载的库的位置


image


image

上面就是synopsy mem compiler 的简介

下面是ARM 的 mem compiler

Arm默认只提供gui操作界面,但是你也可以用命令

简单说就是先gui点,然后看运行的命令记下来,看看每个命令啥意思,然后写一个template 用脚本吃template里面的参数然后拼一个命令出来运行,就实现不用打开gui就能产生arm mem

比如这里就是一个用命令拼出来的生成2prf 的命令

当然你也可以用gui
启动

参数我就不解释了,和S大同小异,主要是这很多参数你不能改比如 power type 它打钩的你选不掉。比如 top metal 只有m5-m10 没的选
另外注意Frequency 和 activityfactor 这两个参数并不能影响你产生mem 跑多快,只是感觉是评估timign和功耗用的。 我是搞不明白搞一个和产生mem毫不相关的参数放这里是干嘛。

Utility里面的corner选项可以选corner

‘’

image

总结下。Arm这个mc 就是 timing差 支持差, 工具选择差, 就一条好便宜。

下面是tsmc mem

这个我用的不多。其实也大同小异
Tsmc很好的是人家有固定的 template格式在config.txt里

格式这个tsmc ip doc我记得是有的,我印象里我当时就是照着pdf里面写的。

就这样

image
不懂可以读tsmc readme 写得比我写的详细多了

image

然后填好了文件,运行pl就能生成tsmc mem