欧美成人永久免费_欧美日本五月天_A级毛片免看在线_国产69无码,亚洲无线观看,精品人妻少妇无码视频,777无码专区,色大片免费网站大全,麻豆国产成人AV网,91视频网络,亚洲色无码自慰

當前位置:網(wǎng)站首頁 >> 作文 >> modelsim 腳本精選(五篇)

modelsim 腳本精選(五篇)

格式:DOC 上傳日期:2023-04-27 19:20:43
modelsim 腳本精選(五篇)
時間:2023-04-27 19:20:43     小編:zdfb

每個人都曾試圖在平淡的學習、工作和生活中寫一篇文章,。寫作是培養(yǎng)人的觀察,、聯(lián)想、想象,、思維和記憶的重要手段。相信許多人會覺得范文很難寫,?下面我給大家整理了一些優(yōu)秀范文,,希望能夠幫助到大家,我們一起來看一看吧,。

modelsim 腳本篇一

modelsim的基本仿真流程大致分以下幾個步驟:建庫,、編譯工程,、前后仿真、調(diào)試等,。modelsim仿真既可以在modelsim界面操作,,也可以用do文件實現(xiàn),這里結(jié)合學習的教程,、網(wǎng)上看到的資料,,和實際遇到的一些問題,分別做一整理小結(jié),。

1.建庫

建庫包括altera庫和xilinx庫,,同時都包括verilog和vhdl。這里只建了verilog庫,,vhdl和verilog步驟相同,。

對于altera庫主要包括lpm元件庫、mega_function庫atera_mf,、altera原語庫altera_primitive和各器件系列模型庫,。前三種是調(diào)用altera模塊的必備庫,第四種是進行綜合后功能仿真和布線后時序仿真需要的庫,,和器件系列有關(guān),,只選對應(yīng)系列即可。

altera庫創(chuàng)建和編譯步驟如下:

a)在modelsim安裝目錄下新建文件夾,,命名altera_lib,,以存放編譯后的庫文件,可以在altera_lib下新建verilog和vhdl兩個子文件夾,,分別存放verilog和vhdl庫,。b)打開modelsim,新建library,,file->new->library..c)如下圖,,創(chuàng)建lpm庫,路徑e:modeltech_10.1aaltera_libveriloglpm

d)添加庫文件,,并編譯,,compile-> compile …,出現(xiàn)compile source files窗口,,library 指定到lpm下,,查找范圍,選quartus安裝目錄下… edasim_lib目錄里的仿真原型文件:220model.v,,點compile,,點done。

到此,lpm庫建立完畢,。

e)同理,,建立altera_mf庫添加 altera_mf.v,建立primitive庫添加altera_primitive.v 建立各系列的模型庫,,命名可用系列名加_ver“xxx_ver”,,也可隨意吧,添加各系列的xxx_atoms.v,。

這里,,也可以把以上庫放在一個文件夾,這樣做簡單,,一次就搞定,,分開也就是條理清楚,沒人去看,,所以沒必要,。

f)文件,為的是讓modelsim能自動map到已經(jīng)編譯的這些庫上,。先去掉只讀屬性,,在[library]和[vcom]之間加上:庫名=庫路徑[絕對路徑或者相對路徑],相對路徑是相對于modelsim安裝路徑,,modelsim安裝路徑用$model_tech表示,。

這里所有庫都放在e:modeltech_10.1aaltera_lib下,庫名是altera_lib,,這里只添加一句: altera_lib = e:modeltech_10.1aaltera_lib

g)保存退出,,只讀屬性,防止亂改,。至此altera庫建立完畢,。

xlinx庫創(chuàng)建和編譯步驟如下:

相比altera,xilinx建庫很方便,。xilinx有批處理命令,,直接在console命令窗口,輸入compxlib命令,,調(diào)出編譯庫的窗口,只讀屬性,。設(shè)置如下圖:

next,,選擇語言:

next,選擇需要編譯的器件:

netx-> next,選擇輸出路徑,,launch compile process,,等待編譯完成。只讀屬性。至此xilinx庫建立完畢,。

2.編譯工程

編譯工程主要包括:code,、testbench、建立工程,、建立工程庫,、映射、編譯等,。code主要有code思想和風格,,在verilog部分涉及。testbench,,下邊給出一個公用模板,,基于這個方便修改,可以根據(jù)自己的習慣建一個temp_tb.v,。

modelsim界面編譯工程:

a)新建工程:打開modelsim,,file-> new-> project..,指定工程名,、路徑,、工程庫。

b)add existing file

c)add testbench file ….d)編譯,,compile –> complie all

e)編譯語法查錯,,直到編譯通過。至此編譯完畢,。

3.功能和時序仿真

仿真是在編譯的基礎(chǔ)上,,進行的功能調(diào)試,包括綜合前功能仿真,、綜合后功能仿真和布局布線后時序仿真,。

modelsim界面綜合前仿真:

a)指定頂層,開始仿真;simulation-> start simulation …,,在work 庫中,,指定testbench,ok,,開始仿真,。

b)查看仿真結(jié)果,打開wave,,信號,,加入wave

c)運行,查看波形,。run-> run all ….至此,,簡單的modelsim界面綜合前仿真介紹完畢。

modelsim界面綜合后仿真:

綜合后仿真需要quartus綜合后的網(wǎng)表文件(以altera為例),a)綜合后的網(wǎng)表的生成: quartus工程名右鍵-> setting –> eda tool setting, 雙擊simulation,,選擇eda軟件modelsim,,選擇輸出網(wǎng)表路徑,如圖

b)more settings ….將 generate netlist for functional simulation only 設(shè)置為on

c)保存,,全編譯,。

d)

檢查一下?/modelsim/psyth/source 里面,可以發(fā)現(xiàn),,已經(jīng)生成了一個*.vo 文件,。這個就是需要的網(wǎng)表文件。(vhdl 的輸出網(wǎng)表是*.vho 后綴名的)

e)將vo文件添加到工程,,指定testbench 文件top_tb.v,,同前邊一樣進行仿真。

