《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > Modelsim的功能仿真和時序仿真
Modelsim的功能仿真和時序仿真
摘要: 通過對FPGA設計中功能仿真和時序仿真的詳細介紹,有助于熟練應用ModelSim進行一系列仿真,同時也拋磚引玉地引導讀者在實際中發現和應用ModelSim的調試程序、比較波形等其他功能。
Abstract:
Key words :

    FPGA 設計流程包括設計輸入,仿真,綜合,生成,板級驗證等很多階段。在整個設計流程中,完成設計輸入并成功進行編譯僅能說明設計符合一定的語法規范,并不能說明設計功能的正確性,這時就需要通過仿真對設計進行驗證。在FPGA 設計中,仿真一般分為功能仿真(前仿真)和時序仿真(后仿真)。功能仿真又叫邏輯仿真,是指在不考慮器件延時和布線延時的理想情況下對源代碼進行邏輯功能的驗證;而時序仿真是在布局布線后進行,它與特定的器件有關,又包含了器件和布線的延時信息,主要驗證程序在目標器件中的時序關系。在有些開發環境中,如 Xilinx ISE 中,除了上述的兩種基本仿真外,還包括綜合后仿真,轉換(post-translate)仿真,映射后(post-map)仿真等,這樣做完每一步都可進行仿真驗證,從而保證設計的正確性。

   ModelSim 是Mentor Graphics 子公司MentorTechnology 的產品,是當今最通用的FPGA 仿真器之一。ModelSim 功能強大,它支持FPGA 設計的各個階段的仿真,不僅支持VHDL 仿真,Verilog仿真,而且支持VHDL 和Verilog 混合仿真。它不僅能做仿真,還能夠對程序進行調試,測試代碼覆蓋率,對波形進行比較等。ModelSim 有很多版本,像ModelSim/SE 是首要版本, 除此之外還有ModelSim/XE 和ModelSim/AE,分別是為Xilinx公司和Altera 公司提供的OEM 版,其中已包含各公司的庫文件,故用特定公司OEM 版進行仿真時就不需編譯該公司的庫了。

用ModelSim 進行功能仿真  

   進行功能仿真首先要檢查設計的語法是否正確;其次檢查代碼是否達到設計的功能要求。下文主要介紹仿真步驟和測試激勵的加載。

 

仿真步驟

 

(1)建立庫并映射庫到物理目錄

 

因為用ModelSim 進行仿真是建立在仿真庫的基礎上的(此處進行的是功能仿真,因而不用編譯特定廠商的庫),所以首先要建立庫并把庫映射到實際的物理路徑。通常用戶編譯的文件都放在work庫中,所以必須先建立work 庫。有兩種方法建立并映射庫,第一種方法是通過圖形界面,在菜單Design→Create a New Library 彈出對話框,如圖1 所示。在Library Name 中輸入work,如果建立其它庫,可以輸入其它名字。Library Map to 是映射的物理路徑。第二種方法是用命令行的形式,建立庫用ModelSim>vlib<庫名>,映射庫用ModelSim> vmap , 如建立并映射庫work,就可以在ModelSim 主窗口命令提示符下輸入

vlib work

vmap work work

 

(2)編譯源代碼

該步驟主要檢查源文件的語法錯誤。實現方法有兩種,一是通過菜單Design→Compile,出現選擇源文件對話框,選擇要編譯的源文件,編譯即可;二是通過命令行方式,這一步對于VHDL 和Verilog 所使用的命令是不一樣的,對于VHDL 代碼用vcom-work.vhd.vhd , 對于Verilog 代碼用vlog-work.v.v,文件按出現的先后順序編譯,且支持增量編譯。編譯后的文件會放在缺省當前work 庫中。

(3)啟動仿真器

該步驟主要是把所有仿真的文件加載到當前的仿真環境中。實現的方法兩種,一是通過菜單Design→Load Design,出現加載對話框,選擇要仿真的程序即可;二是通過命令行的形式vsim-lib , 這條命令對于VHDL 和Verilog 都一樣。

(4)執行仿真

該步驟是正式執行仿真了,在仿真前最重要的一個步驟就是加載激勵,如要對下面的加法器進行仿真,加法器實體說明如下:

