Quartus Prime 中集成了Modelsim,可以調(diào)用Modelsim對(duì)頂層文件進(jìn)行仿真崭孤。
1曲楚、初次使用的話裂七,設(shè)置Modelsim-Altera的安裝路徑:
Tools--Options
General--EDA Tool Options,設(shè)置仿真工具的目錄家破。右側(cè)窗口選擇你電腦Quartus安裝目錄中Modelsim-altera的位置颜说,示例如圖
2购岗、打開或者新建工程,將當(dāng)前工程的仿真工具設(shè)為ModelSim-Altera
這里以一個(gè)譯碼器的工程為例:
module decode7(keys,segment);
input [3:0] keys;
output [7:0]segment;
reg [7:0] segment;
always @(*)
begin
case(keys)
4'd0:segment = 8'hC0;
4'd1:segment = 8'hF9;
4'd2:segment = 8'hA4;
4'd3:segment = 8'hB0;
4'd4:segment = 8'h99;
4'd5:segment = 8'h92;
4'd6:segment = 8'h82;
4'd7:segment = 8'hF8;
4'd8:segment = 8'h80;
4'd9:segment = 8'h90;
default:segment = 8'hFF;
endcase
end
endmodule
工程設(shè)計(jì)完成后门粪,設(shè)置Assignments -- Settings喊积,彈出的對(duì)話框中,左側(cè)選擇EDA Tool Setting -- Simulation庄拇,右側(cè)的第一個(gè)下拉列表選擇ModelSim-Altera注服,示例如圖。
3措近、生成測(cè)試文件.vt
先對(duì)工程執(zhí)行分析綜合: Analysis & Synthesis
然后生成測(cè)試文件模板溶弟,操作如下。
生成的.vt文件位于當(dāng)前工程目錄中..\simulation\modelsim\ 文件夾內(nèi)瞭郑。
生成的 .vt只是一個(gè)模板辜御,并不完整,需要補(bǔ)充屈张。用Quartus打開這個(gè).vt 測(cè)試文件:
編輯需要的測(cè)試激勵(lì)后擒权,保存。
`timescale 1 ns/ 1 ps
module decode7_vlg_tst();
reg [3:0] keys;
wire [7:0] segment;
decode7 i1 (
.keys(keys),
.segment(segment)
);
initial
begin
keys = 4'd0;#50;
keys = 4'd1;#50;
keys = 4'd2;#50;
end
endmodule
拷貝下vt文件中的頂層模塊名阁谆,decode7_vlg_tst
4碳抄、將激勵(lì)文件添加到仿真接口
Assignments -- Settings,彈出的對(duì)話框中场绿,左側(cè)選擇EDA Tool Setting -- Simulation剖效,右側(cè)的第一個(gè)下拉列表選擇ModelSim-Altera,下面添加Test Benches焰盗,流程示例如圖璧尸。
第一個(gè)Test Bench name給當(dāng)前的仿真起個(gè)名字,可以粘貼剛才的 .vt 里 decode7_vlg_tst
第二個(gè)Top level module ....粘貼測(cè)試文件.vt 里頂層module的名字 decode7_vlg_tst
點(diǎn)擊Add后熬拒,點(diǎn)擊OK--OK---OK........
5爷光、功能仿真
Tools -- Run ---RTL Simulation(寄存器傳輸級(jí)仿真,與功能仿真相同)澎粟,等一會(huì)兒蛀序,大約幾十秒,彈出modelsim仿真窗口和結(jié)果
6捌议、時(shí)序仿真
運(yùn)行完功能仿真后哼拔,如果想觀察芯片實(shí)際延時(shí)信息,可以做時(shí)序仿真瓣颅。
將仿真設(shè)置里的 More EDA Netlist Writer Setting ---- Generate funtional simulation netlist, 改成 Off
需要確保設(shè)置過(guò)芯片型號(hào)倦逐、引腳分配,然后完整編譯。
然后運(yùn)行時(shí)序仿真:Tools -- Run ---Gate level Simulation檬姥。彈出一個(gè)仿真模型曾我,選一個(gè)即可。
常見(jiàn)錯(cuò)誤:
1健民、功能仿真時(shí)抒巢,輸出無(wú)信號(hào),波形顯示紅色直線秉犹。
原因:可能是由于設(shè)計(jì)文件中的寄存器沒(méi)有初始值蛉谜,而電路基于該寄存器進(jìn)行了取值、判斷等操作崇堵,導(dǎo)致獲取不到寄存器的值型诚。
解決辦法:為電路添加復(fù)位信號(hào),在復(fù)位信號(hào)有效時(shí)給寄存器賦初值鸳劳。
說(shuō)明:這是仿真器的問(wèn)題狰贯。在實(shí)際電路中,芯片上電后赏廓,寄存器內(nèi)必然有值涵紊。
2幔摸、error deleting "msim_transcript": permission denied.
原因:Modelsim已經(jīng)打開了摸柄,不能進(jìn)行新的仿真。
解決辦法:關(guān)閉已經(jīng)打開的Modelsim既忆,重新啟動(dòng)仿真塘幅。
3、其他錯(cuò)誤解決辦法
測(cè)試文件如果有語(yǔ)法錯(cuò)誤的話尿贫,會(huì)在modelsim的輸出窗口以紅色字體給予提示。