e)得到的仿真結(jié)果

modelsim界面布局布線后仿真:

布局布線后仿真需要綜合網(wǎng)表文件和添延時文件*.sdo(verilog)或*(vhdl);

a)quartusii 里面設(shè)置重新把generate netlist for functional simulation only 設(shè)置成off,。

b)指定延時文件

這里,,region要為頂層文件在tb里的例化名。c)運行,,查看波形,,波形帶有延時

進行modelsim仿真

在modelsim中使用do文件是非常方便的進行仿真的一種方法,的項目比較大,,特別是幾個人分開做的時候,,前后模塊的聯(lián)合仿真比較重要,查看的信號比較多,,使用了do文件可以自動仿真,,省去很多體力活。

下面是編寫do文件的一般步驟:

a).quit-sim : 首先退出原來仿真的工程,。

b).cd : 設(shè)置工作目錄的路徑,,就是你所要建立的工作目錄work要放在哪里。

c).vlib work

: 在工作目錄下建立一個work目錄,,請注意不要用操作系統(tǒng)直接新建一 個work的文件夾,,因為用操作系統(tǒng)建立的work文件夾并沒有modelsim se自動生成的_info文件。還有個問題是,,當你的軟件工程里需要用到軟核時,,可能會需要一些庫,但這些庫ise軟件中是沒有的,,此時就需要我們自己新建庫了,,并映射到當前目錄下。我們只自己新建的庫一般放在work庫前面建立,。

d).vmap work : 將新建的work庫映射到當前工作目錄下(當前目錄就是第一步中的目錄了)。其他新建的庫也要這樣的方法映射。

