久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

Modelsim 仿真方法總結

時間:2019-05-12 12:59:34下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《Modelsim 仿真方法總結》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《Modelsim 仿真方法總結》。

第一篇:Modelsim 仿真方法總結

Modelsim 仿真方法總結

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

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

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

1.2)后仿真

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

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

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

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

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

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

2.1)建立庫

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

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

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

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

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

A)可以在modelsim內直接編寫測試文件,而且modelsim提供各種testbench模板,我們只需更改其中小部分即可。在modelsim中執行File>New>Source>Library或者直接點新建文件,會出現一個verilog(或VHDL)文本編輯頁面,編輯測試文件即可。另modelsim中提供各種測試文件模板,直接拿過來用會減少工作量。在verilog文本編輯頁面空白處右鍵點擊Show Language Templates,然后會出現一個加載工程,接著在剛才文本編輯窗口左邊出現一個Language Templates窗口,雙擊Creat Testbench會出現一個創建向導,選擇Specify Design Unit工作庫下,work工作庫中的目標文件(即為目標文件配套testbench),點Next。可以指定Testbench的名稱以及要編譯到的庫等,此處我們使用默認設置直接點Finish。這時在Testbench內會出現對目標文件的各個端口的定義還有調用函數接下來,設計者可以自己往Testbench內添加內容了,我們只需更改其中的少量部分,即可完成testbench,然后保存為.v格式即可。按照前面的方法(點中文件后右鍵,選中compile即進行該文件的編譯,或者點擊菜單欄中的compile菜單,然后選中要編譯的文件)把Testbench文件也編譯到工作庫中。

B)在 Quartus內編寫并編譯 Testbench,之后將Testbench 和目標文件放在同一個文件夾下,按照前面的方法把 Testbench 文件和目標文件都編譯到工作庫中之后。

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

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

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

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

后仿真的前提是quartus已經對要仿真的目標文件進行編譯,注意引腳的分派。并生成modelsim仿真所需要的.vo文件(網表文件)和.sdo文件(時延文件)。具體操作過程又有兩種方法,一種是通過Quartus調用Modelsim,Quartus在編譯之后自動把仿真需要的.vo文件以及需要的仿真庫加到modelsim中,操作簡單;一種是手動將需要的文件和庫加入modelsim進行仿真,這種方法可以增加主觀能動性,充分發揮modelsim的強大仿真功能。

A)通過quartus調用modelsim;使用這種方法時首先要對Quartus進行設置。先運行Quartus,打開要仿真的工程,點菜單欄的Assignments,點EDA Tool settings,選中左邊Category中的Simulation.,在右邊的Tool name中選ModelSim(Verilog),選中下面的Run Gate Level Simulation automatically after complication。

Quartus中的工程準備好之后點擊start complication按鈕,此時modelsim會自動啟動,而quartus處于等待狀態(前提是系統環境變量中用戶變量中PATH要設置好modelsim安裝路徑)。而且work庫中出現了需要仿真的文件。Modelsim自動將quartus生成的.vo文件編譯到work庫,并建立相應的資源庫。

編寫測試臺程序,最好放在生成的.vo文件所在的目錄,以方便在需要手動仿真時使用。點Compile在出現的對話框中選中剛寫好的測試文件,然后點Compile按鈕,編譯結束后點Done,這時在Work庫中會出現測試臺文件。

點擊simulate->Start Simulation或快捷按鈕 會出現start simulate對話框。點擊Design標簽選擇Work庫下的測試文件,然后點擊Libraries標簽在Search Library中點擊Add按鈕,選擇仿真所需要的資源庫(如果不知道需要選擇哪個庫,可以先直接點Compile看出現的錯誤提示中說需要的庫名,然后再重復上述步驟)。

再點start simulate對話框的SDF標簽。在出現的對話框的SDF File框內加入.sdo時延文件路徑。在Apply To Region框內有一個“/”,在“/”的前面輸入測試臺文件名,在它的后面輸入測試臺程序中調用被測試程序時給被測試程序起的名稱。(一般為DUT)

