當前位置:編程學習大全網 - 源碼下載 - 模電仿真實驗的源文件是什麽

模電仿真實驗的源文件是什麽

新手期的時候壹般都是仿真自己寫出來的代碼,沒有包含IP核的仿真。(想必接觸腳本的至少應該已經知道怎麽寫源代碼和測試文件了)

先說明壹下我的文件結構

總***就兩個文件夾,rtl裏放的是我們設計的源代碼,也就是.v文件;

sim裏放的有測試文件、bat後綴文件、modelsim腳本文件(也就是下面說的.do文件,下圖中是tcl文件)。如下圖,我是以壹個計數器為例。

總***可歸結為三種文件,文件壹般包含有do文件,bat文件,以及自己設計的v文件(包括源代碼和測試文件等)。

其中的do文件就是操縱modelsim的腳本文件,這個文件的後綴壹般都是寫成do,實際上也可以是別的字母任意定義(別人是這麽說,當然v是不能作為後綴的),我試過sh、b和tcl的後綴,是可行的。以下腳本文件以tcl後綴為例。

而bat文件就是windows系統的腳本文件,內容只有壹行代碼。

modelsim -do sim.sh //sim.sh就是我們的modelsim腳本文件。

復制

我們只需要在Windows下雙擊就可以自動打開進行仿真。

作用就是在modelsim下運行sim.sh

v文件不用多說,自然是測試文件以及設計的verilog源代碼。

下面開始進行簡單的腳本設計(附帶註釋):

transcript on

if {[file exists dyq_work]} {

vdel -lib dyq_work -all

}

#上面的意思是如果已有dyq_work這個庫,就把它全部刪了

#新建dyq_work庫,這是modelsim必須要做的事,作用就是把自己的源代碼編譯

#進這個庫中。

vlib dyq_work

#將dyq_work映射到work中,因為操作的時候modelsim是默認對work進行的,

#所以如果不這樣modelsim就找不到這個庫。

vmap work dyq_work

#編譯源代碼和測試文件,這樣寫就是默認編譯進了dyq_work中了

vlog ../sim/*.v

vlog ../rtl/*.v

#運行仿真下面這個ps是設置仿真器達到的精度為ps,tb_counter是測試文件頂層命名。

vsim -t ps -novopt +notimingchecks work.tb_counter

#vsim -t ps -voptargs="+acc" work.tb_counter

#下面將信號顯示調整為十進制無符號形式

radix unsigned

#添加測試文件中包含的reg和wire的所有波形

add wave *

#添加測試文件中例化的模塊內部的cnt信號的波形(counter_u1是指在測試文

#件中例化的模塊名稱,這個要根據自己實際進行修改,比如例化壹個pll

# pll pll0(....);

#那麽這段就應當改為tb_counter/pll0/*,意思就是把pll0模塊的所有引腳拉

#出來看),像這兩行代碼就是把cnt和ena這兩個信號拉出來看。

add wave -position insertpoint sim:/tb_counter/counter_u1/cnt

add wave -position insertpoint sim:/tb_counter/counter_u1/ena

#運行

run -all

復制

寫完之後就可以雙擊bat文件自動打開仿真了。

這裏需要註意壹下,如果妳在10.7以及之後的版本進行的,會有這個報錯

** Error (suppressible): (vsim-12110) All optimizations are disabled because the -novopt option is in effect. This will cause your simulation to run very slowly. If you are using this switch to preserve visibility for Debug or PLI features, please see the User’s Manual section on Preserving Object Visibility with vopt. -novopt option is now deprecated and will be removed in future releases.

這是說-novopt在後面的版本不能使用了,這時候就需要將腳本代碼sim.sh進行修改壹下

把這行代碼修改壹下

vsim -t ps -novopt +notimingchecks work.tb_counter

復制

修改為下面這樣就可以進行仿真了

  • 上一篇:python的語法有什麽特點?
  • 下一篇:常德源代碼開發
  • copyright 2024編程學習大全網