e).vlog +acc –work work “file_path/*.v” : 編譯“file_path”目錄下所有.v文件,,并將 其添加進工作庫(work)中,,包括ip生成的v文件也要編譯的?;蛘撸簐log-f top_tb.f,,top_tb.f是.v的列表文件。編譯時可以分開單獨編譯,,但是一定要注意順序,,先編譯被調(diào)用的文件。在綜合后仿真和布局布線后仿真的時候,,這里添加綜合后網(wǎng)表和tb即可,。vhdl 用vcom編譯。

對于xilinx工程在仿真的時候還需要用到一個文件,,那就是glbl.v這個庫文件,。它是存放在xilinx安裝目錄下,我們直接編譯它并添加時工作庫(work)就可以了,。特別需要說明的是,,在仿真軟核的時候,在xps軟件里點擊simulation-> generate simulation hdl files會在工程目錄中生成一個simulaton文件夾,,這個文件夾里的東西就是軟核仿真時所需要的仿真文件了,。所以我們需把simulaton里所以的v文件都編譯一次,這樣才能仿真軟核,。

f).vsim-l altera_lib-novopt _tb : 這是沒有調(diào)用ip core時的仿真命令,,注意后面的參數(shù)top_tb必須為testbench中的模塊名。布局布線后仿真是這里要指定延時文件,,vsim-l altera_lib-novopt-sdfmax /top_tb/top= _tb g).do 運行添加wave tcl,,這里可以給信號分組,添加顏色,,設(shè)置波形屬性等,。h).run –all 設(shè)定運行時間,run 1000ms等,。

i).在do里可以用file copy/file delete 來對臨時文件進行操作,。

至此,modelsim仿真總結(jié)完畢,。這里僅為了簡單記錄仿真方法和流程,,旨在簡單明了,對更深入的和更詳細的有待進一步補充,。

附件 一,、testbench 模板

//////////////////////////////////////////////////////////////////////////////// // company:

// engineer:

// // create date:

// design name:

// module name:

// target device:

// tool versions:

// description: //

// dependencies: //

// revision: //

// additional comments: //

////////////////////////////////////////////////////////////////////////////////

`timescale 1ns / 1ps module top_tb;

//*************************parameter declarations****************************** parameter

clk_period = 20;//clk = 50mhz

//************************internal declarations*********************** //************************** register declarations ****************************

reg

clk;reg

reset;

//********************************wire declarations************************** //******************************main body of code*************************** //--initial reg data--initial begin

end //----------generate reference clock input to tb----------------

initial

begin

clk = 1'b1;end

always

#(clk_period/2)clk =!clk;

//--resets--

initial

begin

rst_n = 1'b1;

#(10*clk_period)rst_n = 1'b0;

#(100*clk_period)rst_n = 1'b1;

end

//-----------------------------data transfer--

initial begin

#(10*clk_period);@(negedge data)

begin

end end

//-----------------------------simulation end--

initial begin #(10*clk_period);if()

//end sign

begin

$display(“-------test passed-------”);

end else begin

$display(“

error: test failed!

”);end $stop;end

//------------------------instantiate top module------------------------

top #(.parameter1

(1),,//.parameter2

(0)

//)top_inst(.a(a),);

endmodule ////////////////////////////////////////////////////////////////////////////////

附件二,、do 模板

//////////////////////////////////////////////////////////////////////////////// #!/bin/bash #this bash shell document is used to verilog project simulation #author:iyoyoo

echo “***************** end pre-project ********************************” quit-sim

echo “***************** go to work dir ********************************” #cd / #cd d:/quartus/ep4ce15f/lcd/simulation

echo “***************** start to setup work lib************************” vlib work echo “***************** start to compile ******************************” vlog-f top_tb.f

echo “***************** set up reference library ***********************” vmap altera_lib e:/modeltech_10.1a/altera_lib

echo “***************** delet pre-temp files *************************” #file delete../simulation/ #file delete../simulation/modelsim/

echo “***************** copy temp file *********************************” #file copy../source/../simulation/ #file copy../simulation/modelsim/../simulation/

echo “***************** start to simulation **************************” #-pli

---for debussy #-sdfmax /top_tb/top=

-----for post synthesis sim

vsim-l altera_lib-novopt _tb

echo “***************** add signal to vawe **************************” do

echo “***************** start to run

******************************” run-all

echo “***************** delete temp files ***************************” #file delete../simulation/ #file delete../simulation/modelsim/ ////////////////////////////////////////////////////////////////////////////////

附件三,、file.f模板

//////////////////////////////////////////////////////////////////////////////// +licq_all+ +access+r

//../simulation/modelsim/

-for post synthesis simulation

../source/top.v

../simulation/top_tb.v

+libext+vmd+.v-y $quartus_rootdir/eda/sim_lib ////////////////////////////////////////////////////////////////////////////////

附件三、file.f模板

////////////////////////////////////////////////////////////////////////////////

view signals stucture wave onerror {resume} quietly waveactivatenextpane {} 0

#-color green for all signal is green #-color green blue yellow pink orchid red salmon orange

# top_tb group add wave-itemcolor blue-noupdate-expand-group top_tb-format logic-radix hexadecimal /top_tb/*

# sub group add wave-itemcolor green-noupdate-expand-group sub-format logic-radix hexadecimal /top_tb/sub/*

treeupdate [setdefaulttree] waverestorecursors {{cursor 1} {10000 ns} 0} configure wave-namecolwidth 364 configure wave-valuecolwidth 100 configure wave-justifyvalue left configure wave-signalnamewidth 0 configure wave-snapdistance 10 configure wave-datasetprefix 0 configure wave-rowmargin 4 configure wave-childrowmargin 2 configure wave-gridoffset 0 configure wave-gridperiod 1 configure wave-griddelta 40 configure wave-timeline 0 configure wave-timelineunits ps update waverestorezoom {10000 ns} {10000 ns}

////////////////////////////////////////////////////////////////////////////////

modelsim 腳本篇二

modelsim的自動化腳本仿真平臺

自動化仿真平臺由tcl語言搭建,,大規(guī)模設(shè)計使用此平臺讓仿真便捷不少,。大體上用tcl語言進行modelsim仿真的流程如下:

1.建立庫

2.映射庫到物理目錄 3.編譯源代碼 4.啟動仿真器 5.執(zhí)行仿真 tcl語言的語法

vlib :建立庫。格式 vlib

,。庫名缺省值是work vmap:映射邏輯庫名,,將邏輯庫名映射到庫路徑。語法格式vmap work

vdir:顯示指定庫內(nèi)容,。語法格式vdir –lib

vlog:編譯verilog源代碼,,庫名缺省時編譯到work,文件按順序編譯,。語法格式vlog –work

.v

.v vcom:編譯vhdl源代碼,,庫名缺省時編譯到work,文件按順序編譯,。語法格式 vcom –work

.vhd

.vhd vsim: 啟動仿真器,。語法格式vsim –lib

vhdl vsim top_entity top_architecture 仿真entity/architecture對也能選擇一個結(jié)構(gòu) verilog vsim top_levela top_level2 仿真多個top級模塊 vsim命令的參數(shù)

-l

:后面跟上仿真的庫名

-t

:指定仿真的時間分辨率;單位可以是{fs,ps,ns,ms,sec,min,hr}如果用了verilong的`timescale指令,,將使用這個設(shè)計中的最小時間精度,;時間進度可選項(缺省是ns)-sdfmin |-sdftyp|-sdfmax

=

:注釋sdf文件;是可選項,;使用實例名也是可選項,;如果沒有使用,sdf用于頂級

add wave /tb/ * :該命令作用是將tb.v中模塊tb下所有的信號加到波形文件中,,注意*前要加空格 run: 執(zhí)行命令,。語法格式run

按照timesteps指定的時間長度執(zhí)行仿真 run命令的參數(shù):-

指定運行的timesteps數(shù)量,單位可用{ fs,ps,ns,ms,sec }-step :到下一個hdl狀態(tài)的的步驟-continue:繼續(xù)上次在-step或斷點后的仿真-all:一直運行 所需文件

除了本身的設(shè)計文件之外,,此仿真平臺還要有以下文件:

tb.v: 測試激勵文件

glbl.v: 使用xilinx ipcore的就需要此文件 define.v: 定義了全局變量

: 腳本文件,,文件 : 主要的控制文件 src.f: 設(shè)計文件的路徑列表

cfg.f: ise安裝目錄下verilog庫文件的路徑

下面為各個文件的內(nèi)容

vsim-do “do ;” 2. quit-sim vlib work vlog-f src.f-f cfg.f../src/tb.v vsim-t ps-l xilinxcorelib_ver-l unisims_ver-l secureip-l simprims_ver-l unimacro_ver-l simprim-l unimacro-l unisim-l xilinxcorelib log-r /* view signals wave # do add wave/top/ * run –all

.f(不需要)

+licq_all+ +access+r-o0-work work +libext+.vmd+.v-y g:/iselib14_5/secureip-y g:/iselib14_5/simprims_ver-y g:/iselib14_5/unimacro_ver-y g:/iselib14_5/unisims_ver-y g:/iselib14_5/xilinxcorelib_ver-y g:/iselib14_5/simprim-y g:/iselib14_5/unimacro-y g:/iselib14_5/unisim-y g:/iselib14_5/xilinxcorelib /* included files containing parameters and definitions */ +incdir+../src

.f /* source code */../src/define.v../src/tb.v../src/glbl.v../src/top.v../src/rx/bit_align_machine.v../src/rx/rx.v../src/rx/rx_dut.v../src/rx/rx_top.v../src/tx/ctl.v../src/tx/tx.v../src/tx/tx_dut.v../src/tx/tx_top.v

遇到的問題 error1

這是因為沒有仿真glbl.v文件,解決方法vsim中加入glbl,。vsim-t ps error 2 是因為編譯仿真沒有添加glbl.v error 3.因為沒有關(guān)閉仿真優(yōu)化,,解決方法如下2: 文件的修改

1,添加庫的路徑

2.關(guān)掉自動優(yōu)化選項

error 4

原因是 文件中沒有添加庫文件,。原來的文件如下

文件如下

error 5

原因:不需要編譯cfg.f文件,。文件中刪除掉 –f cfg.f

modelsim 腳本篇三

modelsim 仿真方法總結(jié)

