注:以R起頭的是對(duì)編寫(xiě)Verilog代碼的IP設(shè)計(jì)者所做的強(qiáng)制性規(guī)定,以G起頭的條款是建議采用的規(guī)范。每個(gè)設(shè)計(jì)者遵守本規(guī)范可鍛煉命名規(guī)范性。
4 注釋(Comments)
注釋可用于描述 Verilog HDL代碼的功能,特別需要提醒設(shè)計(jì)者注意的是,只依靠讀代碼很難理解的設(shè)計(jì)意圖必須在代碼中添加注釋加以說(shuō)明。
每一個(gè)可綜合的Verilog RTL級(jí)電路模塊、虛擬器件和測(cè)試模塊文件必須具有下面格式的文件頭。設(shè)計(jì)規(guī)范規(guī)定:文件頭的格式必須與下面的格式一致,以便于將來(lái)可用軟件對(duì)模塊代碼進(jìn)行分析處理。文件頭中大寫(xiě)的關(guān)鍵詞可以用來(lái)檢索。下面的這個(gè)模板可以保證文件頭的一致性。下面所示的文件頭只是最小要求。在“REUSE ISSUE”段之后,還可以再添加其他的文件頭.另外,有關(guān)版權(quán)的文件頭也應(yīng)該包括在文件頭中。
// +FHEADER-----------------------------------------------------------------
// Optional Copyright (c)
// Optional Company Confidential
// ----------------------------------------------------------------------
// FILE NAME :
// DEPARTMENT :
// AUTHOR:
// AUTHOR’S EMAIL :
// --------------------------------------------------------------------
// RELEASE HISTORY
// VERSION DATE AUTHORDESCRIPTION
// 1.0 YYYY-MM-DD name
// ---------------------------------------------------------------------
// KEYWORDS : General file searchinGkeywords, leave blank if none.
//-----------------------------------------------------------------------
// PURPOSE : Short description of functionality
// ----------------------------------------------------------------------
// PARAMETERS
// PARAM NAME RANGE : DESCRIPTION : DEFAULT : UNITS
// e.g.DATA_WIDTH [32,16] : width of the data : 32 :
// ----------------------------------------------------------------------
// REUSE ISSUES
// Reset Strategy :
// Clock Domains :
// Critical TiminG:
// Test Features :
// Asynchronous I/F :
// Scan Methodology :
// Instantiations :
// Synthesizable (y/n) :
// OtheR:
// -FHEADER-------------------------------------------------------------
R 4.1 每個(gè)文件必須有文件頭(header)
每一個(gè)文件必須包括如上面代碼段所示的文件頭。其中,所有的區(qū)域都必須包括在內(nèi),甚至空的數(shù)據(jù)段。
原因:按照規(guī)范編寫(xiě)的標(biāo)準(zhǔn)文件頭便于建立公司內(nèi)部的設(shè)計(jì)信息查詢系統(tǒng)。
R 4.2 使用文件頭界定標(biāo)記 [+FHEADER & -FHEADER]
標(biāo)簽+FHEADER& -FHEADER一定要用來(lái)定義頭信息的界限。(the boundary of the 文件頭
information)
原因:這是識(shí)別文件頭的簡(jiǎn)單方法,標(biāo)明該頭是文件頭,便于用文本工具自動(dòng)地查詢存檔的資料。
R 4.3 文件頭內(nèi)必須包含文件名
文件頭中必須包含文件名
原因:這樣做提供了一種簡(jiǎn)單的方法以便用文本處理工具自動(dòng)地查詢相關(guān)的設(shè)計(jì)文件。
R 4.4 文件頭中必須包含聯(lián)系方式
文件頭中必須包含有關(guān)本代碼的多種信息,其中包括開(kāi)發(fā)小組的名稱(chēng)、作者名、版本歷史、作者電話、電子郵件和郵寄地址。
原因:必要時(shí)可以找到原作者詢問(wèn)只從設(shè)計(jì)文檔無(wú)法理解的問(wèn)題。
R 4.5 文件頭包含發(fā)布?xì)v史
文件頭必須要包含進(jìn)入虛擬器件(VC)庫(kù)的修改歷史,最近的修改列于最后。日期格式必須采用YYYY-MM-DD。這個(gè)信息對(duì)于集成器是有用的。本地的修改歷史不應(yīng)該包含其中。
原因:要求去記錄設(shè)計(jì)的修改歷史。
R 4.6 文件頭包含一個(gè)關(guān)鍵字段
文件頭必須包含便于搜索的關(guān)鍵字段。該字段應(yīng)該包含有關(guān)本模塊功能的簡(jiǎn)要說(shuō)明,或是能與本模塊配合運(yùn)行的總線和系統(tǒng)的名稱(chēng)。
原因:關(guān)鍵字可提供快速的搜索機(jī)制,便于自動(dòng)文本處理工具在龐大的虛擬器件 (VC)庫(kù)中搜索合適的器件。如果沒(méi)有關(guān)鍵字,該條目應(yīng)該空著。
例子:sdram, address decoder, coldfire, sbus, amba,usb2.0
R 4.7 文件頭必須包含一段描述模塊功能的說(shuō)明
文件頭必須包含一段描述本模塊功能的說(shuō)明,而不是如何操作或運(yùn)行方式的說(shuō)明。
原因:有助于對(duì)模塊功能的理解。
R 4.8 文件頭必須包含參數(shù)描述文件的名和路徑
文件頭必須包含描述本模塊代碼所使用的參數(shù)文件的名和路徑。缺省值必須都在參數(shù)文件中列出。有效值域也必須標(biāo)出。
原因:有助于對(duì)Verilog HDL代碼的理解
R 4.9 復(fù)位策略必須在頭文件中說(shuō)明
在頭文件中必須詳細(xì)說(shuō)明復(fù)位策略。包括說(shuō)明是同步復(fù)位還是異步復(fù)位,是內(nèi)部復(fù)位還是外部上電復(fù)位,是硬復(fù)位還是軟復(fù)位,以及該模塊是否能用單個(gè)復(fù)位來(lái)調(diào)試。
原因:改善代碼的可讀性,突出重點(diǎn)和必需的綜合步驟。
R 4.10 對(duì)時(shí)鐘域(clock domain)的說(shuō)明
在頭文件中必須詳細(xì)說(shuō)明所有的時(shí)鐘和時(shí)鐘策略。
原因:說(shuō)明內(nèi)部生成的時(shí)鐘或是分頻的時(shí)鐘,便于對(duì)代碼和時(shí)鐘策略的理解。
R 4.11 對(duì)關(guān)鍵布線路徑的說(shuō)明
包括外部時(shí)機(jī)關(guān)系的決定性的時(shí)機(jī)必須記錄。文件頭的位置可以包含含有決定性的時(shí)機(jī)的文件名(如creation guide)
原因:建立時(shí)機(jī)和輸出時(shí)機(jī)關(guān)系突出了必需的綜合和測(cè)試。
R 4.12 記錄測(cè)試的特點(diǎn)
任何具體的代碼中的用于提高測(cè)試速度的測(cè)試特色必須記錄。
原因:一旦可視化部件被集成,這點(diǎn)可用來(lái)改善對(duì)代碼的理解和測(cè)試。
例子:parallel clocking, BIST
R 4.13 需要詳細(xì)的異步接口
異步接口必須包括時(shí)間關(guān)系和相關(guān)頻率
原因:有助于對(duì)設(shè)計(jì)的理解,并且有助于決定是否需要額外的同步的stages用于一個(gè)不同目標(biāo)的應(yīng)用。
R 4.14 標(biāo)明掃描方法的風(fēng)格
有關(guān)于掃描風(fēng)格的標(biāo)注必不可缺
原因:有助于設(shè)計(jì)的集成
例子:Mux-D oRLSSD
R 4.15 文檔實(shí)例化
文件頭必須包括有關(guān)于文檔內(nèi)每一個(gè)單元、模塊、函數(shù)調(diào)用、任務(wù)是如何實(shí)例化的部分。(參考R 4.30, R 7.4, G 10.23)
原因:標(biāo)明必須用于重定義技術(shù)的區(qū)域,并且?guī)椭斫庠O(shè)計(jì)層次。
例子:實(shí)例化 mux2s cell, decode task
原因:絕大部分由實(shí)例組成的模塊。
R4.16 標(biāo)明可綜合能力
綜合結(jié)構(gòu)的能力必須以指定的YES或NO標(biāo)明
原因:直接標(biāo)明模塊的使用路徑(如:是否該模塊可被用于仿真)
G 4.17 其他頭文檔(OtheRheadeRdocumentation)
建議文件頭包含額外的相關(guān)信息——這些信息用于集成器或可以使代碼更易理解。這一部分信息有助于設(shè)計(jì)者的判斷,并可保持附加信息點(diǎn)的位置連續(xù)性。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
603007 -
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110075 -
RTL
+關(guān)注
關(guān)注
1文章
385瀏覽量
59761 -
代碼
+關(guān)注
關(guān)注
30文章
4779瀏覽量
68524 -
IP設(shè)計(jì)
+關(guān)注
關(guān)注
0文章
10瀏覽量
10512
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論