modelsim仿真沒有波形或看不到波形的原因及解決方法

2021-01-08 電子發燒友

  關於modelsim仿真時出現 No objects found matching 『/*』 問題在Modelsim6.2系列版本中仿真時,點擊start simulateion後,出現Objects空白的問題,導致執行 add wave al l時出現「# (vish-4014) No objects found matching 『/top_tb/*』。「的報錯選項。儘管輸入run後,可以運行仿真,但卻無法察看wave窗口的波形。

  這是優化的問題。

  解決方法:

  1. 點擊工具欄中的「simulate」按鈕,調出start smulation窗口,把窗口中最下邊optimization欄中的Enable optimization項目前的鉤鉤去掉,然後選擇仿真的文件,點擊OK,就一切正常了,能看到objects了。

  Quatus ii聯合modelsim仿真無法產生波形或波形一直為Hiz狀態原因分析

  最近用用modelsim仿真Quatus寫的testbench,遇到了波形無法產生的問題,一直卡在這裡很久都沒找到原因,經過一番分析和各種亂試,終於找到原因了。

  在設置編譯的test bench的時候,一定要把頂層模塊設置為xx_vlg_tst(),就是啟動test bench template writer的時候,軟體給你自動產生的那個test bench的模塊名。因為在仿真的時候,這個模塊才是真正的頂層模塊,是它實例化測試模塊,並給與測試模塊激勵信號的。設置方法如下:

  點擊主界面菜單欄的Assignment——》Settings,出現Settings對話框,然後在Category欄選擇EDA Tool Settings——》Simulation,出現以下界面,

 

  點擊3右邊的Test Benches按鍵,出現Test Benches對話框,然後點擊該對話框右邊的New按鍵,出現了Edit Test Bench Settings對話框,如下,

 

  在Test Bench name一欄中,輸入test bench文件的名字,就是在simulation/modelsim文件夾中那個後綴為.vt的文件的名稱,而Top level module in test bench一欄則要輸入test bench文件中那個模塊的名稱,這個是自動產生的,名字都是xx_vlg_tst,xx為test bench文件的名稱,記住,這裡一定要設置好頂層模塊是xx_vlg_tst,因為默認情況下它是和test bench name是一樣的,如果這樣設置,是無法產生波形的。

  之前一直用ise聯合modelsim仿真,ise裡面就沒有這些繁瑣的步驟,在寫test bench的時候,軟體自動把test bench設置為了頂層模塊,如圖:

  

  仿真的時候只需要點擊vtf_xx.v文件,然後雙擊Simulate Behavioral Model就會調用modelsim,仿真test bench文件了。

  modelsim仿真波形窗口小技巧

  在編寫verilog模塊後,很重要的一部分就是對所編寫的模塊進行仿真。而在仿真過程中,很重要的一部分就是觀察波形。這裡所談的技巧其實是對於我個人而言,可能大部分人都已經知道。但還是記錄下來,算是對我自己的提醒吧。

  現在想想還是覺得好笑,以前每次打開波形窗口的時候,都是點擊下圖的Simulate Behavioral Model.每次修改了代碼,都是關掉原來的波形窗口,然後再重新點擊打開,麻煩程度不言而喻(好吧,當初因為程序簡單,其實還不覺得很麻煩。)

  

  現在明白了,對於這種情況,肯定是會有簡單的操作的,否則這用戶體驗也太差了。

  當然,第一次仿真打開波形窗口時,還是老方法,點擊上圖的Simulate Behavioral Model。添加內部信號以及修改數值進位後結果如下圖(這裡採用的是一個FIFO讀寫程序,程序不是這裡需要在意的問題,我們只關心軟體的操作)。

  

  下面我們通過修改din[3:0]的初始值來反映這個過程,由上圖可知,din[3:0]的初始值為6.接下來我把代碼中din[3:0]的初始值改為0後重新觀察波形,那該如何操作呢?千萬不要像我以前那麼傻的關掉現有窗口然後重新仿真打開了。這樣我們又要重新添加內部信號以及修改數值顯示了。

  方便的步驟應該是,首先,將該波形保存,這部很簡單就不貼圖了,保存的其實就是你對該窗口的各種配置,哪怕以後你重新打開軟體,也可以通過打開之前保存的波形配置來查看仿真波形,而不用重新配置了。

  保存後,修改完代碼(這裡我把din[3:0]的初始值改為0,另外,代碼要記得保存,保存後代碼才能生效),然後點擊波形窗口的re-launch(如果之前沒進行保存操作的話,點擊re-launch後軟體也會提示你保存的)。就可以看到仿真波形發生了變化,din[3:0]的初始值由之前的6變成了0.

 

  另外,關於re-launch邊上的那幾個按鈕,也都是很有用處的,尤其仿真時間設置的,甚至有的時候還會因為這些設置的問題導致老是不能出現預期結果,這些操作很簡單,就不一一解釋了,大家稍微用用就知道了。

  上面提到的是採用ISE自帶的ISim進行仿真,但大多數時候我們還是採用modelsim來進行仿真,因為它功能更強大,速度也更快。但兩者操作其實是有很多類似的地方的,不過通過ise啟動modelsim再修改程序再仿真的操作還是挺麻煩的(可能還有更簡便的方法我不知道吧,知道可以通過腳本的方法,把命令編成程序,然後自動執行操作,但此方法還不太會。)。還是以上面的程序為例。用ise啟動modelsim,設置好參數後如圖

  

  可以看到din初始值為6。當我們修改代碼並保存後,在modelsim中要重新編譯,點擊compile,出現下面的對話框:

  

  由於修改的是FIFO.v文件,因此重新編譯該文件就好。

  之後來到波形窗口,點擊restart,

 

  再點擊OK,此時波形窗口無信號

 

  此時只需要再點擊一下run就好了

 

  此時可以看到din的初始值已經變成0了。

  其實這個過程還是有點麻煩,這就需要通過腳本操作了。或者我們不要通過ISE調用modelsim,而是直接使用modelsim,這樣會方便並且快速許多。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • Modelsim軟體如何仿真,怎麼能添加輸入信號?
    作為目前最流行的仿真工具之一,Modelsim提供了圖形界面和命令行兩種工作模式,既可以方便地使用滑鼠和對話框完成大部分的仿真操作,也可以通過編寫宏指令執行由文件驅動的工作流程以提高效率。   Modelsim的仿真方法   Modelsim的仿真分為前端仿真和後端仿真,下面簡單介紹一下兩者的區別。
  • ISE聯合modelsim功能仿真和綜合後仿真
    ISE聯合modelsim功能仿真和綜合後仿真 佚名 發表於 2017-02-10 15:48:09 1、代碼輸入(1)、新建一個ISE工程,名字為count4。
  • 三相SPWM波形發生器的設計與仿真
    編者按:本文提出了一種採用VHDL硬體描述語言設計新型三相正弦脈寬調製(SPWM)波形發生器的方法。該方法以直接數字頻率合成技術(DDS)為核心產生三相SPWM信號。
  • 京微雅格FPGA的仿真方法
    目前,已經有越來越多的用戶都開始使用國產FPGA來做自己的設計,然而在FPGA的開發過程中,免不了要對設計進行仿真。京微雅格的FPGA是支持在modelsim中進行仿真的。這對利用modelsim進行自動化仿真提供了極大的便利。  1、 在Primace中調用modelsim仿真  Primace5.0及以上版本的軟體,直接支持在軟體中直接調用modelsim軟體進行仿真。具體步驟如下:  一、下載安裝Modelsim,能正常使用Modelsim。
  • 數字波形合成器EDA仿真
    現對數字波形合成器的工作原理、電路構成以及用EWB軟體對其進行仿真的過程作一介紹。本文引用地址:http://www.eepw.com.cn/article/201807/384277.htm1.工作原理與電路構成(1)工作原理數字波形合成的原理並不複雜,採用此種方法,原則上可以合成任意波形。現以合成正弦波為例來加以說明。假設要合成的正弦波頻率為f,幅值為Vm。
  • Modelsim的功能仿真和時序仿真
    ModelSim 功能強大,它支持FPGA 設計的各個階段的仿真,不僅支持VHDL 仿真,Verilog仿真,而且支持VHDL 和Verilog 混合仿真。它不僅能做仿真,還能夠對程序進行調試,測試代碼覆蓋率,對波形進行比較等。
  • 關於在仿真軟體中計數器提前計數的問題
    MDY有一條非常重要的看波形技巧,即「時鐘上升沿前看條件」的技巧,意思就是在時鐘上升沿前,看條件信號,看到什麼值就是值。根據功能要求,寫出代碼後用modelsim進行仿真,效果如下圖: 然後發現仿真的波形和我們預期的波形並不一致
  • 基於OrCAD/PSpice的波形發生電路設計仿真
    根據LC三點式振蕩電路的組成原則設計並改進了電容三點式振蕩器電路,在OrCAD/PSpice仿真軟體中對電路進行了時域及頻域仿真分析,給出了振蕩波形,測量了振蕩頻率。仿真結果表明通過對電路的改進改善了波形,所設計電路波形與理論值相接近。
  • 波形發生器設計,單片機、CPLD控制的任意波形發生器設計實例
    電路設計中充分利用MATLAB的仿真功能,將希望得到的波形信號在MATLAB中完成信號的產生、抽樣和模數轉換,並將得到的數字波形數據存放在數據存儲器中,通過單片機和CPLD控制,將波形數據讀出,送入後向通道進行A/D轉換和放大處理後得到所需的模擬信號波形。利用上述方法設計的任意波形發生器,信號產生靈活方便、功能擴展靈活、信號參數可調,實現了硬體電路的軟體化設計。
  • FPGA驗證之功能仿真和時序仿真的區別與方法
    這裡我們使用一個波形發生器作為例子,來說明如何使用Modelsim對Quartus II生成的IP Core和相應的HDL文件進行功能仿真和
  • saber仿真中波形計算器的詳細使用
    剛開始用saber時,在CosmosScope下,看到波形但不會使用,把任意兩個波形相加、相減時的窘困,saber功能非常強大,saber的波形計算器也很強大。要達到同一個目的,有多種方法。
  • 什麼原因會導致信號波形邊沿的回溝?
    什麼原因會導致信號波形邊沿的回溝? 高速先生 發表於 2020-12-18 15:14:40 什麼原因會導致信號波形邊沿的回溝?
  • Xilinx ISE是如何調用ModelSim進行仿真的
    --->編譯代碼--->仿真設置--->進入仿真頁面--->添加需要觀察的波形--->運行仿真。#打開信號列表窗口 18: run 1000ns #運行1000ns 19: do {AES256_tb.udo} #運行用戶定義的腳本 只要編譯的時候沒有出現語法錯誤或者是找不到定義的庫文件等錯誤提示,一般會很容易的看到仿真的波形,而不用手動進行操作。
  • Quartus II宏功能模塊的使用方法(波形發生器的設計)
    下面以波形發生器的設計為例,介紹Quartus II宏功能模塊的使用方法。2.3.1 設計原理波形發生器的原理圖如圖所示。其中,lpm_counter0是LPM計數器,LPM_ROM是LPM只讀存儲器(ROM)。ROM中保存的是某種波形信號(如鋸齒波或正弦波)的數據,其地址由計數器lpm_counter0提供。
  • 適用於5G時代的波形測試分析系統是怎樣的?
    、支持新技術、設備及實現方法提出更高的要求。在信號開發階段有兩個關鍵的軟體:一個是 SystemVue 軟體,用於實施仿真、假設分析和算法開發;另一個是 Signal Studio 軟體,用於在研發測試初期生成測試信號。生成測試信號的硬體使用 M8190A 任意波形發生器(AWG),它可以生成信號來驅動 E8267D PSG 矢量信號發生器的寬帶 I/Q 調製輸入。
  • 在ISE啟動modelsim時遇到問題與解決
    是什麼原因? 「點到仿真模式,在source裡面選中你建立工程選擇的晶片,然後看Processes,點開,有個compile HDL simulation library,運行一下就OK了」 2.ISE用modelsim仿真提示:# ** Error: (vish-4014) No objects found matching '*'.結果仿真時老是報錯: # ** Error:
  • 泰克MDO4K示波器混迭波形的測量
    這種頻譜的重疊導致的失真稱為混疊,而重建出來的信號稱為原信號的混疊替身,因為這兩個信號有同樣的樣本值,使用示波器採集信號時,示波器上的觸發指示燈已經亮了,而顯示的波形仍不穩定。對於這種現象,可以通過慢慢改變掃速T/div到較快的時基檔,看波形的頻率參數是否急劇改變,如果是,說明波形混迭已經發生;或者晃動的波形在某個較快的時基檔穩定下來,也說明波形混迭已經發生。
  • 終於找到複雜波形功率測量方法了!這就是RMS轉直流轉換器
    採用類似的方式,可以測量開關模式電源電流波形的RMS電平(如圖5)。 在此LTSpice XVII仿真中,實際波形已導入分段線性(PWL) 電流源。使用1歐姆電阻分流器檢測電流,以便LTC1966的輸入電壓對應為1mV/mA。該信號不需要先前使用的放大器,而是通過LTC1966直接檢測電流。波形的峰值電流為0.584A。
  • 通過脈寬變化趨勢分析SPWM波形的方法
    圖 1 常規測試方法 用示波器測量SPWM的常規方法是利用其內部的軟體低通濾波功能,將SPWM的載波濾出掉,最後剩下的波形就是所要等效出的基波。這是因為真實測量回來的波形是有很多高頻大信號幹擾噪聲的,如果對這種波形進行脈寬趨勢分析,無法得到真確的結果。對真實波形進行脈寬趨勢分析結果如下圖所示: