|
書中代碼請訪問網(wǎng)盤:http://pan.baidu.com/s/1bndF0bt 簡單的補充了一些理論知識,下面我們就以當(dāng)前的實例工程為例來建立一個仿真環(huán)境。這個仿真環(huán)境的最終主角當(dāng)然是ModelSim(Altera-ModelSim),但在此之前,我們還是需要把ModelSim工作所需的各種接口以及相關(guān)文件的關(guān)系梳理清楚。 回到我們的Quartus II工具中,在前面創(chuàng)建工程向?qū)е校覀兤鋵嵰呀?jīng)設(shè)置了Simulation工具為ModelSim-Altera,但是我們還需要做更詳細(xì)的配置。首先我們可以點擊菜單欄的ProcessingàStartàStart Test Bench Template Writer,隨后彈出提示“Test Bench Template Writer was successful”,那么我們就已經(jīng)創(chuàng)建了一個Verilog測試腳本,在此腳本中,我們可以設(shè)計一些測試激勵輸入并且觀察相應(yīng)輸出,借此我們就能夠驗證原工程的設(shè)計代碼是否符合要求。 如圖5.29,我們打開工程路徑下的/simulation/modelsim文件夾,可以看到一個名為ex0.vt的測試腳本文件創(chuàng)建了。
圖5.29 測試腳本文件 我們可以在Quartus II中打開這個文件,并且將其重新編輯如圖5.30所示。
圖5.30 測試腳本代碼 ★ 代碼講解 L27:timescale用于申明仿真時間的單位和精度,“/”前面的1ns表示時間基本單位,“/”后面的1ps則仿真進(jìn)度。應(yīng)用示例見L46的講解。 L28/L59:進(jìn)行模塊的申明,模塊名為ex0_vlg_tst,與RTL級設(shè)計不同,這里無需羅列輸入輸出信號名。 L46:“#1000”則表示仿真時間過了1000ns。如果寫成“999.999”則表示仿真時間過了999.999ns,精確到ps,即此處的小數(shù)點后3位。 L30/L31:兩個按鍵的信號申明,設(shè)計文件的input信號,其實是測試腳本的output信號,因此是reg型。測試腳本中可以對其進(jìn)行賦值。 L33:LED指示燈的信號申明,設(shè)計文件的output信號,其實是測試腳本的input信號,因此是wire型。測試腳本中無法對其進(jìn)行賦值。 L36-41:對設(shè)計文件(被測試的對象)的例化申明,主要是將其接口引出到該測試腳本文件中。 L43-57:編寫一段順序執(zhí)行的按鍵值模擬賦值程序。每隔1000ns分別給兩個按鍵信號輸出不同的組合值。 在該測試腳本中,通過對key_left和key_right兩個激勵信號的不同賦值,我們可以觀察led_light信號的變化,以此驗證原設(shè)計代碼是否達(dá)到設(shè)計要求。 完成測試腳本編寫,我們接著需要打開菜單欄的AssigementàSettings選項,選擇CategoryàEDA Tool SettingàSimulation,在右邊的相關(guān)屬性中做如圖5.31所示的設(shè)置,在選中Comple test bench后,我們要點擊后面的TestBenches…按鈕去選擇剛才創(chuàng)建的測試腳本。
圖5.31 Simulation設(shè)置窗口 如圖5.32所示,首先彈出上面的Test Benches窗口,然后我們可以點擊New…按鈕,接著便彈出下面的窗口。在此窗口中,我們根據(jù)實際情況輸入Test bench name和Top levelmodule in test bench的名稱,接著還要在在Testbench and simulation files下面選擇測試腳本文件,然后Add添加到最下面的列表中。完成后點擊OK,如圖5.33,我們便可看到Test Benches窗口的列表中出現(xiàn)了剛才添加的測試腳本相關(guān)信息,接著點擊OK完成設(shè)置。
圖5.32 測試腳本設(shè)置
圖5.33 完成新測試腳本添加 回到Setting中也點擊OK完成所有相關(guān)設(shè)置。我們還需要打開菜單欄的ToolsàOptions配置頁面,如圖5.34所示,我們選擇Category下的GeneralàEDA Tool Options,然后設(shè)置ModelSim-Altera軟件安裝路徑(請根據(jù)實際安裝時的路徑進(jìn)行設(shè)置)。當(dāng)Quartus II調(diào)用ModelSim-Altera軟件進(jìn)行仿真時,會通過這里所設(shè)置的路徑來查找并啟動ModelSim-Altera。
圖5.34 ModelSim-Altera調(diào)用路徑設(shè)置 本文節(jié)選自特權(quán)同學(xué)的圖書《FPGA/CPLD邊練邊學(xué)——快速入門Verilog/VHDL》 書中代碼請訪問網(wǎng)盤:http://pan.baidu.com/s/1bndF0bt |
QQ圖片20150304110521.jpg (39.87 KB)