B)手動仿真;

手動仿真需要自己添加文件和編譯庫,但可以充分發揮modelsim強大的仿真功能。操作時也要先對quartus進行設置,設置與前面相同只是不要選中Run Gate Level Simulation automatically after complication。然后啟動modelsim,將當前路徑改到“工程文件夾simulationmodelsim”下。向該文件夾中手動添加所需要的仿真文件,包括.vo文件、相關芯片資源庫(后綴_atoms.v)以及原理圖情況下的IP core相關資源(后綴-mf.v)。然后在modelsim中點編譯,將這些文件編譯到工作庫下,點擊simulate->Start Simulation或快捷按鈕 會出現start simulate對話框。這里和A情況相比只有Libraries標簽在Search Library時不一樣,其余2項都一樣。Libraries標簽在Search Library下選中simulationmodelsim下work庫。后面觀察波形與前面方法一致。

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

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

第二篇:modelsim仿真小結(最終版)

Modelsim仿真小結

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

1.建庫

建庫包括Altera庫和Xilinx庫,同時都包括Verilog和VHDL。這里只建了Verilog庫,VHDL和Verilog步驟相同。

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

Altera庫創建和編譯步驟如下:

a)在Modelsim安裝目錄下新建文件夾,命名altera_lib,以存放編譯后的庫文件,可以在altera_lib下新建Verilog和VHDL兩個子文件夾,分別存放Verilog和VHDL庫。b)打開Modelsim,新建Library,file->new->library..c)如下圖,創建lpm庫,路徑E:modeltech_10.1aaltera_libVeriloglpm

d)添加庫文件,并編譯,compile-> compile …,出現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.ini文件,為的是讓modelsim能自動map到已經編譯的這些庫上。先去掉只讀屬性,在[Library]和[vcom]之間加上:庫名=庫路徑[絕對路徑或者相對路徑],相對路徑是相對于modelsim安裝路徑,modelsim安裝路徑用$MODEL_TECH表示。

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

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

Xlinx庫創建和編譯步驟如下:

相比altera,xilinx建庫很方便。xilinx有批處理命令,直接在console命令窗口,輸入compxlib命令,調出編譯庫的窗口,先改掉modelsim安裝目錄下modelsim.ini只讀屬性。設置如下圖:

Next,選擇語言:

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

Netx-> next,選擇輸出路徑,launch compile process,等待編譯完成。完成后改回modelsim.ini只讀屬性。至此xilinx庫建立完畢。

2.編譯工程

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

Modelsim界面編譯工程:

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

b)Add existing file

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

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

3.功能和時序仿真

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

Modelsim界面綜合前仿真:

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

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

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

Modelsim界面綜合后仿真:

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

b)More settings ….將 Generate netlist for functional simulation only 設置為ON

c)保存,全編譯。

d)

檢查一下?/modelsim/Psyth/source 里面,可以發現,已經生成了一個*.vo 文件。這個就是需要的網表文件。(VHDL 的輸出網表是*.vho 后綴名的)

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

e)得到的仿真結果

Modelsim界面布局布線后仿真:

布局布線后仿真需要綜合網表文件和添延時文件*.sdo(Verilog)或*_vhd.sdo(VHDL);

a)QuartusII 里面設置重新把Generate netlist for functional simulation only 設置成OFF。

b)指定延時文件

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

4.用tcl文件.do 進行modelsim仿真

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

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

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

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

c).vlib work

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

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

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

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

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

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

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

附件 一、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/pika_ani.mif #file delete../simulation/modelsim/top_v.sdo

echo “***************** copy temp file *********************************” #file copy../source/pika_ani.mif../simulation/ #file copy../simulation/modelsim/top_v.sdo../simulation/

echo “***************** start to simulation **************************” #-pli novas.dll

