高質(zhì)量6要素
高質(zhì)量的verilog代碼至少需要包含以下幾個要素:可讀性、功能、性能、標(biāo)準(zhǔn)化、穩(wěn)定性、可定位。
標(biāo)準(zhǔn)化:iterlaken MAC PCIE 這些模塊的設(shè)計必須要符合協(xié)議標(biāo)準(zhǔn),能夠與其他廠商的產(chǎn)品進(jìn)行正常對接。
可讀性:代碼是容易閱讀,是否容易理解原理
功能:功能是否正確,功能點是否全面,是否靈活可配置。
性能:讀寫、傳輸速率是否達(dá)標(biāo)
穩(wěn)定性:跨時鐘等是否處理細(xì)致,異常情況代碼是否能夠保持穩(wěn)定,是否能夠自恢復(fù),狀態(tài)機(jī)是否會卡住。
可定位:定位手段是否添加全面、遇到故障,是否能夠快速定位。
1、可讀性
代碼是否容易閱讀理解,需要注意代碼格式、關(guān)鍵信號命令、盡量多添加注釋。
代碼格式:代碼編寫需要采用普遍的格式、如空格的插入、if else的位置放置、特別是復(fù)雜的邏輯判斷,該斷行的需要斷行,該添加括號的地方添加括號。
信號命名:信號命名需要注意:如請求信號以req命令,響應(yīng)信號ack,流控信號fc,信號命令需要通俗易懂,采用常見的縮寫。
注釋清晰:一定要多寫注釋,很多代碼時間長了,自己都看不明白了,就算能看明白,也需要花費不少時間
2、功能達(dá)標(biāo)
代碼功能點是否全面。
各個功能是否能夠正常實現(xiàn)。
各功能是否靈活可配置,如是否具有使能開關(guān)
3、性能達(dá)標(biāo)
模塊性能是否達(dá)標(biāo)。設(shè)計是否已考慮各項性能指標(biāo),如數(shù)據(jù)通路常見的指標(biāo)為BPS和PPS。
極限(最佳速率和最差速率)和正常場景下性能是否達(dá)標(biāo)。
特殊包長場景是否已考慮。是否能夠及時處理突發(fā)數(shù)據(jù)。
4、標(biāo)準(zhǔn)化
模塊設(shè)計是否符合標(biāo)準(zhǔn)協(xié)議,如IEEE802.3 MAC 模塊設(shè)計是否符合標(biāo)準(zhǔn),PCIE 是否能夠與其他廠商的PCIE進(jìn)行對接傳輸數(shù)據(jù),且與主機(jī)相關(guān)的各項能力結(jié)構(gòu)能夠與主機(jī)正常交互。如interlaken接口是否能夠與FPGA的interlaken進(jìn)行正常對接。
5、穩(wěn)定性
代碼的穩(wěn)定性需要關(guān)注常見的spyglass lint cdc、跨時鐘信號、代碼是否能夠自恢復(fù)。
常見spyglass lint檢查:信號位寬是否匹配,技術(shù)是否會溢出、是否產(chǎn)生了latch等等
跨時鐘:跨時鐘的信號是否都進(jìn)行了同步處理、單bit、多bit信號是否正確同步。電平單bit、多bit數(shù)據(jù)、單bit脈沖、復(fù)位信號的同步方式各不相同,是否都正確同步了。信號同步的max_delay 延時是否符合要求。
自恢復(fù):異常情況下,模塊是否能夠自行恢復(fù),當(dāng)異常情況消失后,模塊是否夠能夠正常工作。異常情況有:
1)不符合規(guī)定的信號輸入:輸入信號eop_in/sop_in/vld_in/error_in的有效狀態(tài)有一定的規(guī)律,不符合規(guī)律的輸入信號是否會導(dǎo)致模塊無法正常處理后面正確的輸入數(shù)據(jù)。
2)狀態(tài)機(jī)沒有響應(yīng):狀態(tài)機(jī)跳轉(zhuǎn)信號沒有響應(yīng),是否會導(dǎo)致狀態(tài)機(jī)卡死,無法跳轉(zhuǎn)到IDLE狀態(tài)。
3)關(guān)鍵信號異常跳變:偶發(fā)性強(qiáng)電磁反應(yīng)導(dǎo)致的信號跳變是否會導(dǎo)致模塊一直無法正常工作。
6、可定位
常見的定位手段是否添加全面,比如:各類統(tǒng)計計數(shù)、關(guān)鍵信號狀態(tài)是否可讀、中斷信號添加是否全面。
統(tǒng)計計數(shù):模塊進(jìn)入數(shù)據(jù)包多少,輸出數(shù)據(jù)包多少。完成了多少次xx操作。
關(guān)鍵信號可讀:狀態(tài)機(jī)當(dāng)前狀態(tài)要求可讀,關(guān)鍵信號要求可讀
中斷:fifo和ram的寫溢出、空讀、ECC、parity要求接入中斷。
教你如何書寫高質(zhì)量的Verilog代碼?
-
Verilog
+關(guān)注
關(guān)注
28文章
1351瀏覽量
110074 -
時鐘
+關(guān)注
關(guān)注
10文章
1733瀏覽量
131446 -
編程
+關(guān)注
關(guān)注
88文章
3614瀏覽量
93685 -
中斷
+關(guān)注
關(guān)注
5文章
898瀏覽量
41470 -
代碼
+關(guān)注
關(guān)注
30文章
4779瀏覽量
68521
原文標(biāo)題:高質(zhì)量的verilog代碼是什么樣的
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論