引言
modelsim do文件的仿真,熟練掌握的化可以加快仿真速度,並且這也是對以後工作有幫助的事情,這裏重新走一下流程,並在以後,經常使用這種方式,方可熟練掌握。
步驟
1、建立庫
2、映射庫到物理目錄
3、編譯源代碼
4、啓動仿真器
5、執行仿真
1、Tcl語言的語法
- vlib: 創建庫。格式 vlib ,默認庫的名字爲work
example: vlib work - vmap:映射邏輯庫名,將邏輯庫名映射庫路徑。語法格式vmap work < library name >
vmap work work - vdir:顯示指定庫的內容。語法格式vdir -lib < library name >
- vlog :編譯Verilog源代碼,庫名缺省編譯到work本地庫,文件按照順序編譯。語法格式vlog -work < library name>
< file1 >.v < file2 >.v
vlog -work lpm 20model.v
2、例子
#此處是註釋
quit -sim #退出工程,因爲打開軟件時候,可能停留在上一個工程
.main clear #清除命令行顯示信息
vlib ./lib #創建一個lib庫
vlib ./lib/work #創建一個work庫
#需要先創建lib,在創建work庫
系統默認的邏輯庫的名字爲work,現在需要將邏輯庫名字映射庫路徑
vmap work ./lib/work #將默認邏輯庫的名字映射到路徑中
vlog -work work ./*.v 編譯當前目錄下所有的.v文件,到work邏輯庫裏面
啓動仿真,啓動work裏面的頂層文件
vsim -voptargs=+acc work.Ad9910_pro_vlg_tst
#添加頂層文件中的信號
add wave Ad9910_pro_vlg_tst/rst
add wave Ad9910_pro_vlg_tst/start
add wave Ad9910_pro_vlg_tst/sys_clk
add wave Ad9910_pro_vlg_tst/master_reset_key
add wave Ad9910_pro_vlg_tst/cs
add wave Ad9910_pro_vlg_tst/io_reset
add wave Ad9910_pro_vlg_tst/io_update
#添加頂層文件裏面的例化模塊 *是通配符,匹配所有的信號
add wave Ad9910_pro_vlg_tst/i1/*
run 100us
3、模型
注意:註釋需要單行#,否則會不識別報錯
#此處是註釋
#退出工程,因爲打開軟件時候,可能停留在上一個工程
quit -sim
#清除命令行顯示信息
.main clear
#創建一個lib庫
vlib ./lib
#創建一個work庫
vlib ./lib/work
#需要先創建lib,在創建work庫
vmap work ./lib/work
#將默認邏輯庫的名字映射到路徑中
#編譯當前目錄下所有的.v文件,到work邏輯庫裏面
vlog -work work ./*.v
#啓動仿真
vsim -voptargs=+acc work.Ad9910_pro_vlg_tst
#添加頂層文件中的信號
add wave Ad9910_pro_vlg_tst/rst
add wave Ad9910_pro_vlg_tst/start
add wave Ad9910_pro_vlg_tst/sys_clk
add wave Ad9910_pro_vlg_tst/master_reset_key
add wave Ad9910_pro_vlg_tst/cs
add wave Ad9910_pro_vlg_tst/io_reset
add wave Ad9910_pro_vlg_tst/io_update
#添加頂層文件裏面的例化模塊 *是通配符,匹配所有的信號
add wave Ad9910_pro_vlg_tst/i1/*
run 100us