一、前言
畢業(yè)論文答辯結(jié)束,閑下來寫篇文章。芯片研發(fā)人員都在Linux系統(tǒng)下借助各種EDA工具和代碼語言完成工作,因此提高代碼開發(fā)效率,熟練運(yùn)用開發(fā)工具是十分必要的。本文講述VIM編輯神器的verilogHDL自定義模板調(diào)用以及VCS仿真軟件的基本使用方式。
二、VIM編輯器自定義模板調(diào)用
在之前的博文中談到過GVIM編輯器中可以通過調(diào)用模板來生成重復(fù)性代碼,但沒有介紹自定義模板的方式。關(guān)于VIM的安裝與配置詳細(xì)內(nèi)容,見參考文獻(xiàn)1。這里主要用到VIM的用戶配置文件:.vimrc(若沒有新建該文件并編輯),我們?cè)谟脩裟夸浵率褂胠s -al命令可以看到該文件:
使用VIM編輯器打開VIM配置文件,以下部分是在文件底部自行添加的命令:
:ab Shixu always@(posedge clk or negedge rst_n)begin
自定義模板的格式為 :ab
其中com是調(diào)用指令,code是當(dāng)前指令生成的代碼。我們新建一個(gè).v文件測(cè)試下就能看出模板調(diào)用的妙處了。
編輯(插入)模式下,輸入Shixu后按下回車生成:
輸入Zuhe后按下回車生成:
輸入Counter后按下回車生成:
這三個(gè)是最常用到的代碼,三者相互組合可以完成很多功能了。但若狀態(tài)或工作模式較多,一般采用狀態(tài)機(jī)完成。輸入FSM后按下回車生成:
在設(shè)計(jì)時(shí),經(jīng)常要根據(jù)數(shù)值范圍設(shè)定變量的位寬。此時(shí)經(jīng)常用到一個(gè)位寬計(jì)算到函數(shù)。輸入Width_func后按下回車生成:
在設(shè)計(jì)文件里常用的重復(fù)性代碼基本就這些了,可以根據(jù)自己的coding style靈活調(diào)整。接下來說說testbench部分。輸入Test后按下回車生成:
里邊包括了testbench中的時(shí)鐘和復(fù)位相關(guān)的參數(shù)與信號(hào)定義。實(shí)際上時(shí)鐘和復(fù)位信號(hào)的產(chǎn)生也是可以復(fù)用的。輸入Clock_rst后按下回車生成:
自定義模板還沒有靈活到可以生成模塊例化代碼,這一部分功能得借助其他腳本語言完成了,筆者還沒有嘗試過。
三、VCS軟件仿真
光說這個(gè)軟件沒什么意思,我們來舉個(gè)栗子~設(shè)計(jì)一個(gè)計(jì)數(shù)器,輸出位寬固定32位。當(dāng)使能信號(hào)拉高則開始從0計(jì)數(shù)直到最大值后再次從0開始遞增。設(shè)計(jì)代碼counter.v:
測(cè)試代碼 counter_tb.v:
VCS仿真大體分為三步:編譯、仿真以及調(diào)試。編譯命令:vcs *.v -debug_all 命令行界面會(huì)顯示些信息:
之后文件夾內(nèi)會(huì)生成simv文件,執(zhí)行該文件進(jìn)行仿真。./simv -gui 這里使用-gui選項(xiàng)打開DVE圖形界面。
接下來的操作和常用的Modelsim差不多了。把要觀測(cè)的信號(hào)添加到波形窗口:
點(diǎn)擊左上角按鈕運(yùn)行仿真:
按下紅色箭頭所指位置觀察全局波形:
按住鼠標(biāo)左鍵拖動(dòng)來局部放大數(shù)據(jù)波形,計(jì)數(shù)器與輸出從0到19周期性遞增,功能正確。
復(fù)雜的操作后續(xù)用到再學(xué)。
-
VCS
+關(guān)注
關(guān)注
0文章
80瀏覽量
9908 -
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70671 -
仿真軟件
+關(guān)注
關(guān)注
21文章
259瀏覽量
31030 -
編輯器
+關(guān)注
關(guān)注
1文章
822瀏覽量
32018
原文標(biāo)題:數(shù)字IC設(shè)計(jì)入門必備——VIM自定義模板調(diào)用與VCS基本仿真操作示例
文章出處:【微信號(hào):ZYNQ,微信公眾號(hào):ZYNQ】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
vcs實(shí)用技巧

VCS仿真指南(第二版).pdf
VCS DVE 仿真工具講解
nanosim和vcs混合仿真的過程是怎樣的?
基于linux系統(tǒng)的VCS使用及仿真說明
VCS的調(diào)試模式
基于linux系統(tǒng)實(shí)現(xiàn)的vivado調(diào)用VCS仿真教程

如何使用Synopsys VCS仿真器進(jìn)行ZYNQ BFM IPI設(shè)計(jì)仿真
如何使用Vivado中的Synopsys VCS仿真器進(jìn)行仿真
SpinalHDL運(yùn)行VCS+Vivado相關(guān)仿真
淺談VCS的兩種仿真flow
VCS實(shí)用技巧分享

評(píng)論