1. 程式人生 > >基於指令碼的modelsim自動化模擬筆記

基於指令碼的modelsim自動化模擬筆記

# #表示註釋,modelsim不支援中文,因此可能不能識別註釋 #①退出當前模擬功能,退出當前的工程,跟在modelsim介面的命令列敲入命令的效果一樣,之後就可以建立其他的工程 quit -sim #②清除命令列顯示資訊;在命令列‘敲入這個命令,回車’的效果一樣 .main clear #③建立庫:vlib:建立庫到一個物理目錄中,也就是建立資料夾目錄了。 #可以理解庫為某一個路徑的資料夾,用來儲存modelsim的一些資料檔案; #建立庫的格式vlib <library name>,預設庫的名字為work #
下面的程式碼意思是:1-在當前路徑(.do檔案的路徑)下,建立lib資料夾;相當於在命令列敲‘vlib lib 回車’ #2-在當前路徑的lib資料夾下,建立work資料夾庫;相當於在命令列敲‘vlib ./lib/work’ vlib ./lib vlib ./lib/work #④對映邏輯庫到物理目錄;也就是說,在modelsimGUI介面的Library選項卡里面建立子選項,這個子選項就叫做邏輯庫, #編譯工程之後,得到一堆編譯檔案,這些檔名就放在這個邏輯庫選項卡里面。但是編譯得到的是實體檔案,這些檔案必須 #有一個目錄儲存,因此就需要把邏輯庫對映到物理(資料夾)目錄,也就是把那些得到的實體檔案放在某一個資料夾目錄(路徑當中)
#這樣,就可以在實際資料夾裡面檢視編譯得到的檔案內容,而不是單單從選項卡里面看到名字而已 #注意,在對映之前,一定要先建立好對應的物理路徑 #語法為 vmap work(邏輯庫名稱) <library name>(庫的路徑) #下面的程式碼意思是:在modelsim介面的library選項卡建立一個叫work的選項卡(邏輯庫),編譯之後得到的檔名稱就在, #相應的檔案就放在./lib/work這個資料夾裡面。 #當然邏輯庫的名字不一定是work(modelsim預設是work就一般取做work),也可以是top_xxxx,如果是top_xxx(vmap work ./lib/work)
#那麼在modelsim介面的library選項卡建立的選項卡名稱就是top_xxxx,但是編譯之後得到的檔案還是存放到./lib/work的路徑資料夾中 vmap work ./lib/work #⑤編譯Verilog 原始碼,將編譯得到的資訊檔案與編譯的檔案放到④的邏輯庫裡面,庫名預設編譯到work本地庫,檔案按順序編譯。 #語法為vlog –work(固定格式) work(邏輯庫名字) <file1>.v <file2>.v(要編譯的檔案:路徑/檔案) #主要是編譯設計檔案,測試檔案,呼叫的IP核.v檔案,相應的庫檔案,萬用字元./../xxx/*.v,要注意編譯的順序 #注意,.v檔案應該是放在設計或者模擬的檔案裡面,不要模擬邏輯庫路徑裡面,邏輯庫路徑在編譯之後會自然得複製過來 #下面程式碼的意思是:編譯xxx.v這兩個檔案,將編譯得到的檔案與原始檔放到 work這個資料夾裡面。 vlog -work work ./tb_ex_shift_reg.v vlog -work work ./../design/*.v #⑥編譯完後啟動模擬,語法格式為vsim –lib <library name>.<top level design>, #下面的程式碼意思是:優化部分引數(-voptargs=+acc),連結到預設的work 庫,啟動模擬頂層測試邏輯庫(work)裡面的tb_ex_shift_reg檔案 vsim -voptargs=+acc work.tb_ex_shift_reg #⑦新增波形與分割線。 #新增波形:就是新增要顯示波形,語法格式:add wave <mydesign>/<signal> #。。。如果新增的波形不只是頂層模組的,還有頂層下面的例化模組的訊號, #就是#add wave 測試頂層的名字/例化子模組的例化名字/子模組訊號的名字 #。。。add wave #-radix ?hexadecimal tb_top/mydesign/data #-radix ?引數是約束bus是以那種進位制顯示。 #例如:binary 、ascii、unsigned、octal、hex #。。。add wave –format logic tb_top/mydesign/clk #-format 引數是約束波形為那種型別, #包括 logic ;literal; analog-step; analog-interpolated; #add wave -radix bin tb_ex_shift_reg/o_lvds_d 以二進位制格式顯示o_lvds_d波形訊號 #新增分割線:不同的訊號之間進行分割,語法格式是add wave -divider {分割線的名字}。 #分割線所處的位置是相對於波形訊號的。下面程式碼的意思就是在lvds_clock訊號上面添加了一條分割線。 add wave -divider {tb_ex_shift_reg_111} add wave tb_ex_shift_reg/lvds_clock add wave tb_ex_shift_reg/rst_n add wave tb_ex_shift_reg/lvds_d add wave tb_ex_shift_reg/i_30 add wave -radix bin tb_ex_shift_reg/o_lvds_d add wave -divider {ex_shift_reg_inst_888} #add wave 測試頂層的名字/例化模組的例化名字/訊號的名字 add wave tb_ex_shift_reg/ex_shift_reg_inst/* #⑧執行,格式是 run 執行時間 run 1us

