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

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

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

分享一些優(yōu)秀的verilog代碼 高質(zhì)量verilog代碼的六要素

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

高質(zhì)量6要素

高質(zhì)量的verilog代碼至少需要包含以下幾個(gè)要素:可讀性、功能、性能、標(biāo)準(zhǔn)化、穩(wěn)定性、可定位。

標(biāo)準(zhǔn)化:iterlaken MAC PCIE 這些模塊的設(shè)計(jì)必須要符合協(xié)議標(biāo)準(zhǔn),能夠與其他廠商產(chǎn)品進(jìn)行正常對(duì)接。

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

功能:功能是否正確,功能點(diǎn)是否全面,是否靈活可配置。

性能:讀寫、傳輸速率是否達(dá)標(biāo)

穩(wěn)定性:跨時(shí)鐘等是否處理細(xì)致,異常情況代碼是否能夠保持穩(wěn)定,是否能夠自恢復(fù),狀態(tài)機(jī)是否會(huì)卡住。

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

wKgaomS19GKAAPY_AAGVDtwT-A4277.png

1、可讀性

代碼是否容易閱讀理解,需要注意代碼格式、關(guān)鍵信號(hào)命令、盡量多添加注釋。

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

信號(hào)命名:信號(hào)命名需要注意:如請(qǐng)求信號(hào)以req命令,響應(yīng)信號(hào)ack,流控信號(hào)fc,信號(hào)命令需要通俗易懂,采用常見(jiàn)的縮寫。

注釋清晰:一定要多寫注釋,很多代碼時(shí)間長(zhǎng)了,自己都看不明白了,就算能看明白,也需要花費(fèi)不少時(shí)間

2、功能達(dá)標(biāo)

代碼功能點(diǎn)是否全面。

各個(gè)功能是否能夠正常實(shí)現(xiàn)。

各功能是否靈活可配置,如是否具有使能開(kāi)關(guān)

3、性能達(dá)標(biāo)

模塊性能是否達(dá)標(biāo)。設(shè)計(jì)是否已考慮各項(xiàng)性能指標(biāo),如數(shù)據(jù)通路常見(jiàn)的指標(biāo)為BPS和PPS。

極限(最佳速率和最差速率)和正常場(chǎng)景下性能是否達(dá)標(biāo)。

特殊包長(zhǎng)場(chǎng)景是否已考慮。是否能夠及時(shí)處理突發(fā)數(shù)據(jù)。

4、標(biāo)準(zhǔn)化

模塊設(shè)計(jì)是否符合標(biāo)準(zhǔn)協(xié)議,如IEEE802.3 MAC 模塊設(shè)計(jì)是否符合標(biāo)準(zhǔn),PCIE 是否能夠與其他廠商的PCIE進(jìn)行對(duì)接傳輸數(shù)據(jù),且與主機(jī)相關(guān)的各項(xiàng)能力結(jié)構(gòu)能夠與主機(jī)正常交互。如interlaken接口是否能夠與FPGA的interlaken進(jìn)行正常對(duì)接。

5、穩(wěn)定性

代碼的穩(wěn)定性需要關(guān)注常見(jiàn)的spyglass lint cdc、跨時(shí)鐘信號(hào)、代碼是否能夠自恢復(fù)。

常見(jiàn)spyglass lint檢查:信號(hào)位寬是否匹配,技術(shù)是否會(huì)溢出、是否產(chǎn)生了latch等等

跨時(shí)鐘:跨時(shí)鐘的信號(hào)是否都進(jìn)行了同步處理、單bit、多bit信號(hào)是否正確同步。電平單bit、多bit數(shù)據(jù)、單bit脈沖、復(fù)位信號(hào)的同步方式各不相同,是否都正確同步了。信號(hào)同步的max_delay 延時(shí)是否符合要求。

自恢復(fù):異常情況下,模塊是否能夠自行恢復(fù),當(dāng)異常情況消失后,模塊是否夠能夠正常工作。異常情況有:

1)不符合規(guī)定的信號(hào)輸入:輸入信號(hào)eop_in/sop_in/vld_in/error_in的有效狀態(tài)有一定的規(guī)律,不符合規(guī)律的輸入信號(hào)是否會(huì)導(dǎo)致模塊無(wú)法正常處理后面正確的輸入數(shù)據(jù)。

2)狀態(tài)機(jī)沒(méi)有響應(yīng):狀態(tài)機(jī)跳轉(zhuǎn)信號(hào)沒(méi)有響應(yīng),是否會(huì)導(dǎo)致?tīng)顟B(tài)機(jī)卡死,無(wú)法跳轉(zhuǎn)到IDLE狀態(tài)。

