目录
前言
在进行DC综合前,我们看一些工程的filelist可以发现,会有许多memory模块的存在,比如ram、rom之类,而进行综合如果直接将memory综合进去,结果可能会不可信,并且遇到大的工程时综合memory会出现卡死的状况,所以本文将会讲解如何对DC综合的memory进行处理。
一、DC综合memory遇到的问题
之前使用DC综合的是一个工程的一小部分,比如之前综合的e203的core,并没有涉及到对于memory的处理。
但是这次项目需要,要综合C910来看资源的利用,这种整个大工程的综合我也是第一次去做,问了同组一个小伙伴,他们之前做过e906整个工程综合,我看他们的filelist,直接将memory读进去进行的综合。可以看下图。
可以看到e906的ram是比较少的,所以他们没有出现卡死的状况,但是我这次综合的C910,可以看一下这个filelist中ram部分。
这是一部分,总共有大约80多个memory,一开始我并没有去管,直接写好脚本去综合,发现综合到中间就卡死了,出现了下面的情况。
所以对于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,创建好新的虚拟机
二、把memaker压缩包拖进虚拟机,解压出来
解压好后把memaker.dat拖到安装目录下的
注:memaker中的hostname和VENDOR ftclmd地址需要自己更改
三、修改memaker.env中memlib地址
四、设置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
2、用 grub2-mkconfig 命令重新生成GRUB配置并更新内核
# grub2-mkconfig -o /boot/grub2/grub.cfg
只要做完这步,然后重新启动 Linux 操作系统,通过# ip addr 可以看到网卡名称已经变为 eth0 ,网络能正常使用,但网络配置文件还是ifcfg-ens33 .
3、修改网卡配置文件
将原来网卡配置文件名称为 ifcfg-ens33,这里需要修改为 eth0 ,ifcfg-ens34改为eth1 ,并适当调整网卡配置文件
#mv ifcfg-ens33 ifcfg-eth0
#mv ifcfg-ens34 ifcfg-eth1
并修改网卡配置文件
4.重启虚拟机
五、打开终端,输入Han.txt中指令
如果提示license有问题,将系统时间回调至2022年10月之前再试。
五、如果提示缺少libXScrnSaver插件则安装后重新尝试。
下载插件压缩包,拖入虚拟机安装。
或者管理员模式输入yum install libXScrnSaver。
3.Memaker使用
3.1 打开Memaker
通过命令行输入直接打开,可以进入下面GUI界面。
3.2 Ram的生成
因为已知了Ram的大小,所以直接选择Memory Type去生成。
已其中一个Ram举例,我要生成的是128✖️16的Ram,并且C910使用的都是单端口的Ram,所以第一步在Memory Famile选择“single port ram”;第二步word代表地址位,填入128;第三步Bit代表数据位宽,填入16,其余默认,之后第四步点击Preview。
之后可以看到生成的各个ram的预览界面,我们需要用第一种,所以勾选第一种即可。
下一步会显示你所勾选器件的一些基本信息,可以检查一下是否有误,并且可以将名字更改为你所需要的名字,这里都是默认名字。
之后在这一步可以选择你所希望生成的信息,有很多选项,因为我只需要lib文件,所以我只勾选了lib和生成.v文件,生成.v我主要是想看一下里面写的是什么样子。之后点击Generate,就可以成功生成我们所需要的东西。
我们可以看一下生成的文件,除了.v文件之外,lib生成了许多,这里拆分一下各个lib的命名规则。
以后缀ff1p32v85c和ss1p08vm40c为例子,这个后缀代表了两部分,首先第一部分代表电压:1p32v代表1.32v,1p08代表1.08v;其次第二部分代表温度:85c代表85度,m40c代表-40度。
4.Lib Complier
这个很简单,写一个转化脚本,将所有lib转成db就可以。写脚本时候需要知道Lib Complier的命令.
4.1 新建一个db文件夹,一个lib文件夹
4.2 转换的所有lib文件复制到lib文件夹内
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工程中即可。