一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

verilog語言編寫規(guī)范

ZYNQ ? 來源:華為 ? 作者:華為 ? 2022-11-23 17:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


	

本次分享華為公司的《大規(guī)模邏輯設(shè)計(jì)指導(dǎo)書》中的內(nèi)容。


1 目的

本規(guī)范的目的是提高書寫代碼的可讀性 可修改性 可重用性 優(yōu)化代碼綜合和仿真的結(jié) 果 指導(dǎo)設(shè)計(jì)工程師使用VerilogHDL規(guī)范代碼和優(yōu)化電路 規(guī)范化公司的ASIC設(shè)計(jì)輸入從而做到
  1. 邏輯功能正確
  2. 可快速仿真
  3. 綜合結(jié)果最優(yōu)( 如果是hardware model)
  4. 可讀性較好

2 范圍

本規(guī)范涉及Verilog HDL編碼風(fēng)格 編碼中應(yīng)注意的問題 Testbench的編碼等本規(guī)范適用于Verilog model的任何一級 RTL ehavioral, gate_level) 也適用于出于仿真綜合或二者結(jié)合的目的而設(shè)計(jì)的模塊.

3 定義

  • Verilog HDL:Verilog 硬件描述語言
  • FSM:有限狀態(tài)機(jī)
  • 偽路徑:靜態(tài)時序分析 STA 認(rèn)為是時序失敗 而設(shè)計(jì)者認(rèn)為是正確的路徑。

4 引用標(biāo)準(zhǔn)和參考資料

下列標(biāo)準(zhǔn)包含的條文 通過在本標(biāo)準(zhǔn)中引用而構(gòu)成本標(biāo)準(zhǔn)的條文 在標(biāo)準(zhǔn)出版時 所示版本均為有效 所有標(biāo)準(zhǔn)都會被修訂 使用本標(biāo)準(zhǔn)的各方應(yīng)探討 使用下列標(biāo)準(zhǔn)最新版本的可能性。

5規(guī)范內(nèi)容

5.1 Verilog 編碼風(fēng)格

本章節(jié)中提到的Verilog編碼規(guī)則和建議適應(yīng)于 Verilog model的任何一級 RTL behavioral,gate_level) 也適用于出于仿真 綜合或二者結(jié)合的目的而設(shè)計(jì)的模塊

5.1.1

選擇有意義的信號和變量名 對設(shè)計(jì)是十分重要的 命名包含信號或變量諸如出處 有效狀態(tài)等基本含義 下面給出一些命名的規(guī)則
  • 用有意義而有效的名字 有效的命名有時并不是要求將功能描述出來 如:

	
  1. For( I = 0; I < 1024; I = I + 1)

  2. Mem[I] <= #1 32’b0;

For 語句中的循環(huán)指針I(yè) 就沒必要用loop_index作為指針名
  • 用連貫的縮寫

    長的名字對書寫和記憶會帶來不便 甚至帶來錯誤 采用縮寫時應(yīng)注意同一信號在模塊中的一致性 縮寫的例子如下Addr :addressPntr :pointerClk :clockRst :reset

  • 用最右邊的字符下劃線表示低電平有效 高電平有效的信號不得以下劃線表示 短暫 的引擎信號建議采用高有效

    Rst_ Trdy, Irdy Idsel.

  • 大小寫原則

    名字一般首字符大寫 其余小寫 但parameter, integer 定義的數(shù)值名可全部用大寫兩個詞之間要用下劃線連接。如 Packetaddr, Datain, Memwr Memce_

  • 全局信號名字中應(yīng)包含信號來源的一些信息如 D_addr[7:2] 這里的 D 指明了地址是解碼模塊(Decoder module)中的地址

  • 同一信號在不同層次應(yīng)保持一致性

  • 自己定義的常數(shù) 類型等用大寫標(biāo)識

    如 parameter CYCLE=100

  • 避免使用保留字

    如 in out x z等不能夠做為變量 端口或模塊名

  • 添加有意義的后綴 使信號名更加明確 常用的后綴如下:b4bdb53a-67ab-11ed-8abf-dac502259ad0.png

