目錄
前言
一、DC綜合memory遇到的問題
二、Memory(ram、rom)處理
1.解決思路
2.Memaker安裝
3.Memaker使用
3.1 打開Memaker
3.2 Ram的生成
4.Lib Complier
4.1 建立一個db檔案夾,一個lib檔案夾
4.2 轉換的所有lib檔案複制到lib檔案夾内
4.3 編寫tcl腳本,命名為autolib2db
4.4 運作tcl腳本
前言
在進行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工程中即可。