IC數字前端設計開發29 (vim verilog自動化工具)
來自:http://bbs.eetop.cn/thread-335755-3-1.html
Python中,怎麼在字串裡嵌入雙引號或者單引號
兩種方法:
1、在雙引號前面加個轉義符 \ ,即反斜槓。如"Hello \"W \"orld",會輸出 Hello "W"orld
2、用單引號引起整個字串,如'Hello "W"orld',同樣輸出 Hello "W"orld
同理也可以在字串裡嵌入單引號,如"Hello 'W'orld",輸出 Hello 'W'orld
依論壇朋友需求,簡單講下指令碼的安裝和使用方法。寫得比較簡陋,請大家見諒哈,後面可能會更新,如果大家不清楚,可以回貼。
安裝方法:
將壓縮包解壓後,將其中.vim/plugin/automatic.vim 拷貝到你home目錄下相同目錄中(.vim/plugin/),同時也拷貝.vim/after將home目錄下.vim/, after目錄下是一些圖示,預設是linux平臺下的圖示。
重新開啟gvim,會發現gvim會多幾個選單,其中就有一個verilog選單,點開後會有一系列子選單,其中就有Autoinst
-- 約束:verilog
-- 如果大量依賴本指令碼的話,建議每個.v檔案用模板的方式產生(模組的新增Header可以自行修改,搜尋automatic.vim檔案AddHeader,請比照相同的語法格式自行根據情況修改),然後用ctags_gen *.v , *.v為所有工程用到的.v檔案,生成tags檔案,使用指令碼時,需要該tags檔案。
-- 因為指令碼是使用tags檔案來尋找檔案,所以需要這個東西,ctags_gen是用perl寫的一個簡單指令碼,用於尋找module name,注意只有module name後面帶有autoarg
使用:
1. 自動模組例化功能
a) 首先需要被例化模組和呼叫模組的.v檔案需要在同一個目錄,然後在呼叫模組.v檔案新增如下行:
a u_a (【autoinst】); // a 為模組名, 請將autoinst兩邊【】修改為多行註釋符,論壇不允許使用那個字元
注:如果例化時必須要修改parameter,而導致模組名a與例項化名u_a(【autoinst】)不處在同一行,請在autoinst行新增輔助模組名a後再使用,使用完成後將模組名a再刪除,以簡化指令碼的設計複雜度。
b) 滑鼠點中模組例項化行(autoinst關鍵字所在行),然後選擇選單Verilog -> AutoInst, 即完成自動例化功能
2. 自動模組例化連線更新功能: 此功能用於提示當子模組有介面改變後,快速的知道有哪些模組被新增或者被刪除
提示會用註釋的方式在模組port例化行的末尾加上,修改連線程式碼後,請自行刪除。
// INST_NEW 表示當前行,為子模組新增加的訊號
// INST_DEL 表示當前行,子模組已經將此訊號刪除,
a) 滑鼠點中模組例項化行(autoinst關鍵字所在行),然後選擇選單 Verilog -> AutoInstUpdate, AutoInstUpdateOrder 是將連線順序重新排布為子模組介面定義的順序,方便對應
3. 新增例化模組的埠方向
a) 滑鼠點中模組例項化行(autoinst關鍵字所在行),然後選擇選單 Verilog -> AppendPortDirectionToInst
4. 自動定義wire / reg型別功能,
此功能強烈依賴使用者良好的verilog編碼習慣,自己嘗試後請慎重選擇試用。 選單Verilog -> AutoDef, 指令碼會在autodef(請用註釋符包起來)位置開始自動定義資料型別,當然不能識別所有的結構,未完全定義部分(會有提示,但測試中有遇到沒有完全提示的情況)請自行新增到autodef {{{ }}} 結構之外, 避免重新autodef時被指令碼刪除。
5. 其它功能可以嘗試摸索一下,應該是挺簡單的。
工具下載地址:
https://download.csdn.net/download/times_poem/10782178