【FPGA開發】一文輕松入門Modelsim的基本操作

Modelsim仿真的步驟

? ? ? ?(1)創建新的工程。

在這里插入圖片描述

? ? ? ?(2)在彈出的窗口中,確定項目名和工作路徑,庫保持為work不變(如有需要可以根據需求進行更改)。

在這里插入圖片描述

? ? ? ?(3)添加已經存在的文件(rtl代碼和tb代碼)。

在這里插入圖片描述

? ? ? ?如果這里關閉后,還想繼續添加,也可以直接在界面空白處右鍵進行添加。

在這里插入圖片描述

? ? ? ?加錯了文件,也可以右鍵對應的文件,把它移出工程。

? ? ? ?(4)把文件都添加進來后,需要對代碼進行編譯。在上方的菜單欄有Compile(編譯)選項,然后可以選擇編譯所有或者部分編譯。

在這里插入圖片描述

?? ? ? ?編譯完后,如果沒有問題,代碼后面的status會是一個綠色的對號。

在這里插入圖片描述

? ? ? ?代碼有問題的話,會是一個紅色的叉,雙擊下方Transcript中的errors,會彈出一個對話框,指明代碼的問題,我們針對這些信息對代碼修改即可。

? ? ? ?(5)進行仿真,選擇上方菜單欄的simulate,其中第一個選擇是優化的設置,我們可以在后面仿真的時候再去優化,第二個是開始仿真,第三個是運行的選項。后面的選項都是仿真的控制選項,釋義很直白。點擊開始仿真。

? ? ? ?在彈出的窗口中,design是仿真相關的庫,我們用的庫默認是work,在work中選中我們仿真的tb代碼,下面的Design Unit(s)就會有對應的顯示,而在其右邊的Resolution欄是仿真的單位,我們這里直接選默認即可。

? ? ? ?Libraries可以添加我們的庫。

在這里插入圖片描述

? ? ? ?SDF是延遲的文件,一般用于時序仿真,做IC設計時會頻繁涉及時序仿真,做FPGA開發的話,時序仿真不多,仿真比較慢,一般只做功能仿真,驗證功能是否有問題,時序一般是通過開發工具來查看時序報告看有沒有時序問題。

在這里插入圖片描述

?? ? ? ?而對于開始仿真窗口的使能優化,對于以前版本的modelsim,一般是不勾選的,但我使用的2020.4版本屬于比較新的版本,必須要使能優化,否則仿真的時候會報錯。

? ? ? ?再點擊右側的優化選項,把visibility從默認的第一個選項改為第二個選項,把所有要觀測的模塊都顯示出來,不然的話有些信號就看不到了。然后連續點擊OK即可。

?? ? ? ?然后會進入到下圖所示的界面:

在這里插入圖片描述

? ? ? ?(6)把需要觀察的信號添加到觀察列表當中。上圖左側的u_led對應tb代碼中例化的模塊。

在這里插入圖片描述

? ? ? ?右擊想要觀測的模塊,選擇Add wave。

? ? ? ?窗口會變化為如下圖所示:

在這里插入圖片描述

? ? ? ?現在波形的窗口還比較小,我們想把它單獨拉出來,可以選擇波形窗口右上角×的左邊那個按鈕,就可以把它獨立出來。

? ? ? ?左側的信號默認是帶有路徑的,如果不想顯示路徑,可以選擇上方菜單欄中的format,選擇toggle leaf names,就可以隱藏路徑了。

?? ? ? ?如果不想看某個信號,也可以單擊它,按鍵盤上的Delete把它刪除。

? ? ? ?而如果想單獨添加某一個信號,可以在外面的窗口找到對應的信號,把它添加到觀察列表。

? ? ? ?(7)開始仿真。在下圖所示的仿真時間100ns右側是幾種運行的按鈕,分別是運行一次,持續運行,一直運行,中斷仿真。選擇運行一次,就會仿真運行左側小框內的時間,根據自己的需求修改即可。

? ? ? ?其中一些有用的按鈕,如下圖所示,這里Zoom In和Zoom Out分別是放大和縮小,第三個Zoom Full,是讓有效波形鋪滿整個屏幕。

一些其他的小技巧

? ? ? ?1,可以在外面Transcipt窗口執行運行命令,如:

run 20us

?? ? ? ?就會讓波形在原來的基礎上仿真運行20us。

? ? ? ?2,添加標尺。鼠標點中波形的某個地方,可以添加一個標尺。點擊Insert Cursor按鈕,可以再添加一個標尺。

