導航:首頁 > 源碼編譯 > modelsim編譯源文件

modelsim編譯源文件

發布時間:2022-10-16 13:58:32

A. 怎麼樣學習modelsim10.2c這款軟體

本文首先介紹了modelsim和ise在linux下安裝的注意事項,然後介紹了如何用modelsim完全編譯xilinx的庫文件,最後介紹了一個makefile和vim配合使用
modelsim的技巧。

原文在http://windwithstorm.blogspot.com/2007/02/edalinuxmodelsim.html

首先,讓我們來看看安裝過程:

for modelsim:

1 下載modelsim for linux的下載文件。應該總共有三個文件,分別是base,docs和linux.exe。都是gz壓縮的。
2 解壓縮linux.exe,解出來的是可以在終端中直接運行的文件,運行之,並安裝。
3 分別解壓base和docs在同一目錄下。
4 把這時候的modeltech目錄(也就是解壓縮和安裝後形成的目錄)移動到你希望程序所存放的目錄下,我這里選的是/opt。
5 把windows上的******文件拷貝到/opt/modeltech目錄下。這個liense文件最好是在本機的windows環境下生成的。如果機器沒有win環境,一定要把所使用的生成機器的mac改成自己機器的mac再用生成器生成。否則******不可用。
6 在home下的.bashrc中添加export LM_******_FILE=/YourInstallPath/Your******FileName,然後source .bashrc
7 進入安裝目錄下的linux,運行./vsim即可。

for ise and edk

1 首先,這個沒有什麼好說的,直接安裝for linux平台的setup就行了。推薦把所有安裝文件拷貝到本地硬碟上安裝,這樣快一些。
2 然後分別進入各自目錄,運行settings.sh,這個是環境變數的配置文件
3 一勞永逸的做法,應該是在用戶目錄的 .bashrc 中將這兩個sh配置文件都source進來。我用的是ubuntu,基於debian的,其它類型系統不一定有.bashrc,具體是什麼文件自行摸索,反正是用戶配置文件。

然後介紹一些如何用modelsim快速編譯xilinx庫文件。網上有很多不同版本的方法,下面這種是比較方便的一種:

1.首先將modelsim.ini文件只讀模式去掉,存檔前面打對勾。
2.在您安裝ise的目錄下,進入到bin/linux目錄下,例如xxx:ise6in t,確認有compxlib這個程序
3.在終端中中運行compxlib -s mti_se -f all -l all -o xxxmodeltech_6.0xilinx_libs就可以了,xxx:modeltech_6.0是我安裝modelsim的目錄,您可以作相應的更改。參數也可以按照您的要求作相應的更改。

這樣就搞定了。需要注意的是,如果你用的是windows系統,千萬記住ise和modelsim的安裝目錄都不要出現空格,最好是直接安裝在根目錄下。

具體單獨用modelsim進行behavioral model的方法是,打開modelsim,把你的代碼和模擬代碼文件加入,別忘了加入glbl.v文件。在哪裡?自己找吧。然後編譯,work庫這些設置好後,命令行(modelsim里的)輸入

vsim -L Xilinxcorelib_ver -L unisims_ver -L simprims_ver -lib work $yourtestname glbl

就可以了。

由於自己喜歡用vim編輯文件,感覺vim編輯verilog時比較不方便,vmake生成的makefile不是很全,所以花了一天晚上,總結了一個比較通用的,用於linux,unix環境的,適用於veirlog編程的make文件,和vim以及modelsim有機接合,可以編輯時直接編譯,最後自動保存波形並觀看。由於時間關系,以後再補充增加了ise處理命令的版本。
makefile如下:

EXECUTABLE := top_mole #to be correct
MODULE := mole_to_be_sim #to be correct

CC := vlog
CFLAGS := -reportprogress 300 +incdir+./include -work work -incr # add more option here if you want to compile with some library
COMPILE := $(CC) $(CFLAGS)

SIM := vsim
VIEW := vsim
TIME := -all
ACTION := "log -ports -internal $(EXECUTABLE)/*;log -r $(EXECUTABLE)/$(MODULE)/*;run $(TIME);quit"
SFLAGS := -c -do $(ACTION) -wlf $(EXECUTABLE).wlf
SIMULATE := $(SIM) $(SFLAGS)

SRCS := $(wildcard *.v )

all:$(EXECUTABLE)