---for debussy #-sdfmax /top_tb/top=top_v.sdo

-----for post synthesis sim

vsim-L altera_lib-novopt work.top_tb

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

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

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

echo “***************** delete temp files ***************************” #file delete../simulation/pika_ani.mif #file delete../simulation/modelsim/top_v.sdo ////////////////////////////////////////////////////////////////////////////////

附件三、file.f模板

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

//../simulation/modelsim/top.vo

-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}

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

第三篇:verilog圖像翻轉報告_modelsim仿真

Verilog大作業

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

2012年 10 月 27 日

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

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

1:位圖頭文件數據結構,它包含BMP圖像文件的類型、顯示內容等信息;

2:位圖信息數據結構,它包含有BMP圖像的寬、高、壓縮方法,以及定義顏色等信息;

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

4:位圖數據,這部分的內容根據BMP位圖使用的位數不同而不同,在24位圖中直接使用RGB,而其他的小于24位的使用調色板中顏色索引值。對應的數據結構

1:BMP文件組成

BMP文件由文件頭、位圖信息頭、顏色信息和圖形數據四部分組成。

圖像文件頭

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

0x4d42=’BM’,表示是Windows支持的BMP格式。(注意:查ascii表B 0x42,M0x4d,bfType 為兩個字節,B為low字節,M為high字節所以bfType=0x4D42,而不

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

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

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

位圖信息頭

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

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

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

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

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

10)29-30:每個像素的位數。有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簡單地說是采用像素數+像素值的方式進行壓縮。T408采用的是位域存放方式,用兩個字節表示一個像素,位域分配為r5b6g5。圖中0300 0000為00000003h=3。12)35-38:用字節數表示的位圖數據的大小,該數必須是4的倍數,數值上等于(≥位圖寬度的最小的4的倍數)×位圖高度×每個像素位數。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:位圖使用的顏色索引數。設為0的話,則說明使用所有調色板項。

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

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

來描述RGB的值: 1字節用于藍色分量 1字節用于綠色分量 1字節用于紅色分量

