模擬電路提取Verilog模型的方法_第1頁(yè)
模擬電路提取Verilog模型的方法_第2頁(yè)
模擬電路提取Verilog模型的方法_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、-. z.模塊電路提取Verilog模型的方法總結(jié)鋒2018-1-18在原理圖目錄,運(yùn)行icfb。選Tools - Library Manager 在Library找到要提取的庫(kù)一般是工程名稱,這里選NV3030A1P_GRAM。在Cell里選要提取的頂層模塊,這里選GRAM。View里選schematic,并右擊選open在翻開的原理圖Virtioso Schematic菜單里,選Tools - Simulation - NC-Verilog在設(shè)置窗口里,Run Directory手工填入提取Verilog網(wǎng)表的目錄名,比方*/GRAM_run6Top Level Design里,點(diǎn)Brow

2、ser,選擇要提取的頂層,我們這里選擇與第3步一樣的Library、Cell和View。如下列圖,選好后點(diǎn)Close。點(diǎn)左邊跑步的人來(lái)Initial Design。會(huì)看到三個(gè)勾Generate Netlist的圖標(biāo)顯示出來(lái)了。選Setup - Netlist 設(shè)置提取參數(shù)。我們需要修改Netlist These Views和Stop Netlisting at Views,如下列圖設(shè)置。另外時(shí)間和精度也可以在此設(shè)置,默認(rèn)是1ns/1ns,是全局的設(shè)置。我建議不要修改,在生成Verilog Netlist后,手工修改一些特殊模塊來(lái)提高精度即可。設(shè)置好后,點(diǎn)Apply,OK。點(diǎn)擊三個(gè)勾生成Veri

3、log Netlist。稍等片刻后,第三個(gè)圖標(biāo)模塊圖顯示出來(lái),說(shuō)明網(wǎng)表也生成好。我們進(jìn)入GRAM_run6目錄,并進(jìn)入子目錄ihnl。會(huì)看到很cds*開頭的文件夾,再看cds*目錄里面有個(gè)netlist文件。用文本編輯器翻開netlist,你就看到了提取出來(lái)的Verilog網(wǎng)表了。我們?cè)贕RAM_run6目錄里,用如下的命令來(lái)合并各個(gè)模塊的Verilog網(wǎng)表。find會(huì)查找到所以的名叫netlist的文件,用cat顯示出這些文件的容,再重定向到nv3030_sram.v。用以下命令檢查網(wǎng)表有無(wú)語(yǔ)法錯(cuò)誤。一般來(lái)說(shuō),我們網(wǎng)表提取到此完畢。但有時(shí),我們還需要修改自動(dòng)提取的網(wǎng)表。比方:刪除共用的邏輯單

4、元模塊,因?yàn)檫@些模塊很可能已經(jīng)手動(dòng)寫好verilog形為級(jí)模型。修改局部模塊的精度,因?yàn)?些延時(shí)模塊希望準(zhǔn)確到100ps。下面是一個(gè)用python寫的例如腳本。使用方法import sysimport osimport reimport getopt#解析命令參數(shù)try: opts, args = getopt.getopt(sys.argv1:, hi:o:, ifile=, ofile=)e*cept getopt.GetoptError: print(simplify_sram_netlist.py -i -o ) sys.e*it(2)for opt, arg in opts: if

5、opt = -h: print(simplify_sram_netlist.py -i -o ) sys.e*it() elif opt in (-i, -ifile): ifileName = arg elif opt in (-o, -ofile): ofileName = arg#讀入待修改的Verilog網(wǎng)表infile = open(ifileName, r)sfile = infile.read()infile.close()#此處指定要?jiǎng)h除的模塊名libMod = nand2_lv, delay3n, nand3_lv, ldecv4, nor3_lv, inv_lv, dela

6、y5n, delay500p, nand4_lv, tg_lv, dff_rl, bushold, dff_fl, mu*2, delay1n, nor2_lv, rwckt, sramcell, inoutbufsMod = #別離成單個(gè)moduleallmodule = re.findall(r(module.*endmodule), sfile, re.S)if not allmodule: print(Can not find any module!)else: for m in allmodule: searchModName = re.search(rmodules(w_+)s,

7、m, re.S) mName = searchModName.group(1) if mName in libMod: #如果是指定要?jiǎng)h掉的模塊,則丟掉 continue else: if mName = rwckts0: #處理時(shí)間單位和精度 strTimescale = timescale 1ns/100psn elif mName = inoutbuf: strTimescale = timescale 1ns/10psn else: strTimescale = timescale 1ns/1nsn #處理完畢后,存入到sMode列表 sModmName = strTimescale

8、+ m + nn #對(duì)處理完的模塊,按模塊名排序 sModKeys = list(sMod.keys() sModKeys.sort() #把結(jié)果寫到新文件 outfile = open(ofileName, w) for k in sModKeys: outfile.write(sModk) outfile.flush() outfile.close()注意:如果模擬電路里有functional View,則需要檢查提取的對(duì)應(yīng)模塊是網(wǎng)表和自己寫的verilog模型。需要檢查Verilog網(wǎng)表里的晶體管級(jí)的模型,如nmos、pmos、cmos、tran等。并確認(rèn)是否是必須的,如果不是請(qǐng)?zhí)鎿Q成形為級(jí)模型。因?yàn)榫w管級(jí)模型仿真會(huì)慢很多。確認(rèn)是否包含沒有邏輯功能的驅(qū)動(dòng)Buffer如,兩級(jí)反相器。一般模塊電路里會(huì)包含大量的這

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論