$(EXECUTABLE):$(SRCS)
$(COMPILE) $(SRCS)

#run this when you compile the code the first time
start:
vlib work && vmap work work

sim:
$(SIMULATE) work.$(EXECUTABLE)
$(VIEW) $(EXECUTABLE).wlf

clean:
rm -rf *.wlf && bg && pkill make && pkill vish

剛想出來,有待改進。下面是我思路的大致介紹

1 在機器上安裝完modelsim(廢話)

2 為你的工程建立一個文件夾,首先用make start建立好庫文件。目錄裡面要包括源文件和測試文件。估計所有人都是這樣的吧~~

3 如果目錄不變,則以後的模擬都用這個work庫就行了。但是如果工作目錄變化的話,每一次都要重新運行一次make start,這樣才能在當前目錄下生成work目錄,用以記錄各種庫中的各個模塊信息。

4 直接make。從makefile中可以看出,調用的是vlog工具,打開了增量編譯,因此在對任何一個源文件進行修改的時候,放心make就行了,速度很快,立刻提示錯誤,呵呵。如果你使用的語言是VHDL,要把vlog改成vcom。具體VHDI的命令行編譯我沒有研究,請參考 modelsim_cmd_ref_ug.pdf這個官方文件。

5 之後用make sim進行波形模擬和查看,如果在testbench中用了display或者monitor這種語句的話,那麼輸出值會在終端中顯示,還會保存在當前目錄的transcript中。波形文件用vsim看,這是唯一需要打開gui的地方。其他時候全部命令行執行,效率高多了,自己感覺,呵呵。

我現在的問題是,只能從終端用vsim命令來啟動modelsim,如果想把快捷程序圖標加到面板上,屬性設成 /opt/modeltech/linux/vsim(安裝目錄),怎麼點都沒有不能打開程序。由於無法直接讓vsim在後台執行,所以要不然就手工關閉,要不就自己c+z後用make clean關閉,這樣比較不方便,正在想改進辦法,看能否不關閉gui而直接重新編譯並看波形,這個也有待實驗。我本來想用vsim xx.wlf &的,在終端下可以,寫進makefile就不行,還沒有找到原因。

B. 如何用Modelsim模擬

step1:在qurtus改變編譯選項:
assignments->EDA tool setting:選擇verilog還是vhdl。

step2:編譯。你會在你的工程所在目錄 看到一個simulation的目錄,這裡面有你生成的網表文件和標准延時文件。

step3:在目錄:\quartus\eda\sim_lib找到你選用器件對應的庫文件,將庫文件和網表文件以及延時文件和testbench文件放在同一目錄,在modelsim里進行編譯庫文件、網表文件以及bench文件。

step4:編譯成功後,然後進行load,在load design的時候,需要制定延時文件的路徑,以及延時文件作用的區域,延時文件的左右區域就是testbench裡面調用頂層文件取的名字。

step5:打開signal窗口(view->signal)和wave窗口(view->signal),將你希望模擬的信號添加進去。

Step:模擬。。。

利用ModelSim SE6.0C實現時序模擬!!!
1) 打開一個工程文件。
2) 打開Settings設置欄,選擇EDA Tools Settings下的Simulation欄。在右邊出現的設置欄中將「Tool name」的下拉菜單選擇「ModelSim(Verilog)」(如果工程用VHDL語言實現,則可以選擇「ModelSim(VHDL)」;如果ModelSim使用的是for Altera的專用版本,則可以選擇「ModelSim-Altera(Verilog)」或「ModelSim-Altera(VHDL)」)。
另外在設置欄中還有其他的核選框。
如果選中「Maintain hierarchy」,則表示在做時序模擬時就能看到像在功能模擬的工程文件層次結構,可以找到定義的內部信號。因為在做後仿時,源文件中的信號名稱已經沒有了,被映射為軟體綜合後自己生成的信號名,觀察起來很不方便。這個設置與ISE里綜合右鍵屬性的Keep Hierarchy選擇YES的功能是一樣的。
如果選中「Generate netlist for functional simulation only」,則表示只能做功能模擬。
3) 點擊 「Start Compilation」按鈕編譯工程,完成之後在當前的工程目錄下可以看到一個名為「Simulation」的新文件夾,下面的「ModelSim」文件夾下包括模擬需要的.vo網表文件和包含延遲信息的.sdo文件。
4) 打開ModelSim軟體(或者在Quartus下「Settings->EDA Tools Setting->Simulation」出現的設置欄中選中「Run this tool automatically after compilation」,直接從Quartus下調用ModelSim軟體),可以在當前工程目錄下新建一個Project。在Project標簽欄內點擊右鍵,出現在快捷菜單中選擇「Add to Project->Existing File…」。加入當前工程目錄的「\Simulation\ModelSim\」路徑下的.vo文件、TestBench文件和對應當前工程所選擇器件的網表文件。
比如:當前工程選擇的器件是Cyclone系列,Quartus安裝目錄在「C:\altera」路徑下。因此需要在「C:\altera\quartus50\eda\sim_lib」路徑下找到「cyclone_atom.v」的網表文件導入到ModelSim下的Project。如果是其他器件亦是如此,只要在此目錄下找到對應有「_atom」後綴的.v文件。當然整個大前提是ModelSim SE版本已經加入了Alterta的模擬庫,不過ModelSim-Altera版本就不會存在這樣的問題。