1字節用于填充符(設置為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 總設置為0。

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

了。圖像數據陣列

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

存儲算法

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

`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(“lena.bmp”,“rb”);

e=$fread(meme,w);

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

join always begin

m=$fopen(“lena.txt”);

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中的數值:

仿真后波型:

轉換后在lena.txt中的數值:

使用到的軟件:

在winhex中的數值:

原圖

經verilog轉換后的圖:

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

度。

其次,在always子語句中用repeat語句在每一個clk上升沿把meme中的前十八個單元經緩存器b依次讀入lena.txt中。然后用for語句在每一個clk信號上升沿來臨時把翻轉后256*256

個像素經緩存器b依次讀入lena.txt中。

最后用WinHex軟件把得到的lena.txt文件轉換成二進制數據另存為.Bmp文件即可得到翻轉

后的圖片。李貝大作業工作總結

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

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

冷健大作業工作總結

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

和耐心。以上就是我的心得。解海洋大作業工作總結

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

王玉斌大作業工作總結

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

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

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

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

了波形。

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

作業。

第四篇:altera_modelsim6.1g仿真總結

軟件環境說明:quartusII 7.2 sp3+altera_modelsim6.1g

(作者:劉國華)

1,軟件的安裝

詳細請看《如何破解ModelSim-Altera 6.1g.pdf》。(一個注意的地方就是環境變量設置完后一定要重新啟動)2,軟件的設置

《如何解決在Quartus II無法使用ModelSim-Altera模擬的問題.pdf》。3,用altera_modelsim6.1g做功能仿真,設置地方有3處如下:

接著就是運行仿真軟件,進行仿真: 方法有兩種:

①編譯完后,通過自動運行

②編譯完后,手動運行,一般運行Gate Level Simulation

仿真圖如下,由于是功能仿真,所以沒有延時信息出現:

4,關于do文件的使用技巧問題:

執行的默認腳本在:工程所在目錄simulationmodelsim下,例如我的工程:

該do文件的內容為: transcript on if {[file exists gate_work]} { #判斷庫是否存在,存在的話就先刪除

vdel-lib gate_work-all } vlib gate_work

#建立一個庫 vmap work gate_work #映射庫

vlog-vlog01compat-work work +incdir+.{counter.vo} #編譯文件 vlog-vlog01compat-work work +incdir+E:/pratice/verilog/my_counter {E:/pratice/verilog/my_counter/testbench.v}

#編譯文件 vsim-t 1ps-L cyclone_ver-L gate_work-L work top_tb #啟動仿真 add wave * #把testbench.v的頂層信號加入到波形窗口中 view structure view signals #打開信號窗口 run –all #執行仿真、modelsim窗口指示的就是這個腳本:

如把以下的選項勾起,并指定一個do文件:

這個時候上面那個counter_run_msim_gate_verilog.do文件的腳本就會發生以下變化: transcript on if {[file exists gate_work]} { vdel-lib gate_work-all } vlib gate_work vmap work gate_work

vlog-vlog01compat-work work +incdir+.{counter.vo} vlog-vlog01compat-work work +incdir+E:/pratice/verilog/my_counter {E:/pratice/verilog/my_counter/testbench.v}

vsim-t 1ps-L cyclone_ver-L gate_work-L work top_tb #執行自己寫的do文件,這樣的話,就可以很好的控制自己想看的信號 do E:/pratice/verilog/my_counter/simulation/modelsim/my.do my.do文件如下: view signal view wave add wave * #將設計文件的內部信號cnt以無符號十進制的形式加入到波形圖 add wave-radix unsigned /top_tb/tb_counter/cnt

run –all

5,用altera_modelsim6.1g做布局布線后的仿真(后仿真),設置地方有2處如下:

仿真圖如下,可以看到下圖明顯存在延時信息:

第五篇:仿真機總結

七月仿真機總結

這個月學習班仿真機我們練習了事故處理和冷態啟動,本次的練習總結如下:

事故處理過程中我主要是配合鍋爐輔機的調整。

一、空預器跳閘,立即關閉各風煙擋板,打掉一臺磨,調整爐膛負壓正常,視壓力快速減負荷,視排煙溫度,調整燃燒。仿真機三臺磨可以維持排煙溫度,正常運行中如果無法維持再打掉一臺磨投一層油槍,保證燃燒穩定。

二、兩臺磨組斷煤,立即加大運行磨組出力,同時投AC層油槍,將跳閘磨冷風全開,熱風全關,防止磨出口溫度高跳閘。視壓力減負荷。調整監視好各水位、氣溫。

三、一臺電泵跳閘,立即將另一臺電泵出力加到最大,打掉一臺磨,快速減負荷,視水位繼續減小磨出力。由于一臺電泵運行氣溫波動比較大加強調整。待水位穩定后檢查備用泵,處理跳閘泵,盡快恢復。

四、減溫水全部中斷,立即打掉一臺磨,降低其它磨組出力,適當減負荷,同時將減溫水調整門關至百分之十左右,防止突然來水氣溫突降。

冷態啟動過程從設備的檢查恢復到點火掛閘。期間操作還算順利,但在最后掛閘后汽機開始沖轉沒能及時發現,檢查不到位,粗心大意。

本次事故過程中我負責加減負荷,但現在小網運行,加減負荷不能大幅度操作,遇到事故也不能隨便解除AGC。這也給我們敲響了警鐘,在今后遇到問題一定要多考慮,切記盲目操作。加強學習,保證機組的安全運行。

童曉霖

下載Modelsim 仿真方法總結word格式文檔
下載Modelsim 仿真方法總結.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    仿真復習總結范文大全

    系統的特性:整體性、管良性、目的性、環境適應性 ? ? ? ? 復習要點 系統仿真的概述 系統仿真中的隨機變量 系統仿真的模型 ? 系統仿真的結果分析? 系統仿真的方法? 系統仿真的應用?......

    仿真繪圖總結(大全)

    Simulink仿真繪圖總結:建議使用方法4,方法1,2不宜使用。 1. 運行仿真模型,用Scope觀察結果,用ALT+PrintScreen抓取圖形,Ctrl+V粘貼到Word。2. 使用Scope打印功能,在Word中插入圖形......

    仿真培訓總結

    仿真培訓總結 今天是我第一次學習**電廠仿真機系統,我先從冷態啟動開始學習。首先是投入水系統,依次投入循環水,開式水,凝輸水,汽包上水,除氧器上水,凝汽器上水,凝結水,閉式水,定冷水......

    仿真培訓基地總結

    ××發電廠仿真培訓基地總結 ××××年將要過去,回顧仿真機一年的培訓情況,在各級領導的指導下我們做了大量的工作,取得了一定的成果,簡要總結如下: 一、對內培訓:加強對內培訓,夯......

    仿真教學總結

    仿真教學工作總結 大同電力高級技工學校 韓云 2010年10月 仿真教學工作總結 大同電力高級技工學校 韓云 我于2006年被評為仿真高級指導教師后,主要從事仿真專業課教學,四多......

    運動仿真總結

    一. 用于變形物體或特殊軌跡運動的物體 1.做關聯動畫時,注意“會變形的零件”要在“裝配體中”(插入新零件)建模得到,好讓新零件與其他零件相應部位關聯,從而使改變這些原有零件......

    仿真培訓總結

    仿真培訓總結 2011年7月25日至29日,由中國化工教育協會與北京東方仿真軟件技術有限公司聯合舉辦的2011年“假期仿真軟件培訓班”在北京電子科技職業學院舉行,共有來自全國十幾......

    外貿仿真實驗總結

    通過上機實際操作,比較深刻的了解到外貿實務當中的一些工作。通過仿真的實際操作,較為熟悉的掌握了外貿出口的部分技能,以下是對這一學期上課內容的小結: 一、達成交易: 1.與客戶......

主站蜘蛛池模板: 国产成人一区二区三区| 日日碰狠狠添天天爽| 国产欧美日韩在线观看一区二区| 无码国产成人久久| 欧美性大战xxxxx久久久√| 国产白丝无码视频在线观看| 曰韩人妻无码一区二区三区综合部| 成人无码男男gv在线观看网站| 国产精品熟妇视频国产偷人| 亚洲精品综合第一国产综合| 波多野结衣一区二区三区高清av| 伊人久久大香线蕉综合影院首页| 无码免费一区二区三区| 各种虐奶头的视频无码| 国产成人精品a∨一区二区| 男人吃奶摸下挵进去好爽| 免费精品99久久国产综合精品| 久久久国产99久久国产久| 人妻熟女一区二区aⅴ水野朝阳| 亚洲人亚洲精品成人网站| 欧性猛交ⅹxxx乱大交| 国产超碰无码最新上传| 中文国产日韩欧美二视频| 国产人妻精品一区二区三区不卡| 麻豆久久亚洲av成人无码电影| 在厨房被c到高潮a毛片奶水| 亚洲精品亚洲人成在线观看下载| 一个人在线观看免费视频www| 亚洲经典千人经典日产| 国产午夜福利在线观看视频| 波多野结衣aⅴ在线| 国产精品亚洲а∨无码播放麻豆| 亚洲熟女中文字幕男人总站| 一本大道无码日韩精品影视丶| 久久狠狠爱亚洲综合影院| 精品久久久久久中文字幕人妻最新| 亚洲国产成人一区二区精品区| 天天狠天天天天透在线| 女人18毛片a级毛片| 国产精品a成v人在线播放| 成人性生交大片免费看视频app|