在這里插入圖片描述

? ? ? ?3,點擊左下角標尺前面的小鎖,可以把對應的標尺鎖定,想要刪除標尺則可以點擊x。

在這里插入圖片描述

?? ? ? ?4,更換信號的顯示進制。右擊想要更改的信號,選擇Radix,選擇想要更改的進制即可,Unsigned為無符號十進制,Binary為二進制,Octal為八進制,Hexadecimal為十六進制。

? ? ? ?5,放大縮小的另一種方法。先用標尺選中一個地方,然后點擊上方菜單欄的Zoom In和Zoom Out 進行放大和縮小,這樣就會基于我們選擇的地方進行放大縮小,更加關注我們選中的位置。另外,也可以按住ctrl鍵,單擊鼠標按住不放選中需要觀測的區域進行查看;按住ctrl鍵,點按鼠標左鍵往左上方滑動,可以縮小。

? ? ? ?6,重頭開始運行。

? ? ? ?可以單擊仿真時間左側的ReStart,在彈出的對話框中選擇OK即可。


? ? ? ?也可以像前面在外面的Transcipt窗口執行運行命令:

restart -f

? ? ? ?7,改變波形顏色。modelsim默認的波形是綠色的,如果想要改變波形顏色,可以先選中波形,然后點擊鼠標右鍵,選擇最后的屬性。
在這里插入圖片描述
? ? ? ?再點擊“corlor”,在彈出的窗口選擇自己想要的顏色即可。
在這里插入圖片描述

? ? ? ?8,實際的工程應用中,往往是頂層加多個底層的源文件結構,如果不對信號進行一定的分組,就會顯得雜亂不堪,后面我補充了一篇博客介紹如何對信號進行分組。效果如下圖所示:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89364.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89364.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89364.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

服務攻防-Java組件安全FastJson高版本JNDI不出網C3P0編碼繞WAF寫入文件CI鏈

服務攻防-Java組件安全&FastJson&高版本JNDI&不出網C3P0&編碼繞WAF&寫入文件CI鏈26天 原創 朝陽 Sec朝陽 2025年07月18日 09:23 湖北 標題已修改 演示環境: https://github.com/lemono0/FastJsonParty FastJson全版本Docker漏洞環境(涵蓋1.…

【Python】DRF核心組件詳解:Mixin與Generic視圖

在 Django REST Framework (DRF) 中,mixins.CreateModelMixin、mixins.ListModelMixin、GenericAPIView 和 GenericViewSet 是構建 API 視圖的核心組件。以下是對這些組件的主要方法及其職責的簡要說明,內容清晰且結構化:1. mixins.CreateMod…

HTML+CSS+JS基礎

文章目錄(一)html1.常見標簽(1)注釋(2)標題 h1~h6(3)段落 p(4)換行與空格 br \ (5)格式化標簽 b i s u(6)…

Vue導出Html為Word中包含圖片在Microsoft Word顯示異常問題

問題背景 碰到一個問題:將包含圖片和SVG數學公式的HTML內容導出為Word文檔時,將圖片都轉為ase64格式導出,在WPS Word中顯示正常,但是在Microsoft Word中出現圖片示異常。具體問題表現 WPS兼容性:在WPS中顯示正常&#…

橢圓曲線密碼學 Elliptic Curve Cryptography

密碼學是研究在存在對抗行為的情況下還能安全通信的技術。即算法加密信息,再算法解密出信息。加密分為兩類 1. Symmetric-key Encryption (secret key encryption) 即一種密鑰,加密和解密使用同一密鑰,可相互轉換 2. Asymmetric-key Encry…

wedo牛-----第47節(免費分享圖紙)

夸克網盤:https://pan.quark.cn/s/4b40a8d18979 高清圖紙源文件,需要的請自取

Unity | AmplifyShaderEditor插件基礎(第十集:噪聲的種類+火焰制作-下)

目錄 一、👋🏻前言 二、圓火焰 三、制作梯度 梯度成品預覽 1.GradientSample節點 2.gradient的用法 3.time節點 四、添加顏色 Color節點 五、火焰搖擺 1.X方向的移動 2.Y方向的移動 3.Z方向的移動 4.把xyz組合起來 Panner節點 六、擺放和…

黑馬Node.js全套入門教程,nodejs新教程含es6模塊化+npm+express+webpack+promise等_ts對象筆記

1.1 什么是運行環境? 運行環境是指代碼正常運行所需的必要環境!!!!! V8引擎負責解析和執行JavaScript代碼。內置API是由運行環境提供的特殊接口,只能在所屬的運行環境中被調用 1.2 JavaScrip…