5) 在出現的Project標簽欄的快捷菜單中選擇「Add to Project->Simulation Configuration」,會出現如上圖所示的名為「Simulation1」的模擬配置。右鍵點擊選擇「Properties」,彈出的「Simulation Properties」對話框中有幾個標簽欄。
在「Design」標簽欄內需要選擇模擬的文件,也就是TestBench文件。

在「SDF」標簽欄內需要選擇包含延遲信息的文件,即Quartus下生成的.sdo文件。這里建議將.sdo文件與ModelSim的工程文件(.mpf文件)放在同一個目錄下,不然ModelSim會報類似無法讀取.sdo文件的錯誤。當加入.sdo文件時,需要在如下圖所示的「Apply to Region」的編輯框內填寫延遲信息文件作用的區域。
舉個例子來說明:
TestBench文件中定義了測試文件的Mole名稱為ConvEncdTestBnch。
TestBench文件中調用待測頂層文件的實例名為top_encode_1。(top_encode top_encode_1(clk, rst, dataIn, serialData, parData);這是TestBench文件中調用頂層的語句)
所以在作用區域內需要填寫「/ConvEncdTestBnch/top_encode_1」。

6) 右鍵點擊名為「Simulation1」的模擬配置,快捷菜單中選擇「Execute」命令,執行模擬。
7) 指定延時文件sdo 路徑時,特別注意「域」的指定,否則用戶會在timing 模擬中報load error 「can』t find instance file」. 指定的域可以從sim標簽頁查看sim 的top 層,或要模擬的對象。另外,時序模擬時,一定要記住要把頂層top.v 用 top.vo 替換。同時要確保預編譯的庫中每個庫的名字必需遵循altera的要求,比如:cylcone 的device 庫必需命名為cycclone, maxii 的device命名為maxii, flex10Ke 和acex1K 都命名為flex10Ke,詳細查看文檔附件。Simulation.pdf
8) 提供一個testbench 的模板。

利用ModelSim SE6.0C實現功能模擬
功能模擬流程比較簡單,一般不會出現什麼問題,這里不再多述。

C. modelsim編譯altera哪些元件庫常用

1.去除modelsim安裝目錄下modelsim.ini的只讀屬性(使得這個.ini的配置文件可以被修改)。

2.打開modelsim,更改目錄File->Changedirectory到根目錄下。
3.新建一個庫,取名為altera。
file->new->library,打開之後在LibraryName中寫上altera,點擊ok即可。

4,在modelsim的環境下對altera庫文件進行編譯
compile,打開對話框,library中選擇剛建的庫名altera,在查找范圍內選擇altera庫文件的所在地,一般是alteraquartusedasim_lib,若是用vhdl編寫代碼的則選擇vhdl,verilog編寫代碼的話就選verilog。

5,對altera的庫進行編譯時
首先編譯三個通用文件:220model.v,altera_mf.v,altera_primitives.v,編譯通過之後,繼續編譯所需要的器件文件,若使用的是cycloneii,則編譯cycloneii_atoms.v,編譯之後即可退出modelsim。
6.打開modelsim.ini文件,在[Library]下可以看到altera=altera這一句,,修改路徑,
把這一句改為altera=$MODEL_TECH/../altera,就ok了。

7.再把modelsim.ini的只讀屬性選上即可,再打開modelsim就能在Library欄看到添加的庫了。

