精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

分享一些優秀的verilog代碼 高質量verilog代碼的六要素

sanyue7758 ? 來源:IC的世界 ? 作者:IC的世界 ? 2023-07-18 10:09 ? 次閱讀

高質量6要素

高質量的verilog代碼至少需要包含以下幾個要素:可讀性、功能、性能、標準化、穩定性、可定位。

標準化:iterlaken MAC PCIE 這些模塊的設計必須要符合協議標準,能夠與其他廠商產品進行正常對接。

可讀性:代碼是容易閱讀,是否容易理解原理

功能:功能是否正確,功能點是否全面,是否靈活可配置。

性能:讀寫、傳輸速率是否達標

穩定性:跨時鐘等是否處理細致,異常情況代碼是否能夠保持穩定,是否能夠自恢復,狀態機是否會卡住。

可定位:定位手段是否添加全面、遇到故障,是否能夠快速定位。

wKgaomS19GKAAPY_AAGVDtwT-A4277.png

1、可讀性

代碼是否容易閱讀理解,需要注意代碼格式、關鍵信號命令、盡量多添加注釋。

代碼格式:代碼編寫需要采用普遍的格式、如空格的插入、if else的位置放置、特別是復雜的邏輯判斷,該斷行的需要斷行,該添加括號的地方添加括號。

信號命名:信號命名需要注意:如請求信號以req命令,響應信號ack,流控信號fc,信號命令需要通俗易懂,采用常見的縮寫。

注釋清晰:一定要多寫注釋,很多代碼時間長了,自己都看不明白了,就算能看明白,也需要花費不少時間

2、功能達標

代碼功能點是否全面。

各個功能是否能夠正常實現。

各功能是否靈活可配置,如是否具有使能開關

3、性能達標

模塊性能是否達標。設計是否已考慮各項性能指標,如數據通路常見的指標為BPS和PPS。

極限(最佳速率和最差速率)和正常場景下性能是否達標。

特殊包長場景是否已考慮。是否能夠及時處理突發數據。

4、標準化

模塊設計是否符合標準協議,如IEEE802.3 MAC 模塊設計是否符合標準,PCIE 是否能夠與其他廠商的PCIE進行對接傳輸數據,且與主機相關的各項能力結構能夠與主機正常交互。如interlaken接口是否能夠與FPGA的interlaken進行正常對接。

5、穩定性

代碼的穩定性需要關注常見的spyglass lint cdc、跨時鐘信號、代碼是否能夠自恢復。

常見spyglass lint檢查:信號位寬是否匹配,技術是否會溢出、是否產生了latch等等

跨時鐘:跨時鐘的信號是否都進行了同步處理、單bit、多bit信號是否正確同步。電平單bit、多bit數據、單bit脈沖、復位信號的同步方式各不相同,是否都正確同步了。信號同步的max_delay 延時是否符合要求。

自恢復:異常情況下,模塊是否能夠自行恢復,當異常情況消失后,模塊是否夠能夠正常工作。異常情況有:

1)不符合規定的信號輸入:輸入信號eop_in/sop_in/vld_in/error_in的有效狀態有一定的規律,不符合規律的輸入信號是否會導致模塊無法正常處理后面正確的輸入數據。

2)狀態機沒有響應:狀態機跳轉信號沒有響應,是否會導致狀態機卡死,無法跳轉到IDLE狀態。

3)關鍵信號異常跳變:偶發性強電磁反應導致的信號跳變是否會導致模塊一直無法正常工作。

6、可定位

常見的定位手段是否添加全面,比如:各類統計計數、關鍵信號狀態是否可讀、中斷信號添加是否全面。

統計計數:模塊進入數據包多少,輸出數據包多少。完成了多少次xx操作。

關鍵信號可讀:狀態機當前狀態要求可讀,關鍵信號要求可讀

中斷:fifo和ram的寫溢出、空讀、ECC、parity要求接入中斷。

