官术网_书友最值得收藏!

2.7 設計的行為級仿真

本節將介紹如何對設計執行行為級仿真,包括使用 ModelSim 工具的仿真和使用軟件自帶仿真工具的仿真。

從 V 系列器件開始,Quartus Prime 不再提供對時序仿真的支持,因此本章不介紹時序仿真的內容。

2.7.1 使用Verilog HDL生成測試向量的仿真

本節將詳細介紹使用Verilog HDL生成測試向量并實現仿真的方法。

1.軟件支持的仿真工具

Intel Quartus Prime軟件支持指定的EDA仿真器版本,用于RTL和門級仿真,如表2.6所示。

表2.6 支持的仿真器

仿真器支持Mentor驗證IP總線功能模型(Bus Functional Models,BFM)。下面仿真器支持仿真用于仿真硬處理器系統(Hard Processor System,HPS)設計的BFM,包括:

(1)Mentor Graphics ModelSim(包括 ModelSim-Intel FPGA Edition)和 QuestaSim 10.1d。

(2)Synopsys VCS和VCS MX 2012.09。

(3)Cadence Incisive Enterprise Simulator(IES)12.10.013.

2.仿真工具支持的仿真級

在所支持的 EDA 仿真工具中,Quartus Prime 軟件支持 IP 核的 RTL 和門級仿真,如表2.7所示。

表2.7 支持的仿真級

3.仿真器支持的HDL語言

Intel Quartus Prime軟件為EDA仿真器提供下面的HDL支持,如表2.8所示。

表2.8 HDL支持

4.軟件支持的仿真流程

Quartus Prime軟件支持不同的仿真流程,如表2.9所示。

表2.9 仿真流程

5.創建測試文件并執行仿真

本節將為前面的設計創建Verilog HDL測試文件,主要步驟包括:

(1)在Quartus Prime設計主界面主菜單下,選擇New->File...。

(2)彈出“New”對話框,在該對話框中,展開“Design Files”選項。在展開項中,找到并單擊“Verilog HDL File”。

(3)單擊“OK”按鈕。

(4)出現名字為“Verilog1.v”的設計界面。在該界面中,輸入設計代碼,如代碼清單2-3所示。

代碼清單2-3 test.v文件

(5)按“Ctrl+S”組合鍵,將該文件命名為test.v。

(6)在Quartus Prime設計主界面主菜單下,選擇Project->Add Current File to Project,將該文件添加到當前設計工程目錄中。

(7)在Windows 10操作系統的桌面中,單擊左下角的“開始”按鈕,選中Intel FPGA 19.1.0.240 Pro Edition->ModelSim-Intel FPGA Starter Edition 10.6d(Quartus Prime Pro 19.1),單擊鼠標右鍵,出現浮動菜單,選擇更多->以管理員身份運行。

(8)彈出“用戶賬戶控制”對話框,在該對話框中提示“你要允許此應用對你的設備進行更改嗎?”的信息。

(9)單擊“是”按鈕。

(10)啟動ModelSim-Intel FPGA Edition(注:該版本不需要預編譯仿真庫)。

(11)彈出“IMPORTANT Information”對話框。在該對話框的底部選中“Don’t show this dialog again”(不要再顯示該對話框)前面的復選框。

(12)單擊該對話框中的“Close”按鈕。

(13)啟動后的 ModelSim 主界面的頂部顯示“ModelSim-INTEL FPGA STARTER EDITION 10.6d”。在主界面主菜單中,選擇File->Change Directory...。

(14)彈出“選擇文件夾”對話框,在該對話框中將路徑定位到當前設計工程目錄下,即E:\intel_example\example_2_1。

(15)在ModelSim主界面主菜單下,選擇Compile->Compile...。

(16)彈出“Compile Source Files”對話框。在該對話框中,自動設置“Library”為“work”,并且列出了當前目錄中可用的 Verilog HDL 文件。在該對話框中,同時選中 test.v文件和top.v文件。

(17)單擊“Compile”按鈕。

(18)彈出“Create Library”對話框。在該對話框中提示“The library ‘work’does not exist.Do you want to create this library?”(庫“work”不存在。你是否想創建這個庫?)的信息。單擊“Yes”按鈕。

(19)關閉“Compile Source File”對話框。

(20)在ModelSim主界面主菜單下,選擇Simulate->Start Simulation...。

(21)彈出“Start Simulation”對話框,如圖2.50所示。在該對話框中,單擊“Design”標簽。在該標簽頁中,找到并展開 work 文件夾。在該文件夾中,選中 test。在“Design Unit(s)”標題下的文本框中自動填入“work.test”。

圖2.50 “Start Simulation”對話框

(22)單擊“OK”按鈕。

(23)出現仿真界面。在該界面底部的“Transcript”窗口中,出現“VSIM 8>”提示符,如圖2.51所示。在“>”后面輸入“restart”,按回車鍵,重新開始進行仿真。

圖2.51 “Transcript”窗口

(24)彈出“Restart”對話框。在該對話框中,默認選中所有選項前面的默認框。

(25)單擊“OK”按鈕。

(26)在ModelSim的“Objects”窗口中,如圖2.52所示,選中clk、a、b和z,單擊鼠標右鍵,出現浮動菜單。在浮動菜單內,選擇 Add Wave。添加這些信號后的“Wave-Default”窗口如圖 2.53 所示。從圖中可知,將 clk、a、b 和 z 添加到了“Wave-Default”窗口中。

(27)在“sim-Default”窗口中,找到并展開 test,如圖 2.54 所示。在展開項中,找到并展開Inst_top。在展開項中,找到并選中#ASSIGN#9選項。