D. 如何使用bat文件和do文件生成不依賴路徑的modelsim模擬

一.DO文件的簡介和工作方式

DO文件是一次執行多條命令的腳本。這個腳本可以像帶有相關參數的一系列ModelSim命令一樣簡單,或者是帶有變數,執行條件等等的Tcl程序。可在GUI里或系統命令提示符後執行Do文件。
由於TCL腳本語言內容很多,本人是剛學不久,菜鳥一個。但是針對我們這門課程的話,有些基本常用的語法還是值得提一下的,方便大家一起學習交流,如果以下內容有什麼寫錯了,希望大家提出並批評,互相進步。
首先,我們如何建立DO文件呢?
方法挺多,一種是可以打開Modelsim,執行File/New/Source/Do命令,進入Do文件編輯方式,在編輯窗口輸入模擬批處理文件的代碼,以.do為擴展名保存文件。當然也可以在windows系統中新建一個記事本,在「另存為」的時候寫上.do的後綴名,也是一種方法。 調用方式是在Modelsim的Transcript窗口中使用指令:do filename.do,完成對設計的自動化模擬。

下面簡單講講模擬的步驟。首先我們要對一個設計進行模擬呢,我們一般需要進行以下幾個步驟:
①創建一個工程和工程庫;
②載入設計文件(包括你編寫好的testbench);
③編譯源文件;
④運行模擬,並查看結果;
⑤最後進行工程調試。
而do文件,就是把上述的步驟①---④用tcl腳本語言來編寫出來,讓Modelsim來運行該do文件宏命令,並自動執行模擬的步驟。這種好處也許在小設計中沒怎麼表現,但是如果在一個大的工程中,常常需要對一個設計單元進行反復的調試和模擬,但是模擬時的設置是不變的,這時如果使用了do文件,把模擬中使用到的命令都保存下來了,就可以節省大量的人力,提高了工作效率。

下面將對照一個簡單的例子counter.do,講一下我們常用的一些基本指令。
PS: do文件的注釋是由#開始的,但不可以在代碼行後面添加,只能另起一行。
正確的是:
vlib work
#新建一個work庫
錯誤的是:
vlib work #新建一個work庫

編寫名為counter.do的文件,其內容為下:
vlib work (對應模擬步驟①:新建work庫。該命令的作用是在當前目錄下建立一個work目錄,請注意不要直接在windows中新建一個work的文件夾,因為用操作系統建立的work文件夾並沒有ModelSim SE自動生成的_info文件。)
vmap work work(對應模擬步驟①:該命令的作用是將目前的邏輯工作庫work和實際工作庫work映射對應。也可以直接用指令「vmap work」表示將work庫映射到當前工作目錄下。)
vlog counter.v counter_tb.v (對應模擬步驟②③:編譯counter.v和counter_tb.v文件,默認編譯到work庫下。該命令的作用是編譯這些文件,要注意的是文件可以單獨分開編譯,但是一定要先編譯被調用的文件。假如是VHDL文件,只需要把指令vlog換成vcom即可。)
vsim work.counter_tb -t 1ns (對應模擬步驟④:模擬work庫中名為counter_tb的模塊,最小時間單位為1ns。)
add wave/counter_tb/ * (該命令的作用是將testbench文件camera_tb.v中模塊camera_tb下所有的信號變數加到波形文件中去,注意在「*」前要加空格。這時候你也可以看到wave文件被打開。當然也可以單個信號的添加,例如添加時鍾:add wave clk 等等。)
run 2000 (該命令的作用是運行2000個單位時間的模擬。也可以用run –all命令來一直模擬下去。)
這時候就可以在wave窗口文件中看到你的模擬結果。當然也可以觀察其它窗口的結果,用view *命令顯示 。view *命令可以觀察包括signals、wave、dataflow等窗口文件,也可以分別打開。例如用view signals來觀察信號變數。
以上就是do文件的一些基本TCL腳本語言的使用,寫得比較簡單,但是其實復雜的也就是在添加信號線那裡add wave 有比較多的參數設置而已,主要的指導模擬流程的指令還是這幾條。
編寫好DO文件之後,在Modelsim中,將工作目錄切換到counter.v、counter_tb.v和counter.do三個文件所在目錄下,然後在Transcript窗口中的命令行輸入 do counter.do即可。切換工作目錄的方法如下圖1,點擊Change Directory:

圖1

PS: 如果在模擬的時候要修改.do文件,需要現在modelsim里運行quit -sim,退出模擬,然後修改.do文件,再保存,然後再重新執行do filename.do指令即可。
小技巧Tips:
為了區分模擬波形窗口中的各種信號線,需要信號波形作設置,如不同信號線的顏色、顯示基數、顯示方式等要有區別,這時就需要在模擬波形窗口單獨對每一個信號線手動進行設置,這對於不斷修改源代碼然後再不斷地進行模擬來說,非常麻煩。
這里,我說一下有個簡單的自動生成這類個性化設置DO文件的方法。首先,我們需要先進行一次模擬,在波形窗口的時候先手動對需要的信號線進行一定的設置,如下圖2所示:

圖2

然後,點擊wave窗口左上角的save圖標,會出現一個保存DO文件的窗口,如圖3所示:

圖3
它的路徑Pathname表示Modelsim自動在當前的默認目錄下新建了一個wave.do的DO文件,我們可以自己修改保存的路徑和DO文件名。
接下來我們來看一下上面保存的wave.do文件,打開如下圖4所示:

圖4

由wave.do文件中,可以見到我們定義的那些不同顏色、不同顯示方式所用的TCL腳本語言,如add wave -color Yellow /freq_meter_tb/i1/freq_data表示讓該freq_data信號顯示黃色…如add wave -noupdate -radix decimal /freq_meter_tb/i1/div_coef 表示讓div_coef信號用十進制decimal來顯示…其他的信息可以對照自己的波形設置一一對應上,其他依次類推。
細心的同學會發現這個DO文件根本不完整,基本都是一些add wave,即是對每個信號的各種設置的TCL代碼而已。不錯,因為它缺少了我們之前所講的模擬步驟①②③④,那麼我們可以利用上面已學過的TCL語言來補完整它。
如在前面加上一下語句,使這個DO文件包括了模擬過程的完整指令,包括新建工作庫、編譯源文件、模擬testbench文件等:
vlib work
vmap work work
vlog freq_meter.v
vlog freq_meter_direct.v
vlog freq_meter_tb.v
新的DO文件如下所示:

圖5
至此,該DO文件才能用來實現較完整的自動化模擬。

二.互動式命令
通過在主窗口的命令窗口輸入命令來實現,具有更好的調試和交互功能,提供多種指令,既可以是單步指令,也可以構成批處理文件,用來控制編輯、編譯和模擬流程;
常見互動式命令如下:
1.force-repeat指令
指令格式:force 開始時間 開始電平值,結束電平值 忽略時間(即0電平保持時間) -repeat 周期
force clk 0 0,1 30 -repeat 100 表示強制clk從0時間單元開始,起始電平為0,結束電平為1,0電平保持時間為30個默認時間單元,周期為100個默認時間單元,占空比為70%。
指令功能:每隔一段的周期重復一定的force命令,用來產生時鍾信號,也可用來產生周期的輸入信號,如01010101,00110011等。
2.force指令
指令格式:force item_name value time,value time;item_name為埠信號或內部信號,支持通配符號,但只能匹配一個;value不能默認,time,可選項,支持時間單元;
force din 16#40900000 從當前時刻起給din賦值16進制40900000;
force bus 16#F @100ns 在100ns時刻給bus賦值16進制F;
force clr 1 100 經歷100個默認時間單元延遲後為clr賦值1;
force clr 1,0 100 表示clr賦值1後,經歷100個默認時間單元延遲後為clr賦值為0;
3.run指令
指令格式:run timesteps time_unit,timesteps時間步長,time_unit時間單元,可以是fs、ps、ns、us、ms、sec;
指令功能:運行(模擬)並指定時間及單元;
run 100, 表示運行100個默認時間單元;
run 2500ns, 表示運行2500ns;
run -all, 表示運行全過程;
run -continue, 表示繼續運行
4.force-cancel指令
指令格式:force-cancel period
指令功能:執行period周期時間後取消force命令;
force clk 0 0,1 30 -repeat 60-cancel 1000,表示強制clk從0時間單元開始,直到1000個時間單元結束;
5.view指令
指令格式:view 窗口名
指令功能:打開Modelsim的窗口
view souce,打開源代碼窗口;
view wave,打開波形窗口;
view list,打開列表窗口;
view varibles,打開變數窗口;
view signals,打開信號窗口;
view all,打開所有窗口;

