解決Vivado與modelsim仿真卡在Executing analysis and compilation step

解決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編譯報錯的問題。

但還沒找到怎麼解決。

發佈了53 篇原創文章 · 獲贊 32 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章