(28)在“Objects”窗口中,可以看到新出現了a_1、b_1和z_1寄存器變量,如圖2.54所示。在該窗口中,選中a_1、b_1和z_1,單擊鼠標右鍵,出現浮動菜單。在浮動菜單內,選擇 Add Wave。添加這些信號后的“Wave-Default”窗口如圖 2.55 所示。從圖中可知,將a_1、b_1和z_1添加到了“Wave-Default”窗口中。

圖2.52 “Objects”窗口

圖2.53 “Wave-Default”窗口(1)

圖2.54 “sim-Default”窗口和“Objects”窗口

(29)在“Transcript”窗口內的“VSIM 8>”提示符后輸入“run 1000 ns”,表示運行仿真1000ns,如圖2.56所示。

圖2.55 “Wave-Default”窗口(2)

圖2.56 “Transcript”窗口

(30)執行完行為級仿真后的“Wave-Default”窗口,如圖2.57所示。

(31)退出ModelSim仿真工具界面。

圖2.57 執行完行為級仿真后的“Wave-Default”窗口

思考與練習2-6:對圖2.57給出的仿真結果進行分析,是否滿足邏輯設計功能要求?

2.7.2 使用波形文件生成測試向量的仿真

除使用Verilog HDL生成測試向量外,還可以用Quartus Prime提供的VWF文件生成測試向量。本節將介紹使用波形文件生成測試向量并執行仿真的過程,主要步驟包括:

(1)在Quartus Prime主界面主菜單下,選擇File->New...。

(2)出現“New”對話框。在該對話框中,找到并展開 Verification/Debugging Files。在展開項中,選擇University Program VMF(大學計劃VMF)。

(3)單擊“OK”按鈕。

(4)出現“Simulation Waveform Editor”對話框界面,如圖2.58所示。在該對話框的主菜單下,選擇Edit->Insert->Insert Node or Bus...。

圖2.58 “Simulation Waveform Editor”對話框

(5)彈出“Insert Node or Bus”對話框,如圖 2.59 所示。在該對話框中,單擊“Node Finder...”按鈕。

圖2.59 “Insert Node or Bus”對話框

(6)彈出“Node Finder”對話框,如圖2.60所示。單擊“Look in:”標題后面的按鈕。(7)彈出“Select Hierarchy Level”對話框,如圖2.61所示。在該對話框中,選中top,然后單擊“OK”按鈕,退出“Select Hierarchy Level”對話框。

圖2.60 “Node Finder”對話框

圖2.61 “Select Hierarchy Level”對話框

(8)單擊“Node Finder”對話框中的“List”按鈕。

(9)在“Nodes Found:”標題欄下列出了找到的節點,如圖 2.62 所示,依次選中節點clk、a、b 和 z,然后單擊按鈕,將這些節點依次加入到“Selected Nodes:”標題欄下,如圖2.63所示。

(10)單擊圖2.63中的“OK”按鈕,退出“Node Finder”對話框。

圖2.62 “Node Finder”對話框列出了發現的節點

圖2.63 將節點加到“Selected Nodes:”標題欄下

(11)單擊“Insert Node or Bus”對話框中的“OK”按鈕,退出該對話框。

(12)添加信號后的Simulation Waveform Editor界面如圖2.64所示。

圖2.64 添加信號后的Simulation Waveform Editor界面

(13)選中名字為“clk”的一行,然后單擊工具欄內名字為“Count Value”的按鈕。(14)彈出“Count Value”對話框,如圖2.65所示。在該對話框“Count every:”右側的文本框中輸入10.0。

(15)單擊“OK”按鈕,退出“Count Value”對話框。

(16)選中名字為“a”的一行,單擊工具欄中名字為“Random Values”的按鈕

(17)彈出“Random Values”對話框,如圖 2.66 所示。在“Interval period:”后面的文本框輸入17。

(18)單擊“OK”按鈕,退出“Random Values”對話框。

(19)選中名字為“b”的一行,單擊工具欄中名字為“Random Values”的按鈕。(20)彈出“Random Values”對話框。在“Interval period:”后面的文本框輸入17。

(21)單擊“OK”按鈕,退出“Random Values”對話框。

(22)給輸入信號 clk、a 和 b 添加完測試信號后的 Simulation Waveform Editor 界面如圖2.67所示。

圖2.65 “Count Value”對話框

圖2.66 “Random Values”對話框

圖2.67 給輸入信號clk、a和b添加完測試信號后的Simulation Waveform Editor界面

(23)在Simulation Waveform Editor主界面主菜單內,選擇Simulation->Run Functional Simulation。

(24)彈出“Simulation Flow Progress”對話框,如圖2.68所示,圖中顯示了仿真的進度。

圖2.68 “Simulation Flow Progress”對話框

(25)運行完行為級仿真后的波形如圖2.69所示。

圖2.69 仿真后的波形

思考與練習2-7:分析圖2.69中的仿真波形圖,驗證仿真結果是否滿足設計要求?

主站蜘蛛池模板: 阿拉善右旗| 罗源县| 类乌齐县| 台东市| 海兴县| 茶陵县| 方正县| 泾川县| 清水河县| 汝州市| 东兴市| 灵宝市| 阿坝县| 景泰县| 巴马| 四川省| 西藏| 嘉黎县| 图们市| 武山县| 哈密市| 房产| 金湖县| 乌苏市| 太保市| 福安市| 樟树市| 滦平县| 正定县| 黄大仙区| 南京市| 威远县| 乌兰浩特市| 内江市| 河北区| 蕲春县| 广河县| 团风县| 来安县| 九龙县| 灌南县|