利用ncverilog進(jìn)行VHDL語言的仿真,需先建立ncverilog仿真環(huán)境,ncverilog的仿真環(huán)境下需要兩個(gè)setup文件,hdl.var和cds.lib兩個(gè)文件,而VHDL語言一般會(huì)調(diào)用相應(yīng)的library,有些library是用戶自定義的庫,有些library是其他EDA軟件的庫,這種一般存在于不同的EDA仿真軟件之間的移植造成的相應(yīng)庫的移植。比如我們目前一個(gè)項(xiàng)目,之前設(shè)計(jì)師是在modelsim進(jìn)行仿真驗(yàn)證,調(diào)用了modelsim自帶的庫,現(xiàn)在要轉(zhuǎn)到ncverilog上進(jìn)行仿真驗(yàn)證。
在ncverilog中如何調(diào)用自定義的庫,一般的做法是在cds.lib文件中聲明自定義庫。
仿真目錄下的cds.lib文件,首先先要調(diào)用ncverilog安裝目錄下的cds.lib文件,一般采用include?/../../cds.lib,目錄/../../為ncverilog的安裝目錄下的cds.lib文件,然后定義worklib,一般的語句為
define worklib?./simtry其中/simtry文件夾是在仿真的run.tcl腳本中利用mkdir
simtry建立,然后聲明自定義庫,語句為
define jpeg2k_e ./simtry??其中jpeg2k_e為自定義庫的名稱。
所以仿真目錄下的cds.lib文件里的內(nèi)容一般為
include?/../../cds.lib
define worklib?./simtry
define jpeg2k_e ./simtry
然后就是跑仿真的腳本
rm –r simtry
mkdir simtry
ncvhdl -64bit?-V200X –work jpeg2k_e?-f?lib*.f????//lib*.f為自定庫的全部文件
ncvhdl -64bit?-V200X –work worklib?-f?rtl_VHDL*.f //rtl_VHDL*.f為rtl代碼的全部
//件以及tb
ncvlog -64bit?–work worklib?-f?rtl_verilog*.f????// rtl_verilog*為verilog的rtl代碼
ncelab -64bit –access +rwc –messagesworklib.tb –timescale 1ns/1ps –notimingchecks –log aa.log
ncsim –gui -64bit –nolog worklib.tb