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

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

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

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

CHANBAEK ? 來源:文禮軒 ? 作者:文禮軒 ? 2023-08-15 16:23 ? 次閱讀

注:以R起頭的是對編寫Verilog代碼的IP設(shè)計者所做的強(qiáng)制性規(guī)定,以G起頭的條款是建議采用的規(guī)范。每個設(shè)計者遵守本規(guī)范可鍛煉命名規(guī)范性。

4 注釋(Comments)

注釋可用于描述 Verilog HDL代碼的功能,特別需要提醒設(shè)計者注意的是,只依靠讀代碼很難理解的設(shè)計意圖必須在代碼中添加注釋加以說明。

4.1 文件頭(File Headers)

每一個可綜合的Verilog RTL級電路模塊、虛擬器件和測試模塊文件必須具有下面格式的文件頭。設(shè)計規(guī)范規(guī)定:文件頭的格式必須與下面的格式一致,以便于將來可用軟件對模塊代碼進(jìn)行分析處理。文件頭中大寫的關(guān)鍵詞可以用來檢索。下面的這個模板可以保證文件頭的一致性。下面所示的文件頭只是最小要求。在“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 每個文件必須有文件頭(header)

每一個文件必須包括如上面代碼段所示的文件頭。其中,所有的區(qū)域都必須包括在內(nèi),甚至空的數(shù)據(jù)段。

原因:按照規(guī)范編寫的標(biāo)準(zhǔn)文件頭便于建立公司內(nèi)部的設(shè)計信息查詢系統(tǒng)。

R 4.2 使用文件頭界定標(biāo)記 [+FHEADER & -FHEADER]

標(biāo)簽+FHEADER& -FHEADER一定要用來定義頭信息的界限。(the boundary of the 文件頭
information)

原因:這是識別文件頭的簡單方法,標(biāo)明該頭是文件頭,便于用文本工具自動地查詢存檔的資料。

R 4.3 文件頭內(nèi)必須包含文件名

文件頭中必須包含文件名

原因:這樣做提供了一種簡單的方法以便用文本處理工具自動地查詢相關(guān)的設(shè)計文件。

R 4.4 文件頭中必須包含聯(lián)系方式

文件頭中必須包含有關(guān)本代碼的多種信息,其中包括開發(fā)小組的名稱、作者名、版本歷史、作者電話、電子郵件和郵寄地址。

原因:必要時可以找到原作者詢問只從設(shè)計文檔無法理解的問題。

R 4.5 文件頭包含發(fā)布?xì)v史

文件頭必須要包含進(jìn)入虛擬器件(VC)庫的修改歷史,最近的修改列于最后。日期格式必須采用YYYY-MM-DD。這個信息對于集成器是有用的。本地的修改歷史不應(yīng)該包含其中。

原因:要求去記錄設(shè)計的修改歷史。

R 4.6 文件頭包含一個關(guān)鍵字段

文件頭必須包含便于搜索的關(guān)鍵字段。該字段應(yīng)該包含有關(guān)本模塊功能的簡要說明,或是能與本模塊配合運(yùn)行的總線和系統(tǒng)的名稱。

原因:關(guān)鍵字可提供快速的搜索機(jī)制,便于自動文本處理工具在龐大的虛擬器件 (VC)庫中搜索合適的器件。如果沒有關(guān)鍵字,該條目應(yīng)該空著。

例子:sdram, address decoder, coldfire, sbus, amba,usb2.0

R 4.7 文件頭必須包含一段描述模塊功能的說明

文件頭必須包含一段描述本模塊功能的說明,而不是如何操作或運(yùn)行方式的說明。

原因:有助于對模塊功能的理解。

R 4.8 文件頭必須包含參數(shù)描述文件的名和路徑

文件頭必須包含描述本模塊代碼所使用的參數(shù)文件的名和路徑。缺省值必須都在參數(shù)文件中列出。有效值域也必須標(biāo)出。

原因:有助于對Verilog HDL代碼的理解

R 4.9 復(fù)位策略必須在頭文件中說明

在頭文件中必須詳細(xì)說明復(fù)位策略。包括說明是同步復(fù)位還是異步復(fù)位,是內(nèi)部復(fù)位還是外部上電復(fù)位,是硬復(fù)位還是軟復(fù)位,以及該模塊是否能用單個復(fù)位來調(diào)試。

原因:改善代碼的可讀性,突出重點(diǎn)和必需的綜合步驟。

R 4.10 對時鐘域(clock domain)的說明

在頭文件中必須詳細(xì)說明所有的時鐘和時鐘策略。

原因:說明內(nèi)部生成的時鐘或是分頻的時鐘,便于對代碼和時鐘策略的理解。

R 4.11 對關(guān)鍵布線路徑的說明

包括外部時機(jī)關(guān)系的決定性的時機(jī)必須記錄。文件頭的位置可以包含含有決定性的時機(jī)的文件名(如creation guide)

原因:建立時機(jī)和輸出時機(jī)關(guān)系突出了必需的綜合和測試。

R 4.12 記錄測試的特點(diǎn)

任何具體的代碼中的用于提高測試速度的測試特色必須記錄。

原因:一旦可視化部件被集成,這點(diǎn)可用來改善對代碼的理解和測試。

例子:parallel clocking, BIST

R 4.13 需要詳細(xì)的異步接口

異步接口必須包括時間關(guān)系和相關(guān)頻率

原因:有助于對設(shè)計的理解,并且有助于決定是否需要額外的同步的stages用于一個不同目標(biāo)的應(yīng)用。

R 4.14 標(biāo)明掃描方法的風(fēng)格

有關(guān)于掃描風(fēng)格的標(biāo)注必不可缺

原因:有助于設(shè)計的集成

例子:Mux-D oRLSSD

R 4.15 文檔實(shí)例化

文件頭必須包括有關(guān)于文檔內(nèi)每一個單元、模塊、函數(shù)調(diào)用、任務(wù)是如何實(shí)例化的部分。(參考R 4.30, R 7.4, G 10.23)

原因:標(biāo)明必須用于重定義技術(shù)的區(qū)域,并且?guī)椭斫庠O(shè)計層次。

例子:實(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è)計者的判斷,并可保持附加信息點(diǎn)的位置連續(xù)性。

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

    關(guān)注

    1629

    文章

    21736

    瀏覽量

    603419
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

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

    關(guān)注

    1

    文章

    385

    瀏覽量

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

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68616
  • IP設(shè)計
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    10513
收藏 人收藏

    評論

    相關(guān)推薦

    怎么樣提高verilog代碼編寫水平?

    ,共同進(jìn)步。 歡迎加入FPGA技術(shù)微信交流群14群! 交流問題(一) Q:怎么樣提高verilog代碼編寫水平?Cpu 從事DFT工作。目前僅限于寫一些簡單模塊。自學(xué)的話如何提高
    發(fā)表于 09-25 20:05

    【分享】verilog代碼書寫規(guī)范

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

    Verilog HDL代碼書寫規(guī)范

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

    Verilog HDL代碼書寫規(guī)范

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

    FPGA代碼書寫規(guī)范

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

    如何在verilog編寫代碼?

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

    Verilog代碼書寫規(guī)范

    Verilog代碼書寫規(guī)范規(guī)范的目的是提高書寫代碼的可讀性、可修改性、可重用性,優(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é)會寫代碼還不行,我們需要更加的規(guī)范。
    發(fā)表于 03-25 14:43 ?24次下載

    華為_VERILOG語言編寫規(guī)范

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

    Verilog編寫的信道估計

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

    Verilog程序編寫規(guī)范

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

    verilog語言編寫規(guī)范

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

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

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

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

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