5.1.2 Modules

  • 頂層模塊應(yīng)只是內(nèi)部模塊間的互連

    Verilog設(shè)計(jì)一般都是層次型的設(shè)計(jì) 也就是在設(shè)計(jì)中會出現(xiàn)一個或多個模塊 模塊間的調(diào)用在所難免 可把設(shè)計(jì)比喻成樹 被調(diào)用的模塊就是樹葉 沒被調(diào)用的模塊就是樹根 那么在這個樹根模塊中 除了內(nèi)部的互連和模塊的調(diào)用外 盡量避免再做邏輯 如不能再出現(xiàn)對reg變量賦值等 這樣做的目的是為了更有效的綜合 因?yàn)樵陧攲幽K中出現(xiàn)中間邏輯 Synopsys 的design compiler 就不能把子模塊中的邏輯綜合到最優(yōu)。

  • 每一個模塊應(yīng)在開始處注明文件名 功能描述 引用模塊 設(shè)計(jì)者 設(shè)計(jì)時間及版權(quán)信息等,如:


	
  1. Filename﹕ RX_MUX.v

  2. Author

  3. Description

  4. CalledbyTopmodule

  5. RevisionHistory99-08-01

  6. Revision1.0

  7. Email﹕ M@sz.huawei.com.cn

  8. CompanyHuaweiTechnology.Inc

  9. Copyright(c) 1999, HuaweiTechnologyInc, All right reserved

  • 不要對Inpu t進(jìn)行驅(qū)動, 在module 內(nèi)不要存在沒有驅(qū)動的信號 更不能在模塊端口中出現(xiàn)沒有驅(qū)動的輸出信號,避免在仿真或綜合時產(chǎn)生warning 干擾錯誤定位。

  • 每行應(yīng)限制在80個字符以內(nèi) 以保持代碼的清晰 美觀和層次感 一條語句占用一行 如果較長 超出80個字符 則要換行

  • 電路中調(diào)用的 module名 用 Uxx 標(biāo) 示 向量大小表 示要清晰 采用基于名字(namebased )的調(diào)用而非基于順序的(orderbased),如:


	
  1. InstanceUInstance2(

  2. .DataOut(DOUT ),

  3. .DataIn(DIN ),

  4. .Cs_(Cs_)

  5. );

  • 用一個時鐘的上沿或下沿采樣信號, 不能一會兒用上沿 ,一會兒用下沿 ,如果既要用上沿又要用下沿 ,則應(yīng)分成兩個模塊設(shè)計(jì)。建議在頂層模塊中對Clock做一非門,在層次模塊中如果要用時鐘下沿就可以用非門產(chǎn)生的Posedge Clk_, 這樣的好處是在整個設(shè)計(jì)中采用同一種時鐘沿觸發(fā), 有利于綜合。基于時鐘的綜合策略

  • 在模塊中增加注釋

    對信號 參量 引腳 模塊 函數(shù)及進(jìn)程等加以說明 便于閱讀與維護(hù)

  • Module 名要用大寫標(biāo)示 且應(yīng)與文件名保持一致, 如


	
  1. Module DFF_ASYNC_RST(

  2. Reset,

  3. Clk,

  4. Data,

  5. Qout

  6. );

  • 嚴(yán)格芯片級模塊的劃分

    只有頂層包括IO引腳(pads) 中間層是時鐘產(chǎn)生模塊 JTAG 芯片的內(nèi)核(CORE)這樣便于對每個模塊加以約束仿真 對時鐘也可以仔細(xì)仿真

  • 模塊輸出寄存器

    對所有模塊的輸出加以寄存 如圖1 使得輸出的驅(qū)動強(qiáng)度和輸入的延遲可以預(yù)測 從而使得模塊的綜合過程更簡單

  • 輸出驅(qū)動的強(qiáng)度都等于平均的觸發(fā)器驅(qū)動強(qiáng)度

  • 將關(guān)鍵路徑邏輯和非關(guān)鍵路徑邏輯放在不同模塊