modeling 仿真工具是model公司開發(fā)的。它支持verilog,、vhdl以及他們的混合仿真,。modelsim各版本的使用方法大體一致,,modelsim仿真主要分為前仿真和后仿真。下面來具體介紹modelsim的仿真方法,,涉及quartus-modelsim聯(lián)合(使用)仿真的差異會特別提示,。

前仿真與后仿真說明 1.1 前仿真

前仿真也稱為功能仿真、行為仿真,。旨在驗證電路的功能是否符合設(shè)計要求,其特點是不考慮延遲(包括門延遲與線延遲),,主要驗證電路與理想情況是否一致,。前仿真需要用到rtl級代碼(由源代碼經(jīng)過綜合后產(chǎn)生)與testbench。

1.2)后仿真

后仿真也稱為時序仿真或者布局布線仿真,。是指在電路已經(jīng)映射到特定的工藝環(huán)境以后,,綜合考慮門延遲與線延遲的影響,驗證電路在一定的時序條件下是否存在時序違規(guī)以及能否滿足設(shè)計構(gòu)想的過程,。需要用到的文件是——從布局布線結(jié)果中抽象出來的門級網(wǎng)表,、testbench和后綴名為sdo或者sdf的標準時延文件。

注:擴展名為sdo和sdf的標準時延文件包含門延遲與實際布線延遲,,能較好的反應(yīng)芯片的實際工作情況,。

二)modelsim仿真主要有以下幾個步驟:

(1)建立庫并映射庫到物理目錄;(2)編譯源代碼(包括testbench),;(3)執(zhí)行仿真,; 解釋: ①庫:modelsim中有兩類仿真庫。一種是工作庫,,默認名為work;另一種是資源庫,。work庫中存放當前工程下所有已經(jīng)編譯過的文件,所以編譯前一定要建立一個work庫,。資源庫存放work庫中已經(jīng)編譯文件所要調(diào)用的資源,,這樣的資源可能有很多,它們被存放在不同的資源庫內(nèi),。(例如要想對綜合在cyclone芯片中的設(shè)計做后仿真,,就需要有一個名為cyclone_ver的資源庫。)

映射庫用于將已經(jīng)預(yù)編譯好的文件所在目錄映射為一個modelsim可識別的庫,。(此即是為仿真庫建立一個邏輯映像的行為過程,,后面會提到,在modelsim中新建庫時,,create a new library and a logical mapping to it或a map to an existing libraryd的提示)

上述三個步驟是大的框架,,前仿真和后仿真均是按照這個框架進行的,建立modelsim工程對前后仿真來說都不是必須的,。下面分別介紹每一步的操作,。

2.1)建立庫

在執(zhí)行一個仿真前先建立一個單獨的文件夾,,將操作對象文件放在該文件夾下面。然后啟動modelsim軟件將modelsim當前路徑改動到此文件下,。修改方法是file>change directory,。

注意:上面說的是獨立運行modelsim仿真的情況。當采用quartus聯(lián)合modelsim仿真時,,在quartus里面設(shè)置第三方eda仿真工具后,,編譯成功會自動在quartus工程目錄下面創(chuàng)建一個simulationmodelsim的文件夾,此文件夾等同于獨立運行moddelsim仿真時最先建立的文件夾,。另quartus聯(lián)合modelsim仿真,,modelsim默認路徑即為其自動創(chuàng)建文件夾simulationmodelsim下,不必人為更改,。

啟動modelsim后,,建立仿真庫。點擊file>new>library,出現(xiàn)對話框,,選擇a new library and a logical mapping to it(已默認),,在library name 中輸入要創(chuàng)建庫的名稱。

總結(jié)步驟為:啟動modelsim-->點擊file-->chang directory(如需更改路徑的話),;再file-->new-->(project)-->library,,進行相關(guān)設(shè)置。即可,。

2.2)編寫源代碼及testbench;在編寫目標測試文件(testbench)之前,,我們先寫完目標文件(既可在quartus中編寫,也可以在modelsim中編寫),,把它編譯進工作庫,。(當然此步也可以等到和測試文件寫完以后一起編譯)。源代碼的編寫就不用介紹了,,下面介紹編寫testbench的兩種方法,。

a)可以在modelsim內(nèi)直接編寫測試文件,而且modelsim提供各種testbench模板,,我們只需更改其中小部分即可,。在modelsim中執(zhí)行file>new>source>library或者直接點新建文件,會出現(xiàn)一個verilog(或vhdl)文本編輯頁面,,編輯測試文件即可,。另modelsim中提供各種測試文件模板,直接拿過來用會減少工作量,。在verilog文本編輯頁面空白處右鍵點擊show language templates,然后會出現(xiàn)一個加載工程,,接著在剛才文本編輯窗口左邊出現(xiàn)一個language templates窗口,雙擊creat testbench會出現(xiàn)一個創(chuàng)建向?qū)?,選擇specify design unit工作庫下,,work工作庫中的目標文件(即為目標文件配套testbench),點next,。可以指定testbench的名稱以及要編譯到的庫等,,此處我們使用默認設(shè)置直接點finish,。這時在testbench內(nèi)會出現(xiàn)對目標文件的各個端口的定義還有調(diào)用函數(shù)接下來,設(shè)計者可以自己往testbench內(nèi)添加內(nèi)容了,,我們只需更改其中的少量部分,,即可完成testbench,然后保存為.v格式即可。按照前面的方法(點中文件后右鍵,,選中compile即進行該文件的編譯,,或者點擊菜單欄中的compile菜單,然后選中要編譯的文件)把testbench文件也編譯到工作庫中,。

b)在 quartus內(nèi)編寫并編譯 testbench,之后將testbench 和目標文件放在同一個文件夾下,,按照前面的方法把 testbench 文件和目標文件都編譯到工作庫中之后,。

另如果在工作庫中沒有該文件(在testbench文件沒有端口的情況下),則在simulate——>start simulate卡片中去掉優(yōu)化選項enable optimization之后再重新編譯,,即可在工作庫中找到該文件,。