entityAdd is

port(D1: in std_logic_vector(7 downto 0);--輸入

D2: in std_logic_vector(7 downto 0);--輸入

D0: out std_logic_vector(7 downto 0);--輸出

CE: in std_logic;-使能,低有效

Clk: in std_logic);--時鐘

endAdd;

測試激勵的加載 

激勵的加載有四種方法:

(1)命令行方式

這種方法是通過在命令行下直接輸入命令給信號加載激勵,然后進行仿真。如要對上面的加法器進行仿真,則輸入如下命令:

Vsim –t ps work.add

//加載work 庫中的實體add,時間分辨率為ps

Add wave –hex D1

Add wave –hex D2

Add wave –hex D0

Add wave ce

Add wave clk

//把信號加載到波形窗口,hex 表示以16進制顯示

Force ce 0 //對ce 加激勵為0

Force clk 0 0,1 25 –r 50 //對clk 加載激勵

Force D1 16#2 //對D1 加載16 進制數2

Force D2 16#1 //對D2 加載16 進制數1

Run 100 //運行100 個時間單位

如果要仿真其它數據,在命令行中改變激勵

就可以了,仿真的結果如圖2 所示。

(2)宏文件法

這種方法相當于DOS 的批處理。它把所有的命令保存為以do 為后綴名的文件中,稱為宏文件。執行仿真時只要選擇菜單Marco → ExecuteMarco,然后選擇相應的宏文件執行即可,或者在命令行中輸入do<宏文件名>。執行仿真的結果如圖2 所示。

(3)測試文件法

上述兩種方法只適合驗證數據量小的程序,對程序進行簡單驗證,如果要驗證的數據量較大,

上述兩種方法就比較麻煩,現在被廣泛采用的是測試文件法。這種方法其實是要設計者自己編寫測試文件,把要驗證的程序當成測試程序的一個模塊,在測試文件中對要驗證的程序加載激勵。以下就是針對上面加發器的測試文件:

library ieee;

use ieee.std_logic_1164.all

use ieee.std_logic_signed.all

entity tb is

end tb

architecture a_tb of tb is

component Add

port(D1 : in std_logic_vector(7 downto 0);

D2 : in std_logic_vector(7 downto 0);

D0 : out std_logic_vector(7 downto 0);

CE : in std_logic;

Clk: in std_logic);

end component;

signal D1 : std_logic_vector(7 downto 0) :=(other => ‘1’);

signal D2 : std_logic_vector(7 downto 0) :=(other => ‘1’);

signal D0 : std_logic_vector(7 downto 0) :=(other => ‘0’);

signal CE : std_logic := ’0’;

signal Clk : std_logic

begin

dut : Add

port map(D1 => D1,

D2 => D2,

D0 => D0,

CE => CE,

Clk => Clk);

Clk <= not Clk after 25 ns;

process

begin

wait until Clk = ‘1’ and Clk’event;

D1 <= D1+1;

D2 <= D2+2;

end process;

end a_tb;

用這個測試文件產生的仿真波形如圖3 所示:

這種方法可以仿真大量的數據,對程序進行比較全面的仿真。

(4)textio 法

方法(3)產生的激勵數據一般很有規律,也容易分析,但同時也可能造成某些情況無法檢測到。所以做仿真時若希望驗證一些沒有規律的數據,則可以用 textio 方法實現。實際上它的輸入激勵是存儲在dat 文件中的,在測試文件中讀入這些數據,如果用VHDL 編寫程序,需要textio 庫和VHDL93 標準的支持,限于篇幅這里就不詳細介紹,詳情請參見有關文獻。

用ModelSim 進行時序仿真  