3)關(guān)鍵信號(hào)異常跳變:偶發(fā)性強(qiáng)電磁反應(yīng)導(dǎo)致的信號(hào)跳變是否會(huì)導(dǎo)致模塊一直無(wú)法正常工作。

6、可定位

常見(jiàn)的定位手段是否添加全面,比如:各類統(tǒng)計(jì)計(jì)數(shù)、關(guān)鍵信號(hào)狀態(tài)是否可讀、中斷信號(hào)添加是否全面。

統(tǒng)計(jì)計(jì)數(shù):模塊進(jìn)入數(shù)據(jù)包多少,輸出數(shù)據(jù)包多少。完成了多少次xx操作。

關(guān)鍵信號(hào)可讀:狀態(tài)機(jī)當(dāng)前狀態(tài)要求可讀,關(guān)鍵信號(hào)要求可讀

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

教你如何書寫高質(zhì)量的Verilog代碼?

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110101
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    10

    文章

    1733

    瀏覽量

    131483
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3616

    瀏覽量

    93738
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    898

    瀏覽量

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

    關(guān)注

    30

    文章

    4788

    瀏覽量

    68616

原文標(biāo)題:高質(zhì)量的verilog代碼是什么樣的

文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    何為高質(zhì)量代碼?如何寫出高質(zhì)量代碼

    懂得“數(shù)據(jù)結(jié)構(gòu)與算法” 寫出高效的代碼,懂得“設(shè)計(jì)模式”寫出高質(zhì)量代碼
    發(fā)表于 08-02 09:44 ?843次閱讀
    何為<b class='flag-5'>高質(zhì)量</b>的<b class='flag-5'>代碼</b>?如何寫出<b class='flag-5'>高質(zhì)量</b><b class='flag-5'>代碼</b>?

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

    優(yōu)秀代碼:在網(wǎng)上查找開(kāi)源的、經(jīng)過(guò)驗(yàn)證的高質(zhì)量 Verilog 代碼,學(xué)習(xí)他人的編程風(fēng)格、代碼結(jié)構(gòu)
    發(fā)表于 09-25 20:05

    編寫高質(zhì)量C語(yǔ)言代碼

    編寫高質(zhì)量C語(yǔ)言代碼 編寫高質(zhì)量C語(yǔ)言代碼 編寫高質(zhì)量C語(yǔ)言代碼
    發(fā)表于 07-31 17:47

    verilog_代碼資料

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

    verilog代碼規(guī)范

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

    微軟四大名著之編程精粹:編寫高質(zhì)量C語(yǔ)言代碼

    c語(yǔ)言有些比較冗雜,要想編出一些高質(zhì)量的c語(yǔ)言代碼,需要思想來(lái)指導(dǎo),才能更好寫代碼。
    發(fā)表于 04-20 10:50 ?0次下載

    8051 verilog代碼

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

    Verilog 入門的實(shí)例代碼

    Verilog 入門的實(shí)例代碼,有需要的下來(lái)看看
    發(fā)表于 05-24 10:03 ?20次下載

    verilog_代碼

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

    Verilog HDL入門教程

    本文主要介紹了Verilog HDL 語(yǔ)言的一些基本知識(shí),目的是使初學(xué)者能夠迅速掌握HDL設(shè)計(jì)方法,初步了解并掌握Verilog HDL語(yǔ)言的基本要素,能夠讀懂簡(jiǎn)單的設(shè)計(jì)
    發(fā)表于 07-15 15:27 ?0次下載

    Verilog HDL入門教程

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

    高質(zhì)量Verilog代碼有什么特點(diǎn)

    高質(zhì)量verilog代碼主要包含以下幾個(gè)要素:可讀性、功能、性能、標(biāo)準(zhǔn)化、穩(wěn)定性、可定位。
    發(fā)表于 03-30 10:12 ?1950次閱讀
    <b class='flag-5'>高質(zhì)量</b><b class='flag-5'>Verilog</b><b class='flag-5'>代碼</b>有什么特點(diǎn)

    華為Verilog HDL入門教程的PDF電子書免費(fèi)下載

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

    什么樣的Verilog代碼風(fēng)格是好的風(fēng)格?

    代碼是給別人和多年后的自己看的。 關(guān)于Verilog代碼設(shè)計(jì)的一些風(fēng)格和方法之前也寫過(guò)一些Verilo
    的頭像 發(fā)表于 10-24 15:23 ?1535次閱讀

    如何自動(dòng)生成verilog代碼

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