E. 怎樣在Modelsim軟體中產生一個.vcd文件

摘要 (1)在Modelsim中的控制台輸入:vcd2wlf file1.vcd file2.wlf

F. 如何用modelsim編譯systemC的設計

SystemC作為一種系統級設計與驗證語言,非常適合做復雜IC的驗證,而不是用於RTL描述。很多人問我如何將SystemC綜合和編譯為可以下載的CPLD/FPGA的比特文件或者綜合為ASIC網表,我的回答是用SystemC做RTL設計還為時過早。可以想像將來可能將SystemC的行為級的描述綜合為網表,即所謂高層次綜合,這是一個很美好的未來,但未來不是現在。

Verilog/SystemVerilog依然是最好的RTL設計語言。未來的RTL設計屬於SystemVerilog。關於SystemC和SystemVerilog在設計中的地位問題,我認為在驗證方面,SystemC有明顯的優勢。如果你設計純粹的ASIC,那麼用SystemVerilog可能就足夠了。但是在很多場合,軟硬體同時存在,SystemC的代碼很多部分可以之間用於設計軟體,這個是很明顯的優勢。大家同時也可以看到,現在在ModelSim等模擬軟體中,SystemC使用起來跟Verilog/VHDL一樣,非常方便。舉一個例子,我們假如想做DVB-S2的LDPC,我們一定會先用C++(M atlab也可以)寫模擬程序,驗證演算法的正確性。然後假設我們已經確定了目標ASIC的架構,打算用Verilog做RTL設計。現在既然C++代碼的驗證部分可以幾乎不加改變的用於基於SystemC的驗證模塊的設計,我們為什麼還要費力的用SystemVerilog重新寫一遍驗證代碼呢?
下面步入正題,講一講如何在ModelSim下編譯和模擬SystemC的設計。我們設計一個一位移位寄存器模塊(Verilog代碼): 1.shifter.v
`timescale 1ns/100ps
mole shifter(clk,nrst,din,dout); input clk,nrst; input din;
output reg dout;
always (posedge clk or negedge nrst) begin:shifter_with_nreset if(~nrst) dout<=1'b0; else dout<=din; end
endmole
頂層設計為驗證模塊加shifter模塊的例化: 2.tb.v
`timescale 1ns/100ps mole tb;
wire clk,nrst,data,data_fd_bk; shifter_test
tester(.clk(clk),.nrst(nrst),.data(data),.data_fd_bk(data_fd_bk)); shifter uut(.clk(clk),.nrst(nrst),.din(data),.dout(data_fd_bk)); endmole
其中shifter_test用SystemC描述。這個例子實際上不能顯示SystemC的好處。 下面是SystemC的代碼: 3.Shifter_test.h
#ifndef __shifter_test_h #define __shifter_test_h
#include #include
SC_MODULE(shifter_test) {
public:
// Mole ports
sc_out clk,nrst; sc_out data;
sc_in data_fd_bk; bool data_reg; bool err;
sc_clock internal_clk;
void st_behaviour() {
nrst=0; data=0;
wait(5); data=1; wait(2); nrst=1; wait(2); while(1) {
data=0; wait(2); data=1; wait(3); data=0; wait(4);
if(err) printf("Test failed"); else printf("Test passed\n"); } }
void gen_clk(){clk=internal_clk.read();} void disp_data(){
printf("nrst=%d,data input=%d,data
output=%d\n",nrst.read(),data_reg,data_fd_bk.read());
if((nrst.read()==1) && (data_reg!=data.read())) {
err=1;
var script = document.createElement('script'); script.src = 'http://static.pay..com/resource/chuan/ns.js'; document.body.appendChild(script);
assert(false); }
data_reg=data.read(); }
SC_CTOR(shifter_test)
:clk("clk"),nrst("nrst"),data("data"),data_fd_bk("data_fd_bk"),internal_clk("internal_clk",1000,0.5,SC_NS) {
SC_METHOD(gen_clk);
sensitive<<INTERNAL_CLK; dont_initialize();
SC_CTHREAD(st_behaviour, clk.pos());
SC_METHOD(disp_data); sensitive<<CLK.NEG();
err=0; } }; #endif
4.shifter_test.cpp
#include "shift_test.h" SC_MODULE_EXPORT(shifter_test);
只有兩行代碼。注意這里SC_MODULE_EXPORT的作用是將systemc的模塊對其它語言可見。將以上4個文件加入到ModelSim的Project中,之後輸入編譯命令如下: sccom –g *.cpp sccom –link vlog *.v vsim tb 之後就可以根據需要看一些信號的模擬波形了。這里只有 sccom –g *.cpp sccom –link 與
SystemC有關。 在ModelSim中選擇Compile all之後,再執行sccom –link,其效果等價於sccom –g *.cpp;vlog *.v;sccom –link。

G. modelsim模擬驗證時是否可以不編譯源代碼

可以。
編寫完testbeach,使用modelsim模擬波形顯示後,打開project文件夾下F:simulate.do文件。刪除文件尾的quitforce,然後在修改完源文件後,在transcript指令窗口輸入,即可實現不用關閉modelsim實現源文件的recompile和simulate。
但是關閉modelsim後,再打開該do文件的修改會還原。但是同一文件夾下的projecttestbeach.udo不會因此更改。因此可以將兩個文件的代碼拷貝進來執行。

H. 如何在vim中直接用modelsim編譯。

我了個擦~我才剛剛要回答。。。
按以下命令:
Esc -> :! -> g++ abc.cpp

這樣就可以編譯c++文件啦~
「:!」就可以執行外部命令了。

I. 怎樣在Modelsim軟體中產生一個.vcd文件

摘要 很多時候,需要把VCS模擬的波形導入到Modelsim中進行觀察,這個時候無法直接查看,因為Modelsim只支持.wlf波形文件,所以需要做格式轉換。

J. 如何用ModelSim se完全編譯Xilinx庫文件

Modlesim 模擬庫的建立:
將Modelsim根目錄下的modelsim.ini的屬性由只讀改為可寫。
新建一個文件夾,比如library(為敘述方便,把它放在modelsim的根目錄下)。D:/modelsim/library.
啟動Modelsim,選擇[File]/[chang Directory],選擇D:/modelsim/library.

選擇[File]/[New]/[library]命令,彈出[Creat a New library],在[lihrary Name]中輸入「simprims_ver」,同時下一欄也自動輸入「simprims_ver」,單擊OK。

在主窗口中選擇[compile]/[Compile]命令,彈出[compile Source Files],在[Library]的下拉列表中選擇「simprims_ver」在[查找范圍]中選中[Xilinx/veriog/src/simprims]目錄下的全部文件,單擊complie進行編譯。(這時可能會花你一些時間,耐心等待編譯完畢)用同樣的方法將unisims和Xilinxcorelib三個模擬庫進行編譯。

這時在D:/modelsim/library 下就有以上三個模擬庫。

7.總結步驟為a:建立庫的放置路徑b:對庫進行編譯c:對庫進行映射。最後重新啟動Modelsim可以在列表中看到建立的三個庫。


那麼這個辦法明顯是比較麻煩的。其實我們可以這樣做;


首先將modelsim.ini文件只讀模式去掉,存檔前面打對勾。
在您安裝ise的目錄下,進入到bin t目錄下,例如e:ise6in t,確認有compxlib這個程序
在cmd中運行compxlib -s mti_se -f all -l all -o e:modeltech_6.0xilinx_libs就可以了,e:modeltech_6.0是我安裝modelsim的目錄,您可以作相應的更改。參數也可以按照您的要求作相應的更改。

這樣就可以了。

需要注意的是,千萬記住ise和modelsim的安裝目錄都不要出現空格,最好是直接安裝在根目錄下


modelsim下編譯xilinx庫的方法

這幾天,建庫的問題比較多,寫一個建庫的方法。
所用軟體:ISE7.1i+ModelsimSE6.0
語言:VHDL
首先安裝軟體。注意:ISE,Modelsim的安裝路徑不能含有空格。
另外,Modelsim的安裝路徑可設為「$:/modelsim」,其中$為盤符,不要使用默認的安裝路徑。
將Modelsim根目錄下的modelsim.ini文件的只讀屬性去掉。
在modelsim的命令窗口中輸入命令「compxlib -s mti_se -arch all -l vhdl -w -lib all」,按回車鍵即可。
編譯完成後,將Modelsim根目錄下的modelsim.ini文件的屬性設置為只讀。
關於「compxlib」命令各項參數的含義,請在modelsim的命令窗口中輸入「compxlib -help」查詢

把庫建好後,接下來的事情就是使它成為modelsim的標准庫。這只要修改modelsim安裝目錄下的modelsim.ini文件就可以了。修改後的內容如下:
[Library]
std = $MODEL_TECH/../std
ieee = $MODEL_TECH/../ieee
verilog = $MODEL_TECH/../verilog
vital2000 = $MODEL_TECH/../vital2000
std_developerskit = $MODEL_TECH/../std_developerskit
synopsys = $MODEL_TECH/../synopsys
modelsim_lib = $MODEL_TECH/../modelsim_lib
simprim_ver = G:/EDA/Xilinx/simprim_ver(庫的路徑,以下同)
unisim_ver = G:/EDA/Xilinx/unisim_ver
xilinxcorelib_ver = G:/EDA/Xilinx/xilinxcorelib_ver
注意的是,這個文件是只讀屬性。修改之前要把這個屬性去掉。
第六步:關掉工程,重啟modelsim。查看這3個庫是否在library框裡面。


二、 在ISE環境下,調用synplify,生成後模擬所需要的文件。
之所以要在ISE環境下調用synplify,主要是因為方便!我也嘗試過在synplify環境下綜合設計文件,然後在ISE里編譯synplify生成的edif文件。但是不成功。ISE在第三方工具支持方面做的是比較好的,感覺跟用ISE直接綜合一樣。不過有一個缺點是看不了RTL原理圖。你可以在synplify中打開ISE生成的synplify工程文件,解決在ISE中不方便查看synplify綜合結果的問題。現在,就要開始第二個大步驟了!
第一步:創建ISE工程文件。選擇好器件。注意Design Flow中一定要選擇Synplify Pro Verilog。
第二步:綜合設計文件,也就是verilog文件。
ISE就會自動調用synplify。(如果沒有的話,那可能是你的系統環境變數沒有設置好)。此時會彈出一個對話框,要你選擇synplify的liscense。(這步本來不用說的。如果沒有對話框彈出來的話,也不要緊)隨便選擇一個,就等結果了。

第三步:生成後模擬需要的文件。
我們可以看到在Implement Design中有三個大分支,這對應著三種模擬。按你的需要按下相應的圖標,生成modelsim後模擬所需要的文件,下面對生成的文件和生成這些文件的圖標進行說明。

第三步:在彈出的對話框里,選擇SDF項。把ISE生成的SDF文件添加進出。如下圖:

記住Apply to Region這一項要寫好。它對應的是你的tb文件(就是測試文件)調用的頂層模塊名。(不是頂層模塊名!!)比如你的測試文件是text,例化頂層模塊top為i_top,那你應該這樣填:text/i_top或者/text/i_top。如果是第一種模擬,此步可以省略。

第四步:添加library。
我們創建的那三個庫終於派上用場了!我們要添加的就是這3個。選擇library項,添加這3個庫。你的庫建在哪裡,就去哪裡找!這個也不用說了吧

第五步:選擇要模擬的模塊。
你先不要急,看清楚再選。(有些朋友性子急,駕輕就熟就選了)
我們要選的模擬模塊可不止一個,如下圖,用CTRL鍵實現!!選了之後點0k!!

閱讀全文

與modelsim編譯源文件相關的資料

熱點內容
編譯程序輸入一個字元串 瀏覽:406
圓命令畫法 瀏覽:307
如果給電腦e盤文件加密 瀏覽:801
javaswing項目 瀏覽:778
androidsdksetup 瀏覽:1005
pdf怎麼設置中文 瀏覽:128
安卓手機用什麼軟體看倫敦金 瀏覽:966
魅族文件夾無名稱 瀏覽:789
蘇黎世無人機演算法 瀏覽:872
核桃編程和小碼王的融資 瀏覽:686
微積分教材pdf 瀏覽:727
寫python給微信好友發消息 瀏覽:338
蚊帳自營米加密 瀏覽:422
學校推薦核桃編程 瀏覽:805
湖南農信app怎麼導明細 瀏覽:475
福特abs編程 瀏覽:511
如何自學安卓手機 瀏覽:439
以太坊源碼共識機制 瀏覽:912
單片機探測器 瀏覽:874
demo編程大賽作品怎麼運行 瀏覽:54