DC综合时Memory(ram、rom)的处理

文章介绍了在进行DC综合时遇到大型工程中内存模块导致的综合问题,特别是RAM和ROM的处理。通过使用MemoryCompiler工具(文中称为Memaker)生成lib文件,然后使用LibCompiler将其转换为db格式,以便在DC综合中作为library读入,解决了综合过程中的卡死问题。文章还详细说明了Memaker的安装和使用步骤,以及转换lib文件为db文件的TCL脚本编写过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录


前言

       这里是研一时的理解,有一些不正确的地方,后续整理一下会更新文章

       在进行DC综合前,我们看一些工程的filelist可以发现,会有许多memory模块的存在,比如ram、rom之类,而进行综合如果直接将memory综合进去,结果可能会不可信,并且遇到大的工程时综合memory会出现卡死的状况,所以本文将会讲解如何对DC综合的memory进行处理。


一、DC综合memory遇到的问题

       之前使用DC综合的是一个工程的一小部分,比如之前综合的e203的core,并没有涉及到对于memory的处理。

       但是这次项目需要,要综合C910来看资源的利用,这种整个大工程的综合我也是第一次去做,问了同组一个小伙伴,他们之前做过e906整个工程综合,我看他们的filelist,直接将memory读进去进行的综合。可以看下图。

654fa26218a92af48794155f7a3ff2cb.jpeg

1d00ce8baf16360b340f27c7ab316667.jpeg

        可以看到e906的ram是比较少的,所以他们没有出现卡死的状况,但是我这次综合的C910,可以看一下这个filelist中ram部分。

52e32fe996521d4c218be6a2cf0ab2bd.png

       这是一部分,总共有大约80多个memory,一开始我并没有去管,直接写好脚本去综合,发现综合到中间就卡死了,出现了下面的情况。

b380afdd1af3b947393d98fef8707e8d.png

       所以对于memory我们不可以直接综合,要进行处理。

二、Memory(ram、rom)处理

1.解决思路

       那么具体的解决方法,就是利用Memory Complier工具,去生成所需要的memory,就比如这次我所需要的ram。那么利用这个工具生成的是lib格式,之后回到服务器,用Lib complier转成db格式,在DC综合时,将ram当作library读入即可。

      

2.Memaker安装

       有了解决思路,那么就是使用工具去使用。但是网上并没有现成的Memory Complier,所以使用的是老师提供的Memaker。

所需文件:

虚拟机软件 VMware

虚拟机镜像 CentOS7-x86_64-DVD-2009

memaker压缩包 FSF0L_Memaker_202101.3.0.tar

license文件 memaker.dat

插件libXScrnSaver-1.2.2-6.1.el7.i686

一、打开VMware,创建好新的虚拟机

bc934202acc23ce6f8162fde7ae6f507.png

二、把memaker压缩包拖进虚拟机,解压出来

解压好后把memaker.dat拖到安装目录下的

3b8217ce9dee6c5a18f20880358815b0.png

注:memaker中的hostname和VENDOR ftclmd地址需要自己更改

adc7c7b11ae94786a6c0bf6f4f833e98.png

三、修改memaker.env中memlib地址

b0f9f256d44ea7ac0d92252706acdec8.png

四、设置ip地址(用su指令开管理员权限)

CentOS 7更改网卡名eth0和配置网卡_openbox2008的博客-CSDN博客_centos7网卡配置

1.、编辑 grub 配置文件

# vim /etc/default/grub 或 vim /etc/sysconfig/grub

增加 net.ifnames=0 biosdevname=0 在GRUB_CMDLINE_LINUX

2d2fc932c50788e29138e957ceda408f.png

2、用 grub2-mkconfig 命令重新生成GRUB配置并更新内核

# grub2-mkconfig -o /boot/grub2/grub.cfg

只要做完这步,然后重新启动 Linux 操作系统,通过# ip addr 可以看到网卡名称已经变为 eth0 ,网络能正常使用,但网络配置文件还是ifcfg-ens33 .

3f99e2d6406554860a04e6c04f8a5944.png

3、修改网卡配置文件

将原来网卡配置文件名称为 ifcfg-ens33,这里需要修改为 eth0 ,ifcfg-ens34改为eth1 ,并适当调整网卡配置文件

#mv ifcfg-ens33 ifcfg-eth0

#mv ifcfg-ens34 ifcfg-eth1

并修改网卡配置文件

9eb580ada228e46ae9f55a02fb39d89d.png

4.重启虚拟机

五、打开终端,输入Han.txt中指令

df1ee39da558e0bd533147d3ac7f9920.png

如果提示license有问题,将系统时间回调至2022年10月之前再试。

五、如果提示缺少libXScrnSaver插件则安装后重新尝试。

下载插件压缩包,拖入虚拟机安装。

或者管理员模式输入yum install libXScrnSaver。

3.Memaker使用

3.1 打开Memaker

通过命令行输入直接打开,可以进入下面GUI界面。

99eeb396b7696c211e5315cc89824d65.png

 3.2 Ram的生成

       因为已知了Ram的大小,所以直接选择Memory Type去生成。

       已其中一个Ram举例,我要生成的是128✖️16的Ram,并且C910使用的都是单端口的Ram,所以第一步在Memory Famile选择“single port ram”;第二步word代表地址位,填入128;第三步Bit代表数据位宽,填入16,其余默认,之后第四步点击Preview。

7da37bda41407d1934548e619cf4a38b.png

之后可以看到生成的各个ram的预览界面,我们需要用第一种,所以勾选第一种即可。

fcd3c60e46ef6cc5b27bc206f00c4424.png

下一步会显示你所勾选器件的一些基本信息,可以检查一下是否有误,并且可以将名字更改为你所需要的名字,这里都是默认名字。 

00815b18aae651105fcece27620f5507.png

之后在这一步可以选择你所希望生成的信息,有很多选项,因为我只需要lib文件,所以我只勾选了lib和生成.v文件,生成.v我主要是想看一下里面写的是什么样子。之后点击Generate,就可以成功生成我们所需要的东西。

c3c64edba60dd2aa54cd59e8edae0183.png

我们可以看一下生成的文件,除了.v文件之外,lib生成了许多,这里拆分一下各个lib的命名规则。

以后缀ff1p32v85c和ss1p08vm40c为例子,这个后缀代表了两部分,首先第一部分代表电压:1p32v代表1.32v,1p08代表1.08v;其次第二部分代表温度:85c代表85度,m40c代表-40度。

4cfe5b33f1d7f408d4315112748894d2.png

4.Lib Complier

这个很简单,写一个转化脚本,将所有lib转成db就可以。写脚本时候需要知道Lib Complier的命令.

4.1 新建一个db文件夹,一个lib文件夹

4.2 转换的所有lib文件复制到lib文件夹内

cb86ca19480b11463bb841a2974a73af.png

4.3 编写tcl脚本,命名为autolib2db

set enable_write_db_mode True

set files [split [glob lib/*.lib] " "]

foreach file $files {
read_lib $file
set libname [lindex [split [lindex [split $file "/"] [expr [llength [split $file "/"]]-1]] "."] 0]
write_lib -output db/${libname}.db $libname
remove_design
}

exit

4.4 运行tcl脚本

得到所有转换后的db文件,存入db文件夹中,之后作为library导入dc工程中即可。

2bacb2a8b14080727d5880f4c419465d.png

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白敬亭分亭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值