2011年12月30日 星期五

2011/11/14 Verilog之檔案輸出

Verilog本身是由C語言所寫成,
那麼C語言的功能幾乎是應有盡有,
檔案輸出當然也不在話下。

Verilog的檔案輸出和C語言極為類似,
首先得宣告一個變數用來當作檔案的指標,
並且透過指標的名稱來修改檔案的內容,
至於檔案開啟的函數則和C語言一樣是fopen,
若今天宣告一個變數叫f,
那我就對f進行fdisplay的函數,
就可以在檔案裡面寫下文字,
範例如下:














範例中的檔案被命名為testfileopen,
如果編譯器在資料夾內找不到這個檔案,
就會自動新增一個,
而檔案會建立在CAD的資料夾之中:


如果要調查內容是否正確,
可以透過輔助軟體來檢查:





內容和當初期望的一模一樣,
且裡面出現三次的0D0A正好就是ASCII CODE中的換航指令,也就是"\n"。

然而因為程式簡單所以可以少輸入一個很重要的指令,
也就是fclose,
如果沒有使用這個指令,
檔案因為沒有正常關閉很有可能出現問題。
這一點也是跟C語言一樣的。

檔案的產生可以使得程式有更高度的應用,
但他也不是IC本身該有的功能,
因此也是幫助偵錯和設計IC用的指令。

再來提到的是一個時間函數timeformat
如果我們對timeformat進行以下的宣告:
timeformat(-9, 2, "ns", 7);
其中-9表示他是ns的單位,
2表示小數位的位數,
" "內為想要顯示在數字後面的字串,
通常都是顯示單位,
7則是包括小數點的位數,
也就是這個時間是由4個整數位數加上1個小數點和2個小數位數組成,
在display的表示是以"%t"的形式來正確的輸出,
如果用"%d"也可以有正確的數值,
但卻有可能會空太多位置。

同樣的,
timeformat的函數並非IC本身的功能,
但它卻可以用來測試IC的執行效率,
Verilog中還有個realtime的函數,
可以更精準的印出真正經過的時間,
畢竟一個IC優不優質,
正是決定於同樣一件事情的處理速度。

沒有留言:

張貼留言