保證DC可以對關(guān)鍵路徑模塊實(shí)現(xiàn)速度優(yōu)化 而對非關(guān)鍵路徑模塊實(shí)施面積優(yōu)化 ,在同一模塊DC無法實(shí)現(xiàn)不同的綜合策略。
  • 將相關(guān)的組合邏輯放在同一模塊 有助于DC對其進(jìn)行優(yōu)化 因?yàn)镈C通常不能越過模塊的邊界來優(yōu)化邏輯。
審核編輯:湯梓紅

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

    關(guān)注

    29

    文章

    1367

    瀏覽量

    112321
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    330

    瀏覽量

    48077
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    969

    瀏覽量

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

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70800

原文標(biāo)題:【華為】verilog語言編寫規(guī)范(一)

文章出處:【微信號:ZYNQ,微信公眾號:ZYNQ】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    【尋求幫助】用verilog語言編寫計(jì)數(shù)器

    哪位大蝦幫幫忙用verilog語言編寫一個計(jì)數(shù)器,謝謝啊
    發(fā)表于 03-23 17:30

    verilog語言編寫PwM生成模塊

    verilog語言編寫PwM生成模塊
    發(fā)表于 05-16 13:41

    如何用Verilog語言編寫量子算法

    我想用Verilog語言編寫一個3bit的傅里葉變換,但弄不清酉變換,有沒有大佬給個程序范例,謝謝!
    發(fā)表于 09-19 08:26

    System Verilog常見問題及語言參考手冊規(guī)范

    本文討論了一些System Verilog問題以及相關(guān)的SystemVerilog 語言參考手冊規(guī)范。正確理解這些規(guī)格將有助于System Verilog用戶避免意外的模擬結(jié)果。
    發(fā)表于 12-11 07:19

    System Verilog問題和語言參考手冊規(guī)范

    本文討論了一些System Verilog問題以及相關(guān)的SystemVerilog 語言參考手冊規(guī)范。正確理解這些規(guī)格將有助于System Verilog用戶避免意外的模擬結(jié)果。
    發(fā)表于 12-24 07:07

    討論Verilog語言的綜合問題

    是在描述硬件,即用代碼畫圖。在 Verilog 語言中,always 塊是一種常用的功能模塊,也是結(jié)構(gòu)最復(fù)雜的部分。筆者初學(xué)時經(jīng)常為 always 語句的編寫而苦惱.
    發(fā)表于 07-29 07:42

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

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

    Verilog程序編寫規(guī)范

    適合verilog初學(xué)者的教程,可以好好參考學(xué)習(xí)。
    發(fā)表于 03-25 14:06 ?12次下載

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

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

    Verilog硬件描述語言參考手冊免費(fèi)下載

    Verilog 硬件描述語言參考手冊是根據(jù)IEEE 的標(biāo)準(zhǔn)“Verilog 硬件描述語言參考手冊1364-1995”編寫的。OVI (Op
    發(fā)表于 02-05 16:24 ?79次下載
    <b class='flag-5'>Verilog</b>硬件描述<b class='flag-5'>語言</b>參考手冊免費(fèi)下載

    Verilog程序編寫規(guī)范

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

    淺談verilog語言編寫規(guī)范

    如果代碼中發(fā)現(xiàn)多次使用一個特殊的表達(dá)式 ,那么就用一個函數(shù)來代替。這樣在以后的版本升級時更便利 ,這種概念在做行為級的代碼設(shè)計(jì)時同樣使用 ,經(jīng)常使用的一組描述可以寫到一個任務(wù)(task)中 。
    發(fā)表于 11-21 09:48 ?1066次閱讀

    基于verilog編寫99秒計(jì)數(shù)器

    Verilog語言編寫,通過模塊化設(shè)計(jì)的99秒技術(shù)器
    發(fā)表于 02-16 16:16 ?0次下載

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

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

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

      注:以R起頭的是對編寫Verilog代碼的IP設(shè)計(jì)者所做的強(qiáng)制性規(guī)定,以G起頭的條款是建議采用的規(guī)范。每個設(shè)計(jì)者遵守本規(guī)范可鍛煉命名規(guī)范
    的頭像 發(fā)表于 08-15 16:23 ?2949次閱讀