Monday, January 14, 2013

The art of FPGA construction FPGA的建構藝術 (2) 程式碼編排

基本上,一個程式會有四大架構,

文章內是提到是VHDL的格式,但我想也是用於Verilog當中。

[1] Optional Heading Section

    檔頭部分,通常會寫一些重要的資訊,以及如何使用這套模組(Module)。

好讓第一次使用的人能夠快速上手,給用過的人能夠重新回想,還有一些歷史更改記錄。

[2] Library Declaration 

    宣告用了哪寫資料庫,可以提醒人記得匯入哪些資料到專案中。

[3] Entity Declaration

    其實,Module就是黑盒子的觀念一樣,你把輸入給黑盒子裡面做什麼不重要,

但要得到你想要的輸出,這樣才能達到簡化的目標。因此,輸入及輸出的訊號對Module來說可是很重要的。

為了能夠有效的整理利用就把它們放在此區塊吧。

[4] Architecture Section

    接著,最後的區塊就是給設計者設計的地方囉!!

0108esdSmithL02sm

 

 

 

 

 

 

 

 

 

 

 

 

 

下面有五個小訣竅可以幫助減少錯誤。

[1] 常常註解你的程式碼!!!

你覺得你記得住?等到一年後拿來看再說吧~

[2] 用空白鍵或Tab鍵來增加可讀性。

[3] 變數名稱的命名方式。

    (1) 命名盡量短而好記。舉例來說,

         active low chip enable  

    X active_low_chip_enable

    O CEn_n

    (2) 用“_”來加以敘述變數用途。舉例來說,

        負緣觸發的訊號,可以在變數名稱後面多加個n, _n, _b, *來提醒自己。

[4] 盡量止少使用Function。

[*5] Synchronize signals to change on a clock edge

       正負觸發的問題常常會影響訊號同步的問題。

 

繼續…看下去

 

Reference : 

http://www.embedded.com/design/configurable-systems/4007481/3/The-art-of-FPGA-construction

http://www.embedded.com/design/configurable-systems/4007481/4/The-art-of-FPGA-construction

 


No comments:

Post a Comment

Register Transfer Level Design with Verilog (1) [ebook]

設計程式之所以有趣不外乎是它的千變萬化,同樣的結果卻有不同的寫法。 但這些不同寫法當中也並沒有分誰對誰錯,也沒有制定標準來規範何事該用何解。 這也就是我們設計者的珍貴!! [1] Primitive Instantiations 在Verilog中最基本的邏輯...