React 項目環境變量使用指南

在 React 項目中正確使用環境變量是管理不同環境配置的關鍵技術。以下是完整的解決方案: 1. 創建環境變量文件 React 項目支持以下環境變量文件(按優先級從高到低): .env.development.local (本地開發環境).env.development (開發…

Oracle 關于一些連接故障的總結

積累了幾次Oracle客戶端連接故障,做下總結。 文章目錄1、案例案例1:客戶端連接報錯ORA-12514案例2:客戶端連接報錯ORA-28547案例3:客戶端連接報錯:Got minus one from a read call案例4:客戶端連接報錯&…

V-USB USB設備模擬原理分析

V-USB USB設備模擬原理分析 通過分析V-USB項目的核心文件,詳細解釋這個項目是如何在AVR微控制器上模擬USB設備的: 1. 整體架構 V-USB是一個純軟件實現的USB低速設備驅動,主要由以下幾個核心文件組成: usbdrv.c : USB協議棧的C語言…

kafka3.6下載安裝(傳統架構/KRaft模式)+實例測試

知識補充: Kafka 和 ZooKeeper 的關系可以用 “協作依賴” 來概括。在 Kafka 的早期版本(Kafka 2.8.0 之前)中,ZooKeeper 是 Kafka 的核心依賴,用于管理集群元數據、協調 Broker 和 Controller 選舉等關鍵功能。但從 …

華控智能產品特點——產品生態全景與場景化創新

公司構建 “3X”產品戰略,以三大核心場景為基礎持續拓展技術外延: 1. 智能安防產品線軍工級指紋槍盒:采用6061-T6航空鋁材,內嵌震動報警模塊,非法開箱觸發90dB警鳴。為軍工企業定制的雙人認證版本需兩位授權人員同時驗…

爬蟲核心原理與入門技巧分析

一、爬蟲核心原理:模擬人類瀏覽的“自動化工具” 簡單來說,網絡爬蟲(Web Crawler)是一種按照一定規則,自動抓取互聯網信息的程序或腳本。其核心原理可以類比人類瀏覽網頁的過程,只不過將手動操作轉化為了代…

spring-cloud微服務部署-feign服務間調用

1 準備工作 需要安裝并啟動nacos&#xff0c;作為服務注冊中心。地址&#xff1a;https://nacos.io/ 2 項目結構 parent的pom.xml聲明依賴&#xff1a; <dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</gr…

IDEA高效開發:Database Navigator插件安裝與核心使用指南

目錄 1.前言 2.正文 2.1安裝流程 2.1.1IDE內部安裝 2.1.2手動下載安裝 ?? 避坑指南 2.2使用教程 2.2.1連接數據庫 2.2.2查看數據庫/表 2.2.3查詢數據 2.2.4修改表結構 2.2.5生成代碼 2.2.6常見故障排除 3.小結 1.前言 “作為Java開發者&#xff0c;日常與數據…

Maven私服倉庫,發布jar到私服倉庫,依賴的版本號如何設置,規范是什么

Maven私服倉庫&#xff0c;發布jar到私服倉庫&#xff0c;依賴的版本號如何設置&#xff0c;規范是什么

量子卷積神經網絡:量子計算與深度學習的融合革命

引言&#xff1a;當卷積神經網絡遇上量子計算在人工智能與量子計算雙重浪潮的交匯處&#xff0c;量子卷積神經網絡&#xff08;Quantum Convolutional Neural Network, QCNN&#xff09;正成為突破經典算力瓶頸的關鍵技術。傳統卷積神經網絡&#xff08;CNN&#xff09;在圖像識…

線程(三) linux 同步

目錄 概念補充 條件變量 操作 例:多線程搶票 封裝 生產者消費者模型 生產者和消費者之間的關系 BlockQueue(阻塞隊列) 單生產單消費 信號量 簡介 操作 多生產者多消費者RingQueue(環形隊列)代碼 sem封裝 信號量與鎖 小知識 概念補充 同步:在保證數據安全的前…

Eclipse 生成 jar 包

Eclipse 生成 jar 包 引言 Eclipse 是一款功能強大的集成開發環境&#xff08;IDE&#xff09;&#xff0c;廣泛應用于 Java 開發領域。在 Java 開發過程中&#xff0c;將源代碼編譯成可執行的 jar 包是常見的需求。本文將詳細介紹在 Eclipse 中生成 jar 包的方法&#xff0c;包…