三)執(zhí)行仿真(分別說明前仿真和后仿真)3.1)前仿真

前仿真相對來說簡單些,在執(zhí)行到上面一步,,把需要的文件編譯到作庫后,,我們只需點simulation>start simulation或快捷按鈕。會出現(xiàn)startsimulation對話框,,點擊design標簽選擇work庫(工作庫)中的測試文件然后點ok既可以,。在主界面中會多出來一個objects窗口,里面顯示 testbench 里定義的所信號引腳,在workspace里也會多出來一個sim標簽,。右鍵點測試文件,,選擇add->add to wave,然后將出現(xiàn)wave窗口,,現(xiàn)在就可以仿真了,。3.2)后仿真

后仿真與前仿真步驟大體相同,只不過中間需要添加仿真庫(和所選器件資源庫,,例如在原理圖文件中用到ip core,我們這里就要把相關(guān)的_mf.v庫加進來,。)網(wǎng)表和延時文件的步驟。

后仿真的前提是quartus已經(jīng)對要仿真的目標文件進行編譯,,注意引腳的分派,。文件(網(wǎng)表文件)文件(時延文件)。具體操作過程又有兩種方法,,一種是通過quartus調(diào)用modelsim,,文件以及需要的仿真庫加到modelsim中,,操作簡單;一種是手動將需要的文件和庫加入modelsim進行仿真,,這種方法可以增加主觀能動性,,充分發(fā)揮modelsim的強大仿真功能。

a)通過quartus調(diào)用modelsim;使用這種方法時首先要對quartus進行設(shè)置,。先運行quartus,,打開要仿真的工程,點菜單欄的assignments,,點eda tool settings,,選中左邊category中的simulation.,在右邊的tool name中選modelsim(verilog),選中下面的run gate level simulation automatically after complication,。

quartus中的工程準備好之后點擊start complication按鈕,,此時modelsim會自動啟動,,而quartus處于等待狀態(tài)(前提是系統(tǒng)環(huán)境變量中用戶變量中path要設(shè)置好modelsim安裝路徑)。而且work庫中出現(xiàn)了需要仿真的文件。文件編譯到work庫,,并建立相應(yīng)的資源庫,。

編寫測試臺程序,,文件所在的目錄,,以方便在需要手動仿真時使用。點compile在出現(xiàn)的對話框中選中剛寫好的測試文件,,然后點compile按鈕,編譯結(jié)束后點done,,這時在work庫中會出現(xiàn)測試臺文件。

點擊simulate->start simulation或快捷按鈕 會出現(xiàn)start simulate對話框,。點擊design標簽選擇work庫下的測試文件,,然后點擊libraries標簽在search library中點擊add按鈕,選擇仿真所需要的資源庫(如果不知道需要選擇哪個庫,,可以先直接點compile看出現(xiàn)的錯誤提示中說需要的庫名,,然后再重復(fù)上述步驟)。

再點start simulate對話框的sdf標簽,。在出現(xiàn)的對話框的sdf 時延文件路徑,。在apply to region框內(nèi)有一個“/”,在“/”的前面輸入測試臺文件名,,在它的后面輸入測試臺程序中調(diào)用被測試程序時給被測試程序起的名稱,。(一般為dut)

b)手動仿真;

手動仿真需要自己添加文件和編譯庫,,但可以充分發(fā)揮modelsim強大的仿真功能,。操作時也要先對quartus進行設(shè)置,設(shè)置與前面相同只是不要選中run gate level simulation automatically after complication。然后啟動modelsim,,將當前路徑改到“工程文件夾simulationmodelsim”下,。向該文件夾中手動添加所需要的仿真文件,文件,、相關(guān)芯片資源庫(后綴_atoms.v)以及原理圖情況下的ip core相關(guān)資源(后綴-mf.v),。然后在modelsim中點編譯,將這些文件編譯到工作庫下,,點擊simulate->start simulation或快捷按鈕 會出現(xiàn)start simulate對話框,。這里和a情況相比只有l(wèi)ibraries標簽在search library時不一樣,其余2項都一樣,。libraries標簽在search library下選中simulationmodelsim下work庫,。后面觀察波形與前面方法一致。

兩種方法的區(qū)別在于,,文件,,和資源庫的建立方法不同,手動仿真需要自己添加這些文件到工作庫下,。建議使用手動添加的方式,,有利于我們對軟件使用的更好理解。

以上方法可供參考,,modelsim軟件自帶的教程也是一個不錯的學習路徑,在help>se pdf documentation>tutorial里面有詳細的功能講解,,使用時可以看看,。

modelsim 腳本篇四

verilog大作業(yè)

系名信息工程系 專業(yè)電子科學與技術(shù) 6010202036-李貝 6010202043-王玉斌 6010202034-解海洋 6010202035-冷健 指導教師史再峰

2012年 10 月 27 日

bmp(全稱bitmap)是window操作系統(tǒng)中的標準圖像文件格式,可以分成兩類:設(shè)備相關(guān)位圖(ddb)和設(shè)備無關(guān)位圖(dib),,使用非常廣,。它采用位映射存儲格式,除了圖像深度可選以外,,不采用其他任何壓縮,,因此,bmp文件所占用的空間很大,。bmp文件的圖 像深度可選lbit,、4bit、8bit及24bit,。bmp文件存儲數(shù)據(jù)時,,圖像的掃描方式是按從左到右、從下到上的順序,。由于bmp文件格式是windows環(huán)境中交換與圖有關(guān)的數(shù)據(jù)的一種標準,,因此在windows環(huán)境中運行的圖形圖像軟件都支持bmp圖像格式。組成

典型的bmp圖像文件由四部分組成:

1:位圖頭文件數(shù)據(jù)結(jié)構(gòu),它包含bmp圖像文件的類型,、顯示內(nèi)容等信息,;

2:位圖信息數(shù)據(jù)結(jié)構(gòu),它包含有bmp圖像的寬,、高,、壓縮方法,以及定義顏色等信息,;

3:調(diào)色板,,這個部分是可選的,有些位圖需要調(diào)色板,,有些位圖,,比如真彩色圖(24位的bmp)就不需要調(diào)色板;

