當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]在我們用ModelSim仿真的時候經(jīng)常是修改一點一點修改代碼,這樣會造成一個無奈的操作循環(huán):修改代碼--->編譯代碼--->仿真設(shè)置--->進入仿真頁面--->添加需要觀察的波形--->運

在我們用ModelSim仿真的時候經(jīng)常是修改一點一點修改代碼,這樣會造成一個無奈的操作循環(huán):修改代碼--->編譯代碼--->仿真設(shè)置--->進入仿真頁面--->添加需要觀察的波形--->運行仿真。如果仿真結(jié)果不理想,還得需要重新修改代碼,重復上述的操作。

計算機擅長做重復的事情,為什么不讓計算機代勞呢?

我們可以參照Xilinx ISE是如何調(diào)用ModelSim進行仿真的,尤其是腳本的編寫。

下面一個腳本是我用ISE10.1建立了一個AES256的工程,然后在調(diào)用ModelSim6.5的時候,ISE會生成這幾個腳本文件,AES256_tb.fdo, AES256_tb_wave.fdo 和 AES256_tb.udo。

下面的代碼是AES256_tb.fdo文件的內(nèi)容。

1: vlib work #創(chuàng)建名字是work的庫,這個仿真之前必須做的

2: vcom -explicit -93 "SBOX_ROM.vhd" #編譯vhd代碼

3: vcom -explicit -93 "Inv_SBOX_ROM.vhd"

4: vcom -explicit -93 "AES_package.vhd"

5: vcom -explicit -93 "subbytes.vhd"

6: vcom -explicit -93 "SBOX_ROM_reg.vhd"

7: vcom -explicit -93 "round_key_BRAM.vhd"

8: vcom -explicit -93 "Inv_subbytes.vhd"

9: vcom -explicit -93 "Keyexpansion_Yao.vhd"

10: vcom -explicit -93 "AES256_ENC_DEC.vhd"

11: vcom -explicit -93 "AES256_TOP.vhd"

12: vcom -explicit -93 "AES256_tb.vhd"

13: vsim -t 1ps -lib work AES256_tb #進入仿真設(shè)置,時間單位為1ps,庫指定為work,AES256_tb就是指你的top層設(shè)計的名字

14: do {AES256_tb_wave.fdo} #執(zhí)行*.fdo文件,用來添加信號和變量或者內(nèi)部的寄存器到波形(WAVE)窗口

15: view wave #打開波形窗口

16: view structure #打開架構(gòu)(structure)窗口

17: view signals #打開信號列表窗口

18: run 1000ns #運行1000ns

19: do {AES256_tb.udo} #運行用戶定義的腳本

只要編譯的時候沒有出現(xiàn)語法錯誤或者是找不到定義的庫文件等錯誤提示,一般會很容易的看到仿真的波形,而不用手動進行操作。這樣方便了仿真的整個過程,而無需用很多鼠標點擊操作。

現(xiàn)在通過一個具體的實例來說明如何運用腳本來實現(xiàn)ModelSim的仿真。

工具版本:ISE10.1 ,ModelSim 6.5a

1. 創(chuàng)建ISE工程

首先通過ISE創(chuàng)建test.vhd 和test_tb.vhd文件并添加到工程中,這里不細說如何創(chuàng)建HDL源代碼。

然后配置ISE的仿真器,右鍵選中FPGA芯片,點擊properTIes,然后在Simulator選擇Modelsim-SE VHDL。

 


圖1. 工程屬性

在source窗口選擇“Behavioral SimulaTIon”,可以看到工程中的test_tb.vhd(testbench文件)。選中test_tb.vhd文件,在Process窗口中雙擊Simulate Behavioral Model,ISE開始調(diào)用ModelSim,這是ISE自動生成了三個腳本文件:test_tb.fdo, test_tb_wave.fdo和test_tb.udo。

 


圖2. Behavioral SimulaTIon 窗口

看看三個腳本文件的內(nèi)容吧。

test_tb.fdo內(nèi)容如下:

1: vlib work #添加library

2: vcom -explicit -93 "test.vhd" #編譯test的頂層文件

3: vcom -explicit -93 "test_tb.vhd" #編譯test_tb的testbench文件

4: vsim -t 1ps -lib work test_tb #進入仿真,時間單位1ps,仿真test_tb

