解決Vivado與modelsim仿真卡在Executing analysis and compilation step
先說原因
因爲代碼不規範!!!
起因
這裏記錄一個事件,昨天想要試一試vivado與modelsim聯合仿真的過程。
於是在網上找到了相關資料,進行了vivado和modelsim的安裝,並在vivado裏面設置好了使用modelsim仿真的相關設定。
但是,不知怎麼的,在進行simulation的時候會一直卡死在如下界面:
百思不得其解。
解決
在同事的指點下,得知是因爲使用modelsim打開的會先對testbench及源verilog設計文件進行編譯,而有些潛在的語法錯誤會報錯(vivado不會報錯),可是報錯竟然還不能再vivado這個狀態下顯示出來。
所以,就一直在執行Executing analysis and compilation step了。
修正
通過把源碼直接放在modelsim裏進行編譯,找到了語法錯誤的原因:
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-NreB3ip3-1578324783592)(1578323988671.png)]
原來這個變量,在端口聲明過了,而後在模塊中又被聲明瞭一次,對應RTL如下:
module _2mux1 (
input A, B, SEL,
output L
);
tri L;
bufif1(L, B, SEL);
bufif0(L, A, SEL);
endmodule
這我就想起來了,以前使用Quartus Prime聯合modelsim仿真的時候也會有這種報錯,但是至少會打開modelsim,然後再Transcript裏報錯啊。
修改RTL code爲:
module _2mux1 (
input A, B, SEL,
output L
);
tri L_tmp;
bufif1(L, B, SEL);
bufif0(L, A, SEL);
assign L = L_tmp;
endmodule
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-mnMTodBW-1578324783593)(1578324225264.png)]
編譯成功,然後在vivado中做同樣的改動,嘗試仿真成功。
應該還能同步解決
在vivado中提示modelsim編譯報錯的問題。
但還沒找到怎麼解決。