相關推薦

基於指令碼modelsim自動化模擬筆記

# #表示註釋,modelsim不支援中文,因此可能不能識別註釋 #①退出當前模擬功能,退出當前的工程,跟在modelsim介面的命令列敲入命令的效果一樣,之後就可以建立其他的工程 quit -sim #②清除命令列顯示資訊;在命令列‘敲入這個命令,回車’

FPGA 學習筆記(十三)modelsim自動化模擬環境

搭建基於Modelsim的自動化模擬 我們之前通常進行Modelsim介面操作,這樣會很費時很麻煩。這裡我們介紹一種快捷的方法,通過do檔案快速搭建模擬環境,實現更高效的模擬過程。 我們只需將sim.do中的程式碼寫好,然後點選一下modelsim_ru

基於CANoe的OSEK_TP封裝的診斷刷寫,FOTA自動化模擬測試實現(一)

  原創內容,如若喜歡,轉載時請在開篇處註明出處   車輛網領域有個關鍵ECU——TBOX,本文圍繞TBOX的FOTA升級業務展開。主要講如何通過CANoe的模擬程式實現自動化測試, 驗證TBOX在FOTA業務過程中作為一個診斷儀刷寫整車其它ECU的流程以及業務邏輯處理的正確性。通常情況下,主機廠

SOAPUI 介面自動化學習筆記節選 如何用Groovy 指令碼讀取CSV 檔案

我們在不論做哪種型別的自動化,都或多或少需要讀取CSV檔案,或是EXCEL 中的檔案,以下是百度閱讀SOAPUI  介面測試筆記的部分內容, CSV  讀取 有時我們需要將資料放在CSV 檔案中,如果引數是放在csv 檔案中,我們可以用資料來源從介面直接配置,還可以用指

SOAPUI 介面自動化學習筆記節選 如何用Groovy 指令碼讀取CSV 檔案

轉載地址:http://blog.csdn.net/liuchangxin1982/article/details/50936315 我們在不論做哪種型別的自動化,都或多或少需要讀取CSV檔案,或是EXCEL 中的檔案,以下是百度閱讀SOAPUI  介面測試筆記的部分內

Selenium2自動化測試實戰基於Python語言》讀書筆記--第3章

第3章 Python基礎 由於作者寫的這本書完全是以Python語言為基礎的,所以需要讀者具備一定的Python程式設計能力。如果說最好的Python基礎教程,那應該說是《笨方法學Python》了。 3.1 Python哲學 <span style="colo

《Selenium2自動化測試實戰基於Python語言》讀書筆記--第1章

第1章 自動化測試基礎 1.1 軟體測試分類 根據專案流程階段劃分軟體測試 1) 單元測試:又稱模組測試,是對程式中的單個子程式或具有獨立功能的程式碼段進行測試的過程; 2)整合測試:是在單元測試的基礎上,先通過單元模組組裝成系統或子系統,再進行

PXE基於網絡自動化安裝

