0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA的Verilog代碼編寫(xiě)規(guī)范

CHANBAEK ? 來(lái)源:文禮軒 ? 作者:文禮軒 ? 2023-08-15 16:23 ? 次閱讀

注:以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ō)明。

4.1 文件頭(File Headers)

每一個(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ā)小組的名稱、作者名、版本歷史、作者電話、電子郵件和郵寄地址。

原因:必要時(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)的名稱。

原因:關(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ù)性。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598871
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1333

    瀏覽量

    109712
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    384

    瀏覽量

    59513
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4670

    瀏覽量

    67760
  • IP設(shè)計(jì)
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    10496
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【分享】verilog代碼書(shū)寫(xiě)規(guī)范

    FPGA verilog代碼書(shū)寫(xiě)規(guī)范,很好的借鑒
    發(fā)表于 05-21 11:36

    Verilog HDL代碼書(shū)寫(xiě)規(guī)范

    Verilog HDL代碼書(shū)寫(xiě)規(guī)范
    發(fā)表于 09-30 08:55

    Verilog HDL代碼書(shū)寫(xiě)規(guī)范

    本帖最后由 lee_st 于 2017-10-31 08:46 編輯 Verilog HDL代碼書(shū)寫(xiě)規(guī)范
    發(fā)表于 10-21 20:53

    Verilog HDL代碼書(shū)寫(xiě)規(guī)范

    1. 目的本規(guī)范的目的是提高書(shū)寫(xiě)代碼的可讀性、可修改性、可重用性,優(yōu)化代碼綜合和仿真的結(jié)果,指導(dǎo)設(shè)計(jì)工程師使用VerilogHDL規(guī)范代碼
    發(fā)表于 12-08 14:36

    FPGA代碼書(shū)寫(xiě)規(guī)范

    代碼書(shū)寫(xiě)規(guī)范本文節(jié)選自特權(quán)同學(xué)的圖書(shū)《FPGA設(shè)計(jì)實(shí)戰(zhàn)演練(邏輯篇)》配套例程下載鏈接:http://pan.baidu.com/s/1pJ5bCtt 雖然沒(méi)有“國(guó)際標(biāo)準(zhǔn)”級(jí)別的Verilog
    發(fā)表于 04-16 04:08

    如何在verilog編寫(xiě)代碼?

    是5位模式。我決定編寫(xiě)一個(gè)代碼來(lái)生成值,而不是在LCD上看到它我會(huì)創(chuàng)建一個(gè)文本文件并將結(jié)果寫(xiě)入該文件。任何人都可以告訴我如何在verilog編寫(xiě)
    發(fā)表于 10-29 09:40

    Verilog代碼書(shū)寫(xiě)規(guī)范

    Verilog代碼書(shū)寫(xiě)規(guī)范規(guī)范的目的是提高書(shū)寫(xiě)代碼的可讀性、可修改性、可重用性,優(yōu)化代碼
    發(fā)表于 04-15 09:47 ?106次下載

    fpga實(shí)現(xiàn)jpeg Verilog代碼

    本站提供的fpga實(shí)現(xiàn)jpeg Verilog代碼資料,希望能夠幫你的學(xué)習(xí)。
    發(fā)表于 05-27 15:09 ?200次下載

    verilog代碼規(guī)范

    verilog代碼規(guī)范,學(xué)會(huì)寫(xiě)代碼還不行,我們需要更加的規(guī)范。
    發(fā)表于 03-25 14:43 ?24次下載

    華為_(kāi)VERILOG語(yǔ)言編寫(xiě)規(guī)范

    verilog代碼規(guī)范,學(xué)會(huì)寫(xiě)代碼還不行,我們需要更加的規(guī)范。
    發(fā)表于 03-25 14:36 ?34次下載

    Verilog編寫(xiě)的信道估計(jì)

    Xilinx FPGA工程例子源碼:Verilog編寫(xiě)的信道估計(jì)
    發(fā)表于 06-07 14:54 ?38次下載

    Verilog程序編寫(xiě)規(guī)范

    在實(shí)際工作中,許多公司對(duì)Verilog程序編寫(xiě)規(guī)范都有要求。在公司內(nèi)部統(tǒng)一Verilog程序編寫(xiě)規(guī)范
    的頭像 發(fā)表于 09-15 09:35 ?3766次閱讀

    verilog語(yǔ)言編寫(xiě)規(guī)范

    規(guī)范的目的是提高書(shū)寫(xiě)代碼的可讀性 可修改性 可重用性 優(yōu)化代碼綜合和仿真的結(jié) 果 指導(dǎo)設(shè)計(jì)工程師使用VerilogHDL規(guī)范代碼和優(yōu)化電路
    的頭像 發(fā)表于 11-23 17:28 ?1029次閱讀

    如何使用參數(shù)化編寫(xiě)可重用的verilog代碼

    我們將介紹如何使用verilog參數(shù)和generate語(yǔ)句來(lái)編寫(xiě)可重用的verilog 代碼。 與大多數(shù)編程語(yǔ)言一樣,我們應(yīng)該嘗試使盡可能多的
    的頭像 發(fā)表于 05-11 15:59 ?945次閱讀

    IC設(shè)計(jì)之Verilog代碼規(guī)范

    Verilog規(guī)范對(duì)于一個(gè)好的IC設(shè)計(jì)至關(guān)重要。
    的頭像 發(fā)表于 08-17 10:14 ?1107次閱讀
    IC設(shè)計(jì)之<b class='flag-5'>Verilog</b><b class='flag-5'>代碼</b><b class='flag-5'>規(guī)范</b>