5: do {test_tb_wave.fdo} #執(zhí)行*.fdo腳本文件,用于添加仿真波形

6: view wave #打開波形窗口

7: view structure #打開structure窗口

8: view signals #打開信號窗口

9: run 1000ns #仿真運行1000ns

10: do {test_tb.udo} #執(zhí)行*.udo腳本文件,用于執(zhí)行用戶定義的腳本命令

test_tb_wave.fdo內(nèi)容如下():

1: ## Project Navigator simulaTIon template: test_tb_wave.fdo

2: ## You may edit this file to control your simulation.

3: add wave * ##添加Top層所有的端口信號

test_tb.ufo內(nèi)容為空白,是留著給用戶自己添加。

對我們來說最有用的就是test_tb.fdo文件了,只要稍微修改就可以成為一個針對這個工程的很好的用于仿真的腳本。當然我們可以自己手動來編寫類似的腳本,用ISE自動生成主要是為了涂個省事。

2.調(diào)用ModelSim進行仿真

在圖2中,Process窗口中雙擊Simulate Behavioral Model,進入ModelSim仿真環(huán)境。請仔細觀察ModelSim Transcript窗口中消息的輸出。內(nèi)容如下:

1: # do {test_tb.fdo} #<-------執(zhí)行腳本文件

2: # ** Warning: (vlib-34) Library already exists at "work".

3: # Model Technology ModelSim SE vcom 6.5 Compiler 2009.01 Jan 22 2009 #<-----編譯test.vhd得到的message

4: # -- Loading package standard

5: # -- Loading package std_logic_1164

6: # -- Loading package std_logic_arith

7: # -- Loading package std_logic_unsigned

8: # -- Compiling entity test

9: # -- Compiling architecture test of test

10: # Model Technology ModelSim SE vcom 6.5 Compiler 2009.01 Jan 22 2009 #<-----編譯test.vhd得到的message

11: # -- Loading package standard

12: # -- Loading package std_logic_1164

13: # -- Loading package std_logic_arith

14: # -- Loading package std_logic_unsigned[!--empirenews.page--]

15: # -- Compiling entity test_tb

16: # -- Compiling architecture behavior of test_tb

17: # vsim -lib work -t 1ps test_tb #仿真設(shè)置命令行

18: # Loading std.standard

19: # Loading ieee.std_logic_1164(body)

20: # Loading ieee.std_logic_arith(body)

21: # Loading ieee.std_logic_unsigned(body)

22: # Loading work.test_tb(behavior)#1 #加載test_tb

23: # .main_pane.wave.interior.cs.body.pw.wf #打開wave窗口

24: # .main_pane.structure.interior.cs.body.struct #列出structure

25: # .main_pane.objects.interior.cs.body

注:在test_tb.fdo的每一行都可以在ModelSim Transcript窗口中分開一行一行執(zhí)行。

然后可以觀察到仿真波形文件。

3. 調(diào)試代碼

或許仿真出來的結(jié)果不是我們想要的,必須的修改代碼,然后再仿真。那我們應該怎么辦呢?

在trasncript窗口輸入:

1: quit -sim #退出仿真

2: do test_tb.fdo #修改代碼完成后重新執(zhí)行該腳本進行仿真

在仿真的波形的時候,我們不僅僅希望看到Top層設(shè)計的端口信號的波形,還希望能觀察到內(nèi)部信號是如何變化的,所以我們在Sim窗口中找到內(nèi)部的信號放到wave中進行觀察。但是如果我們重新運行當初test_tb.fdo文件,我們又再一次只能看到Top層設(shè)計的端口信號的波形,而內(nèi)部信號的波形已經(jīng)被刪除。那我們應該如何保存和運用我們仿真波形文件呢?

我現(xiàn)在需要觀察內(nèi)部的一個寄存器輸出:tmp信號,見圖4。Ctrl+S,保存波形文件。默認保存為工程目錄下/wave.do,但是我們將用波形文件保存為test_tb_wave.fdo文件,這樣做的好處可以不用修test_tb.fdo文件。

 


圖4.內(nèi)部信號觀察

我們重新運行test_tb.fdo腳本文件之后,輸出的波形是圖4,而不是圖3。

差不多常用的VHDL仿真命令都用上了,我相信這樣做肯定會提高仿真的效率。如果想要熟悉更多的ModelSim的仿真命令,請查看ModelSim的用書手冊。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