pxe 自動化 這周針對自動化安裝我們講述PXE自動化安裝centos6和centos7一、需要提前關閉防火墻和SELINUX,DHCP服務器使用靜態IP 用getenforce查看SELINUX是否關閉 iptables -F 關閉防火墻二、安裝http、tftp-server、

python自動化學習筆記之DAY15

als iou inpu 設置 insert return 函數調用 雙擊事件 over JavaScript基礎 1、function對象 函數定義: function 函數名 (參數){ <BR> 函數體;   return 返回值; } 可以使

python自動化學習筆記之DAY19

primary queryset imp 正向查詢 tom 使用 mov orm 復雜 Django-model基礎 表的創建(模型建立) 例1: from django.db import models #書籍 class Book(models.Model):

python自動化學習筆記之DAY21

form 保存 username 用戶 python ssi key 需要 用戶信息 cookie 1、cookie與session cookie出現原因:由於HTTP協議無法保持狀態,但是在認證的環境裏面,需要保持狀態,因此產生了cookie cookie工作原理:由服務

接口自動化學習筆記

單元測試 學習筆記 時間 優化 邊界 傳遞數據 功能測試 測試框架 div (參考:https://www.cnblogs.com/wnfindbug/p/5591599.html) web應用接口測試分為:   1、模塊接口測試:主要測試模塊之間的調用與返回   2、we

python自動化學習筆記3-集合、函數、模塊

內容 rem alt 進程 操作 字典類 修改 指定 img 文件操作 上次學習到文件的讀寫,為了高效的讀寫文件,我們可以用循環的方式,一行一行的進行讀寫操作,打開文件的方法是open的方法,打開文件執行完後還要進行關閉操作。 一般的文件流操作都包含緩沖機制,write

基於Jmeter的自動化測試實施方案設計

方式 最大 cgi 監聽 load failure ops 郵件 amp 前言: Jmeter是目前最流行的一種測試工具,基於此工具我們搭建了一整套的自動化方案,包括了腳本添加配置、本地配置和運行、服務器配置等內容,完成了自動化測試閉環,通過這種快捷簡便高效的方式,希望可以

Windows自動化---模擬鼠標鍵盤

兩個 核心 依賴 pywin32 ins log 集成 .org 消息 pymouse pykeyboard 這兩個已經被集成到了PyUserInput 支持最基礎的鼠標,鍵盤操作,可以剪貼。 安裝的時候:pip install PyUserInput 需要依賴包p

pyautogui自動化---模擬鼠標鍵盤常用操作

pyautogui客戶端自動化 pyautogui自動化常用指令 pyautogui模擬鍵盤 pyautogui模擬鼠標 pyautogui能很好的控制鍵盤和鼠標,可以用在我們的各種pc端產品的自動化測試上。 但其實配合pywinauto一起使用是非常完美的,這個後面續寫。我們先來看看一些常用

Python+Selenium自動化模擬用戶登錄(備註:記錄一次強行卸載rpm依賴包,引發的rpm、yum等命令異常,無法遠程xftp工具)

支持 fir 遠程 margin pan ~~ dep sta aliyun 近期在摸索Python+Selenium自動化,實現模擬用戶登錄搜索等操作,反饋相關日誌,再交由Zabbix分析,監控頁面訪問是否正常。 期間需要對Linux火狐瀏

Modelsim自動化仿真之do文件書寫

-a 信號 art ipc tar and mode ati flag do 文件書寫 創建本地庫 vlib ./work You must use vlib rather than operating system commands to creat a library

基於MicroPython的ESP8266開發筆記-3.使用微信遠端控制裝置

使用未來之家的伺服器和互動邏輯來做esp8266和微信的通訊,通訊協議詳見這裡。下面直接貼程式碼供大家參考,已經在我的nodemcu上除錯通過並應用到實際生活當中。 本程式主要實現微信遠端控制舵機的功能。 import network import socket #網路套接字

基於CentOS搭建WordPress(筆記

準備 LNMP 環境 LNMP 是 Linux、Nginx、MySQL 和 PHP 的縮寫,是WordPress 部落格系統依賴的基礎執行環境。我們先來準備 LNMP 環境 安裝 Nginx 使用 yum 安裝 Nginx: yum install nginx -y 修改 /etc/n