教你如何書寫高質量的Verilog代碼?

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Verilog
    +關注

    關注

    28

    文章

    1343

    瀏覽量

    109980
  • 時鐘
    +關注

    關注

    10

    文章

    1720

    瀏覽量

    131362
  • 編程
    +關注

    關注

    88

    文章

    3591

    瀏覽量

    93592
  • 中斷
    +關注

    關注

    5

    文章

    895

    瀏覽量

    41391
  • 代碼
    +關注

    關注

    30

    文章

    4744

    瀏覽量

    68345

原文標題:高質量的verilog代碼是什么樣的

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    何為高質量代碼?如何寫出高質量代碼

    懂得“數據結構與算法” 寫出高效的代碼,懂得“設計模式”寫出高質量代碼
    發表于 08-02 09:44 ?777次閱讀
    何為<b class='flag-5'>高質量</b>的<b class='flag-5'>代碼</b>?如何寫出<b class='flag-5'>高質量</b><b class='flag-5'>代碼</b>?

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

    優秀代碼:在網上查找開源的、經過驗證的高質量 Verilog 代碼,學習他人的編程風格、代碼結構
    發表于 09-25 20:05

    編寫高質量C語言代碼

    編寫高質量C語言代碼 編寫高質量C語言代碼 編寫高質量C語言代碼
    發表于 07-31 17:47

    verilog_代碼資料

    verilog_代碼資料,非常實用的代碼示例。
    發表于 02-18 15:00 ?37次下載

    verilog代碼規范

    verilog代碼規范,學會寫代碼還不行,我們需要更加的規范。
    發表于 03-25 14:43 ?24次下載

    微軟四大名著之編程精粹:編寫高質量C語言代碼

    c語言有些比較冗雜,要想編出一些高質量的c語言代碼,需要思想來指導,才能更好寫代碼
    發表于 04-20 10:50 ?0次下載

    8051 verilog代碼

    8051 verilog代碼分享,有需要的下來看看。
    發表于 05-24 09:45 ?0次下載

    Verilog 入門的實例代碼

    Verilog 入門的實例代碼,有需要的下來看看
    發表于 05-24 10:03 ?20次下載

    verilog_代碼

    verilog_代碼分享,有需要的朋友下來看看。
    發表于 05-24 10:03 ?12次下載

    Verilog HDL入門教程

    本文主要介紹了Verilog HDL 語言的一些基本知識,目的是使初學者能夠迅速掌握HDL設計方法,初步了解并掌握Verilog HDL語言的基本要素,能夠讀懂簡單的設計
    發表于 07-15 15:27 ?0次下載

    Verilog HDL入門教程

    本文主要介紹了Verilog HDL 語言的一些基本知識,目的是使初學者能夠迅速掌握HDL 設計方法,初步了解并掌握Verilog HDL語言的基本要素,能夠讀懂簡單的設計
    發表于 02-11 08:00 ?99次下載
    <b class='flag-5'>Verilog</b> HDL入門教程

    高質量Verilog代碼有什么特點

    高質量verilog代碼主要包含以下幾個要素:可讀性、功能、性能、標準化、穩定性、可定位。
    發表于 03-30 10:12 ?1935次閱讀
    <b class='flag-5'>高質量</b><b class='flag-5'>Verilog</b><b class='flag-5'>代碼</b>有什么特點

    華為Verilog HDL入門教程的PDF電子書免費下載

    本文主要介紹了Verilog HDL 語言的一些基本知識,目的是使初學者能夠迅速掌握HDL設計方法,初步了解并掌握Verilog HDL語言的基本要素,能夠讀懂簡單的設計
    發表于 12-23 16:47 ?92次下載
    華為<b class='flag-5'>Verilog</b> HDL入門教程的PDF電子書免費下載

    什么樣的Verilog代碼風格是好的風格?

    代碼是給別人和多年后的自己看的。 關于Verilog代碼設計的一些風格和方法之前也寫過一些Verilo
    的頭像 發表于 10-24 15:23 ?1488次閱讀

    如何自動生成verilog代碼

    介紹幾種自動生成verilog代碼的方法。
    的頭像 發表于 11-05 11:45 ?199次閱讀
    如何自動生成<b class='flag-5'>verilog</b><b class='flag-5'>代碼</b>