時序仿真是FPGA 設計的重要步驟之一,它通常是在做完布局布線后進行,仿真中包含布局布線產生的延時信息。時序仿真的方法和步驟和功能仿真基本相同,但有兩點需要注意:一是一般布局布線后生成的網表并不包含timing 數據,會用一個SDF(Standard Delay Format)文件來存儲timing數據,它通常是由布局布線工具產生,在做時序仿真時要用到。上面啟動仿真器加載時不僅要加載布局布線后生成的源文件,還要加載SDF 文件。二是在用ModelSim SE 版本時,由于不包含特定廠商的庫文件,而在做時序仿真時恰恰與特定的器件相關,要用到這些庫,為了提高仿真速度,通常需要提前編譯這些庫,而且不同廠商編譯庫的方法不盡相同,本文以編譯Xilnx 公司的庫為例,介紹編譯庫的方法。

這種方法是通過在Xilinx 的網站上下載的xilinx_lib_4.tcl 腳本進行的,選擇菜單中的執行宏或者在命令行中輸入source xilinx_lib_4.tcl,會彈出圖4 所示的對話框,在選擇所要編譯的語言后,Xilinx Software Version、編譯的庫、Xilinx 路徑和Modelsim 路徑后就可以進行庫的編譯了。其中較重要的是simprim(做時序仿真時用)和Xilinxcorelib(在進行Xilinx core 的電路仿真時用),這些庫還有對應的Verilog 版本。在進行庫編譯之前,最好把ModelSim 安裝目錄下的modelsim.ini 文件的只讀屬性去掉,這樣可以把編譯后的庫信息加到該文件中,具體信息如下:

simprim = C:/Modeltech_5.5b/simprim

simprims_ver = C:/Modeltech_5.5b/simprims_ver

xilinxcorelib = C:/ Modeltech_5.5b/xilinxcorelib

xilinxcorelib_ver = C:/

Modeltech_5.5b/xilinxcorelib_ver

 

結束語  