4:位圖數(shù)據(jù),,這部分的內(nèi)容根據(jù)bmp位圖使用的位數(shù)不同而不同,,在24位圖中直接使用rgb,而其他的小于24位的使用調(diào)色板中顏色索引值,。對應(yīng)的數(shù)據(jù)結(jié)構(gòu)

1:bmp文件組成

bmp文件由文件頭,、位圖信息頭、顏色信息和圖形數(shù)據(jù)四部分組成,。

圖像文件頭

1)1-2:(這里的數(shù)字代表的是“字”,即兩個字節(jié),,下同)圖像文件頭。

0x4d42=’bm’,,表示是windows支持的bmp格式,。(注意:查ascii表b 0x42,m0x4d,bftype 為兩個字節(jié),b為low字節(jié),,m為high字節(jié)所以bftype=0x4d42,,而不

是0x424d,但注意)2)3-6:整個文件大小,。4690 0000,,為00009046h=36934。

3)7-8:保留,,必須設(shè)置為0,。4)9-10:保留,必須設(shè)置為0,。

5)11-14:從文件開始到位圖數(shù)據(jù)之間的偏移量(14+40+4*(2^bibitcount)),。4600 0000,為00000046h=70,,上面的文件頭就是35字=70字節(jié),。

位圖信息頭

6)15-18:位圖圖信息頭長度,。

7)19-22:位圖寬度,以像素為單位,。8000 0000,,為00000080h=128。

8)23-26:位圖高度,,以像素為單位,。9000 0000,為00000090h=144,。

9)27-28:位圖的位面數(shù),,該值

總是1。0100,,為0001h=1,。

10)29-30:每個像素的位數(shù)。有1(單色),,4(16色),,8(256色),16(64k色,,高彩色),,24(16m色,真彩色),,32(4096m色,,增強型真彩色)。1000為0010h=16,。

11)31-34:壓縮說明:有0(不壓縮),,1(rle 8,8位rle壓縮),,2(rle 4,4位rle壓縮,,3(bitfields,,位域存放)。rle簡單地說是采用像素數(shù)+像素值的方式進行壓縮,。t408采用的是位域存放方式,,用兩個字節(jié)表示一個像素,位域分配為r5b6g5,。圖中0300 0000為00000003h=3,。12)35-38:用字節(jié)數(shù)表示的位圖數(shù)據(jù)的大小,該數(shù)必須是4的倍數(shù),,數(shù)值上等于(≥位圖寬度的最小的4的倍數(shù))×位圖高度×每個像素位數(shù),。0090 0000為00009000h=80×90×2h=36864。

13)39-42:用象素/米表示的水平分辨率。a00f 0000為0000 0fa0h=4000,。

14)43-46:用象素/米表示的垂直分辨率,。a00f 0000為0000 0fa0h=4000。

15)47-50:位圖使用的顏色索引數(shù),。設(shè)為0的話,,則說明使用所有調(diào)色板項。

16)51-54:對圖象顯示有重要影響的顏色索引的數(shù)目,。如果是0,,表示都重要。彩色板

17)(55+0)到(50-1+2^bibitcount):彩色板規(guī)范,。對于調(diào)色板中的每個表項,,用下述方法

來描述rgb的值: 1字節(jié)用于藍色分量 1字節(jié)用于綠色分量 1字節(jié)用于紅色分量

1字節(jié)用于填充符(設(shè)置為0)對于24-位真彩色圖像就不使用彩色板,因為位圖中的rgb值就代表了每個象素的顏色,。

如,,彩色板為00f8 0000 e007 0000 1f00 0000 0000 0000,其中:

00f8為f800h = 1111 1000 0000 0000(二進制),,是藍色分量的掩碼,。

e007 為 07e0h = 0000 0111 1110 0000(二進制),是綠色分量的掩碼,。

1f00為001fh = 0000 0000 0001 1111(二進制),,是紅色分量的掩碼。

0000 總設(shè)置為0,。

將掩碼跟像素值進行“與”運算再進行移位操作就可以得到各色分量值,。看看掩碼,,就可以明白事實上在每個像素值的兩個字節(jié)16位中,,按從高到低取5、6,、5位分別就是r,、g、b分量值,。取出分量值后把r,、g、b值分別乘以8,、4,、8就可以補齊第個分量為一個字節(jié),再把這三個字節(jié)按rgb組合,,放入存儲器(同樣要反序),,就可以轉(zhuǎn)換為24位標準bmp格式

了,。圖像數(shù)據(jù)陣列

18)55(無調(diào)色板)-bfsize:每兩個字節(jié)表示一個像素。陣列中的第一個字節(jié)表示位圖左下角的象素,,而最后一個字節(jié)表示位圖右上角的象素,。

存儲算法

bmp文件通常是不壓縮的,所以它們通常比同一幅圖像的壓縮圖像文件格式要大很多,。例如,,一個800×600的24位幾乎占據(jù)1.4mb空間。因此它們通常不適合在因特網(wǎng)或者其它低速或者有容量限制的媒介上進行傳輸,。根據(jù)顏色深度的不同,,圖像上的一個像素可以用一個或者多個字節(jié)表示,它由n/8所確定(n是位深度,,1字節(jié)包含8個數(shù)據(jù)位),。圖片瀏覽器等基于字節(jié)的ascii值計算像素的顏色,然后從調(diào)色板中讀出相應(yīng)的值,。更為詳細的信息請參閱下面關(guān)于位圖文件的部分,。n位2n種顏色的位圖近似字節(jié)數(shù)可以用下面的公式計算:bmp文件大小約等于 54+4*2的n次方+(w*h*n)/8,其中高度和寬度都是像素數(shù),。需要注意的是上面公式中的54是位圖文件的文件頭,,是彩色調(diào)色板的大小。另外需要注意的是這是一個近似值,,對于n位的位圖圖像來說,,3 [1] 盡管可能有最多2n中顏色,一個特定的圖像可能并不會使用這些所有的顏色,。由于彩色調(diào)色板僅僅定義了圖像所用的顏色,,所以實際的彩色調(diào)色板將小于。如果想知道這些值是如何得到的,,請參考下面文件格式的部分,。由于存儲算法本身決定的因素,根據(jù)幾個圖像參數(shù)的不同計算出的大小與實際的文件大小將會有一些細小的差別,。源代碼:

`timescale 1ns/100ps module transport;parameter longsize=65554;reg [24:1] meme[longsize:1],b;

integer e,m,n,i,j,w,clk;

always@(*)begin initial fork begin w=$fopen(“”,“rb”);

e=$fread(meme,w);

$fclose(w);end always #50 clk=~clk;

join always begin

m=$fopen(“”);

n=0;

always@(posedge clk)

begin repeat(18)begin

n=n+1;b=meme[n];

$fwrite(m,“%h”,b);

end end

always@(posedge clk)

begin

for(j=0;j<=255;j=j+1)for(i=1;i<=256;i=i+1)

begin n=18+256*i-j;b=meme[n];

$fwrite(m,“%h”,b);end end

$fclose(m);

end

end endmodule

仿真后objects中的數(shù)值:

仿真后波型:

中的數(shù)值:

使用到的軟件:

在winhex中的數(shù)值:

原圖

經(jīng)verilog轉(zhuǎn)換后的圖:

設(shè)計說明書: 首先用$fread系統(tǒng)任務(wù)將bmp圖片的二進制代碼讀入存儲器meme中,;由initial子語句產(chǎn)生clk時鐘信號;由于讀出的二進制代碼的前54個字節(jié)是bmp位圖的基本代碼,因此在對圖片進行翻轉(zhuǎn)時前54個字節(jié)的位置不變,。由于文件格式為256*256*24bit文件,所以后面為256*256個像素,每24位代表一個像素,,因為bmp文件的數(shù)據(jù)是從左到右,,從下到上的。也就是說,,從文件中最先讀到的是圖象最下面一行的左邊第一個象素,,然后是左邊第二個象素??接下來是倒數(shù)第二行左邊第一個象素,,左邊第二個象素??依次類推,最后得到的是最上面一行的最右一個象素,。所以要實現(xiàn)圖片的順時針旋轉(zhuǎn)應(yīng)該把meme中像素逆時針旋轉(zhuǎn)90

度,。

其次,中。然后用for語句在每一個clk信號上升沿來臨時把翻轉(zhuǎn)后256*256

中,。

文件即可得到翻轉(zhuǎn)

后的圖片,。李貝大作業(yè)工作總結(jié)

這次的大作業(yè)對我們每一個人都是一個挑戰(zhàn),以前,我們學得知識很死,總不會學以致用,每天都感覺無所事事。通過這次大作業(yè)的完成,,鍛煉了自己的解決問題能力,。

剛接觸這個大作業(yè)的時候,給人一種很高端的感覺,,但也意味著一切都待從頭開始,,首先就是對bmp文件的理解,經(jīng)過大量的查閱資料,,知道了bmp文件的構(gòu)成,,了解了對于256*256*24bit文件,其大小應(yīng)該為256*256*3+54=196662字節(jié),;自此豁然開朗,;對于bmp文件和2進制之間轉(zhuǎn)化的問題,經(jīng)過許多曲折,,終于得到了winhex,,經(jīng)過親手應(yīng)用,逐漸掌握了這個軟件,,完成了2進制與bmp文件之間的轉(zhuǎn)化,;在編寫程序時,同樣遇到了很大的阻力,,感覺課堂上學的東西完全不夠用,,通過自己以及團隊對verilog語言的進一步學習,知道了其系統(tǒng)函數(shù)$fread可以從bmp文件中讀取二進制數(shù)字,,在對時鐘信號處理時,,對周期的大小也進行了考慮,通過這次大作業(yè),,使我更加熟悉了硬件描述語言,,對modelsim這款軟件的操作也更加熟練啦,懂得了團隊合作的重要性,!總之,,收獲很大!

冷健大作業(yè)工作總結(jié)

終于完成了這次verilog大作業(yè),。在完成大作業(yè)的過程中,,我們小組遇見了不少的難題,。遇到很多不會的東西,但是通過我與小組隊員的通力合作,,通過請教專業(yè)的同學,,通過上網(wǎng) 7 搜索資料。我們還是完成了,。雖然有點不盡如人意,。通過這次的大作業(yè),讓我們更加深刻的了解了合作的意義,。組員之間相互合作,,那就無論什么困難都可以解決。這就是團隊力量的重要性,。還有一點感想就是打鐵還需自身硬,。自己沒有點真功夫是不行的。所以平時一定要多積累,,多看書,,平時多看書,那么實際生活中就多一條解決途徑,。就可以少走些彎路,,少吃些苦。?還有一點,,我們需要仔細和耐性,,由于在編寫程序的過程中,有一些疏忽和遺漏,,總是個別字符出錯或者符號出錯,。回頭又得花時間去檢查去糾正,。所以就必須特別強調(diào)細心

和耐心,。以上就是我的心得。解海洋大作業(yè)工作總結(jié)

在這次的大作業(yè),,使我懂得了,,知識與實踐動手能力的不同,雖然經(jīng)過一段時間的verilog的學習,,對語法知識有一定的了解,,但真正要自己動手還是有所能力的欠缺。而且還不知道從何入手,,還是參考了前輩一些經(jīng)驗,,知道了怎么做,按什么順序做。首先了解bmp位圖的格式,,還要想到怎么把圖讀進去等等很多的問題。不過在這次的鍛煉中,,我對verilog語言有了更深的理解,,同時也學到小組合作的精神。

王玉斌大作業(yè)工作總結(jié)

這次verilog大作業(yè)是四個人一起完成的作品,,在這次大作業(yè)中學到了很多,,雖然有些地方和老師的要求,但是在考試的緊張復(fù)習中還是完成了大作業(yè),。讓我學到了很多關(guān)于verilog圖像相位的知識,,對于以后的學習有很大幫助。

在完成作業(yè)過程中遇到了很多困難:

首先,,我們不知道bmp圖片能直接轉(zhuǎn)換為二進制代碼,,后來跟同學交流了解了可以直接轉(zhuǎn)換為二進制代碼,bmp圖片輸入的時候出現(xiàn)了輸入不進去的問題,。還有在處理256*256的圖片時,,我們誤認為把一張圖片壓縮成256*256就可以,后來才發(fā)現(xiàn)是剪切,,二不是壓縮,,這樣導致后來讀出的文件中含有不確定值x。

其次是起初我們仿真不出波形,,開始不知道從何下手,,通過我們共同努力,從網(wǎng)上,,課本,,資料查找,發(fā)現(xiàn)我們的仿真時間選擇過小,。導致波形無法顯示,,最后增大了仿真時間,得到

了波形,。

最后,,個人覺得有些地方用matlab可以更簡便,比如把程序直接導入matlab函數(shù)中,,方便以后調(diào)用,。總之,,大作業(yè)的成功是我們四個人共同努力的成果,,讓我們學到了很多課堂上沒學到的東西,同時也遇到了很多困難,,也有很多分歧,,但是最終在一起的努力下我們完成大

作業(yè),。

modelsim 腳本篇五

煤礦安全生產(chǎn)仿真培訓平臺

全面提高煤礦職工隊伍的安全素質(zhì),增強依法自我安全保護的意識,,堅持“安全第一,、預(yù)防為主”的生產(chǎn)方針,促進全國煤礦安全生產(chǎn)狀況的穩(wěn)定好轉(zhuǎn)和優(yōu)化煤礦生產(chǎn),,北京金視和科技股份有限公司致力于vr技術(shù)在礦業(yè)領(lǐng)域的研發(fā),,結(jié)合煤礦領(lǐng)域的實際情況,并聯(lián)合煤礦開發(fā)和安全生產(chǎn)方面的相關(guān)高校專家共同研發(fā)制成煤礦安全生產(chǎn)仿真培訓平臺,。煤礦安全生產(chǎn)仿真培訓平臺以煤礦職工安全生產(chǎn),、優(yōu)化技術(shù)設(shè)計、安全技能培訓和提高礦產(chǎn)效益作為主要目的,。利用國際領(lǐng)先的虛擬現(xiàn)實和三維仿真技術(shù)開發(fā)而成,。煤礦安全生產(chǎn)仿真培訓平臺緊緊圍繞著煤礦安全生產(chǎn),搭建了完整的,、系統(tǒng)的,、可視化的應(yīng)用平臺。該系統(tǒng)由兩大部分構(gòu)成,,分別為理論培訓和實戰(zhàn)操作培訓,,提供基于虛擬現(xiàn)實的人機交互演練,大幅度提升學員的實際操作能力和安全防范意識,。

產(chǎn)品特點

1,、真實準確,知識庫豐富

煤礦安全生產(chǎn)仿真培訓平臺以國家統(tǒng)一的煤礦培訓教材《煤礦新工人崗前安全培訓教材》為基礎(chǔ),,整個系統(tǒng)不但客觀的復(fù)原教材中的關(guān)鍵知識點,,而且還將實際生產(chǎn)操作進行了深度擴展結(jié)合,從而提高了系統(tǒng)知識的豐富性,,提高了學員對相關(guān)操作規(guī)程的理解和認識,。系統(tǒng)內(nèi)置的數(shù)據(jù)庫管理模塊,可以詳細準確的記錄所有學員的學習,、訓練以及考核數(shù)據(jù),,具有安全生產(chǎn)的規(guī)范性和準確性。

2,、三維交互

煤礦安全生產(chǎn)仿真培訓平臺以獨特的三維仿真技術(shù)將煤礦井下環(huán)境完整的呈現(xiàn),,全新的三維仿真交互操作突破了以往傳統(tǒng)的教學方式,讓學員能夠以多種視角對井下環(huán)境進行多維度的學習和認識,。

3,、立體可視化

煤礦安全生產(chǎn)仿真培訓平臺以國際先進的三維仿真技術(shù)為基礎(chǔ)平臺,搭載定制化開發(fā)的立體顯示設(shè)備,讓用戶佩戴液晶快門立體眼鏡即可在任意環(huán)境下呈現(xiàn)井下立體畫面,。立體顯示設(shè)備堅固穩(wěn)定,,精致便攜,且不受場地限制即可沉浸式體驗立體畫面,。自由操作,,煤礦安全生產(chǎn)仿真培訓平臺包含兩種學習模式:順序模式和自由模式。分別為初級學習和強化訓練提供人性化的學習方式,。順序模式可以根據(jù)煤礦安全生產(chǎn)的工序流程進行逐步學習,在每項工序開始前會彈出提示框,,提示下一步應(yīng)該執(zhí)行哪項任務(wù),,這樣可以幫助學員快速了解相關(guān)開采及預(yù)防的流程。自由模式可按照學員自身需求,,有針對性的對某項任務(wù)進行深入學習,,而不需要每次都從新開始學習整個工序流程。

4,、在線式多人協(xié)同

煤礦安全生產(chǎn)仿真培訓平臺支持多人在線式協(xié)同作業(yè),,學員通過了解井下相關(guān)任務(wù)流程后,可同時在線扮演各個工種的角色,,通過班長的指揮或者工序的流程完成各自的任務(wù),。在沒有下井之前便可以在虛擬的環(huán)境中進行開采訓練,積累開采經(jīng)驗,,提前發(fā)現(xiàn)問題并及時解決,,有效的防止因人為因素引發(fā)的礦難事故。

全文閱讀已結(jié)束,,如果需要下載本文請點擊

下載此文檔
a.付費復(fù)制
付費獲得該文章復(fù)制權(quán)限
特價:5.99元 10元
微信掃碼支付
已付款請點這里
b.包月復(fù)制
付費后30天內(nèi)不限量復(fù)制
特價:9.99元 10元
微信掃碼支付
已付款請點這里 聯(lián)系客服