通過對FPGA 設計中功能仿真和時序仿真的詳細介紹,有助于熟練應用ModelSim 進行一系列仿真,同時也拋磚引玉地引導讀者在實際中發現和應用ModelSim 的調試程序、比較波形等其他功能。

 

 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          精品动漫3d一区二区三区免费| 玖玖国产精品视频| 亚洲一级二级| 亚洲一区欧美一区| 一区二区成人精品| 亚洲一区二区高清| 一本色道88久久加勒比精品| 欧美成人影音| 欧美日韩一区二| 欧美影院在线播放| 尤物精品国产第一福利三区| 欧美综合第一页| 亚洲日本无吗高清不卡| 欧美一区国产二区| 欧美一区二区在线播放| 久久久久久久久久久一区| 国产精品视频男人的天堂| 国产综合久久久久影院| 欧美国产一区二区三区激情无套| 日韩天堂av| 欧美性猛交xxxx免费看久久久| 在线观看亚洲精品视频| 久久国产精品电影| 国产亚洲亚洲| 在线不卡欧美| 一区二区三区三区在线| 久久婷婷国产麻豆91天堂| 欧美福利视频网站| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美成人有码| 亚洲精品影视| 激情综合中文娱乐网| 亚洲视频在线免费观看| 欧美亚洲综合另类| 久久久免费观看视频| 亚洲欧美日韩精品久久久久| 亚洲一区二区免费在线| 欧美夜福利tv在线| 亚洲第一主播视频| 欧美日韩精品一区二区在线播放| 亚洲人成艺术| 日韩一区二区高清| 欧美精品日韩一本| 国产精品啊啊啊| 欧美在线观看一二区| 欧美极品在线视频| 一区二区三区在线观看视频| 欧美自拍丝袜亚洲| 欧美视频在线看| 久久久www免费人成黑人精品| 亚洲国产精品久久精品怡红院| 一区二区三区视频在线看| 极品日韩久久| 激情成人在线视频| 国产精品亚洲一区二区三区在线| 在线视频亚洲一区| 巨胸喷奶水www久久久免费动漫| 亚洲毛片播放| 国产精品你懂的| 美女主播一区| 久久综合色8888| 亚洲第一福利视频| av不卡在线看| 日韩视频在线播放| 欧美国产高潮xxxx1819| 亚洲少妇诱惑| 99av国产精品欲麻豆| 国产精品福利在线观看网址| 一区二区三区精品久久久| 亚洲亚洲精品在线观看| 亚洲视频1区2区| 国产精品高潮呻吟久久| 欧美日韩三级| 欧美激情一区二区三区全黄| 亚洲福利视频一区二区| 欧美一级精品大片| 国产精品一页| 午夜精品久久久久久久99热浪潮| 1024亚洲| 在线亚洲观看| 在线综合+亚洲+欧美中文字幕| 国产精品国产三级国产aⅴ浪潮| 99re热这里只有精品视频| 亚洲欧美日韩国产中文| 欧美成人激情视频| 亚洲欧美久久久| 久久久久久久网| 91久久国产自产拍夜夜嗨| 欧美影院在线播放| 国产午夜精品在线| 久久久久在线观看| 亚洲精品老司机| 国产精品久久久久一区| 亚洲欧美国产va在线影院| 暖暖成人免费视频| 欧美日韩国产一区二区三区| 好看不卡的中文字幕| 国产情人节一区| 亚洲精品美女久久7777777| 国产日韩精品一区观看| 日韩视频在线观看一区二区| 精品999在线播放| 99精品视频网| 亚洲高清资源综合久久精品| 国产精品乱码久久久久久| 一区二区国产在线观看| 免费不卡视频| 欧美jizz19hd性欧美| 国产原创一区二区| 久久久亚洲欧洲日产国码αv| 99精品国产在热久久| 国产一区二区三区在线播放免费观看| 国产精品成人在线观看| 欧美综合第一页| 欧美肥婆bbw| 美日韩精品免费| 国产日韩欧美一区在线| 国产精品福利久久久| 精品9999| 日韩视频三区| 欧美日韩伊人| 99在线热播精品免费99热| 国产有码一区二区| 一区二区三区产品免费精品久久75| 亚洲欧美三级在线| 欧美成年人视频网站| 亚洲一区二区三区久久| 欧美大片免费观看| 美女被久久久| 国产精品va在线播放| 欧美日韩高清在线一区| 亚洲欧美日本国产有色| 欧美理论电影在线播放| 亚洲欧美日韩精品久久奇米色影视| 夜夜嗨av一区二区三区四区| 久久精品日产第一区二区| 久久精品日韩一区二区三区| 欧美日韩国产经典色站一区二区三区| 国产精品久久久久久av下载红粉| 日韩午夜精品视频| 99国产精品视频免费观看一公开| 欧美精品手机在线| 巨胸喷奶水www久久久免费动漫| 国产精品一区二区三区四区| 久久免费的精品国产v∧| 久久99在线观看| 国产精品国产三级国产a| 在线播放日韩专区| 欧美日韩国产精品一卡| 在线成人欧美| 久久午夜色播影院免费高清| 欧美午夜精品久久久久久久| 中文国产一区| 一本高清dvd不卡在线观看| 黄色亚洲大片免费在线观看| 亚洲欧美激情在线视频| 亚洲国产另类久久精品| 亚洲欧美国产制服动漫| 欧美大片免费看| 日韩午夜在线视频| 亚洲私人影院在线观看| 你懂的视频欧美| 欧美二区在线| 亚洲美女电影在线| 欧美日韩高清区| 国产精品www.| 国产一区二区| 欧美1区2区视频| 国产精品免费一区二区三区在线观看| 国产精品午夜av在线| 欧美成人精品一区二区| 久久久久一本一区二区青青蜜月| 国产精品视频最多的网站| 国产人久久人人人人爽| 久久一区精品| 亚洲精品久久久久久下一站| 国产精品欧美日韩| 狠狠色狠色综合曰曰| 国产欧美日韩麻豆91| 亚洲伦伦在线| 亚洲综合99| 欧美日韩精品免费观看视频完整| 亚洲人成人99网站| 老**午夜毛片一区二区三区| 免费成人毛片| 日韩视频在线观看免费| 狂野欧美激情性xxxx| 欧美紧缚bdsm在线视频| 最新亚洲一区| 亚洲国产日韩在线| 一本色道久久综合亚洲精品不| 亚洲国产欧美在线| 国产精品三区www17con| 久久人人看视频| 国产精品videosex极品| 亚洲欧美综合精品久久成人| 亚洲精品网站在线播放gif| 在线亚洲精品福利网址导航| 尤物在线精品| 欧美成人亚洲成人| 欧美高清视频在线观看| 亚洲一区二区网站| 欧美一区二区三区免费视频| 亚洲欧美一区在线| 国产毛片精品视频| 国产精品国产三级国产普通话99| 亚洲成人在线网站| 国产精品久久久久久久浪潮网站| 国产综合色精品一区二区三区| 亚洲在线不卡| 亚洲美女视频在线免费观看| 欧美日韩亚洲一区三区| 国产精品亚洲综合| 欧美日韩在线直播| 久久精品盗摄| 在线播放亚洲| 国产专区欧美专区| 国产精品视频福利| 久久av红桃一区二区小说| 欧美在线观看一二区| 欧美gay视频| 国产亚洲欧洲一区高清在线观看| 亚洲精品视频在线观看免费| 欧美一级一区| 欧美色图麻豆| 欧美一区二区三区四区高清| 国产精品亚洲综合一区在线观看| 国语精品中文字幕| 亚洲精品你懂的| 久久婷婷亚洲| 亚洲影院免费观看| 亚洲免费播放| 欧美v日韩v国产v| 国内精品久久国产| 香蕉精品999视频一区二区| 欧美一区二区久久久| 亚洲高清久久久| 欧美黑人一区二区三区| 在线精品国产成人综合| 亚洲国产精品成人| 亚洲日韩欧美视频一区| 亚洲高清视频在线观看| 欧美成人69av| 欧美亚一区二区| 国产精品欧美久久| 亚洲欧洲视频| 欧美日韩国产综合在线| 这里只有精品在线播放| 国产精品黄色在线观看| 麻豆9191精品国产| 亚洲级视频在线观看免费1级| 亚洲一区网站| 欧美1区免费| 开元免费观看欧美电视剧网站| 亚洲一区二区欧美| 日韩视频在线一区二区| 欧美日韩国产精品专区| 国产精品一区一区三区| 91久久中文| 亚洲精品偷拍| 欧美在线播放高清精品| 欧美激情亚洲另类| 亚洲一级在线观看| 亚洲精品日韩久久| 久久人91精品久久久久久不卡| 国产一区二区久久精品| 极品尤物av久久免费看| 一本色道久久综合亚洲二区三区| 久久国产精品第一页| 国产亚洲精品7777| 亚洲影音一区| 亚洲午夜久久久久久久久电影网| 一区二区三区国产在线| 国产精品v欧美精品∨日韩| 亚洲精品美女在线观看| 亚洲激情在线观看视频免费| 99国产精品一区| 欧美激情第五页| 久久一日本道色综合久久| 在线观看一区视频| 暖暖成人免费视频| 免费亚洲电影在线观看| 免费观看成人www动漫视频| 国产精品夜色7777狼人| 在线精品视频免费观看| 牛人盗摄一区二区三区视频| 久久国产精品毛片| 久久激情视频久久| 伊人成人在线| 午夜一级在线看亚洲| 欧美三级小说| 久久久亚洲国产天美传媒修理工| 欧美一区二区成人| 亚洲成人在线视频网站| 欧美在线不卡视频| 亚洲激情亚洲| 亚洲国产日韩精品| 亚洲激情在线观看| 国产一区999| 欧美怡红院视频| 亚洲综合99| 国产午夜精品一区二区三区欧美| 欧美一二三区精品| 久久精品99国产精品| 久久伊人免费视频| 欧美精品在线极品| 美女视频一区免费观看| 久久亚洲欧洲| 亚洲精品一区二区在线观看| 亚洲永久视频| 免费在线一区二区| 欧美伊人久久久久久久久影院| 欧美四级剧情无删版影片| 亚洲国产成人高清精品| 先锋影音久久久| 亚洲欧美日韩国产综合精品二区| 亚洲精品永久免费| 国产精品久久久久久久久果冻传媒| 欧美高清免费| 亚洲一区高清| 亚洲图片欧美一区| 在线观看精品一区| 男女精品视频| 日韩网站在线| 久久婷婷丁香| 一区二区三区视频在线看| 国产三级欧美三级日产三级99| 亚洲免费电影在线|