日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Verilog 编写规范

發(fā)布時(shí)間:2025/5/22 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Verilog 编写规范 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? 在學(xué)習(xí)Python時(shí),作者有一句話對我影響很大。作者希望我們在學(xué)習(xí)編寫程序的時(shí)候注意一些業(yè)內(nèi)約定的規(guī)范。在內(nèi)行人眼中,你的編寫格式,就已經(jīng)暴露了你的程度。學(xué)習(xí)verilog也是一樣的道理,一段好的verilog代碼,在完成設(shè)計(jì)要求的前提下,還需要條理清晰,有對應(yīng)的注解,對非作者而言應(yīng)該是友好的。因?yàn)閷?shù)字IC設(shè)計(jì)也處于初級(jí)階段,前期所寫的基本是在搜集資料的基礎(chǔ)上,添加一部分個(gè)人的理解,希望通過自己的不斷學(xué)習(xí),沉淀出自己獨(dú)到的見解。

? ? 對于Verilog編寫規(guī)范,網(wǎng)上的資料比較散,其中較好的我覺得是2001版華為的編寫規(guī)范。下面簡稱規(guī)范(https://wenku.baidu.com/view/bbad6339fe00bed5b9f3f90f76c66137ee064fc8.html)百度文庫

? ? 我將在次規(guī)范的基礎(chǔ)上加入一些補(bǔ)充:

1.低電平有效信號(hào),信號(hào)后加‘_n’。

2.模塊名小寫。

3.module例化名用U_xx_x表示(多次例化用次序號(hào)0.1.2...)。

4.使用降序排列定義向量有效位順序,最低位為0。

5.采用小寫字母定義reg,wire和input/output/inout。

6.采用大寫字母定義參數(shù),參數(shù)名小于20個(gè)字母。

7.時(shí)鐘信號(hào)應(yīng)前綴‘clk’,復(fù)位信號(hào)應(yīng)前綴‘rst’。

8.三態(tài)輸出寄存器信號(hào)應(yīng)后綴‘_z’。

9.代碼中不能使用VHDL保留字,更不能使用Verilog保留字。 ps:具體有哪些保留字可以百度搜索,這里不列舉。

10.輸出信號(hào)必須被寄存(只對頂層模塊)。ps:在查閱的各種資料中,都有提及這一點(diǎn)。

11.三態(tài)邏輯可以在頂層模塊中使用,子模塊中避免使用三態(tài)。

12.沒有未連接的端口。

13.到其他模塊的接口信號(hào),按如下順序定義端口信號(hào):輸入,(雙向),輸出。

14.建議使用coregen生成乘法電路。

15.采用基于名字的調(diào)用,而非基于順序的調(diào)用。

16.不要書寫空的模塊,即用一個(gè)模塊至少要有一個(gè)輸入和一個(gè)輸出。

17.時(shí)鐘事件的表達(dá)要用‘negedge<clk_name>’ 或 'posedge<clk_name>'的形式。

18.異步復(fù)位,高電平用‘if(<rst_name> == 1'b1)’,低電平有效用‘if(<rst_name> == 1'b0)’。 ps:if 內(nèi)的判斷條件位寬為1。

19.if語句不能嵌套太多。

20.建議不使用include語句。

21.建議每個(gè)模塊加timescale。

22.代碼中給出必要的注釋。

23.每個(gè)文件有一個(gè)文件頭。ps:我的理解是每個(gè)文件最開頭應(yīng)用注釋好,所寫模塊的名字、功能、版本、時(shí)間等。

24.每個(gè)文件只包含一個(gè)模塊。

25.模塊名與文件名保持一致。

26.同步時(shí)序邏輯的always block中有且只有一個(gè)時(shí)鐘信號(hào),并且在同一個(gè)沿動(dòng)作(如上升沿)。

27.同步時(shí)序邏輯的module中,在時(shí)鐘信號(hào)的同一個(gè)沿動(dòng)作。

28.采用同步設(shè)計(jì),避免使用異步邏輯(全局信號(hào)復(fù)位除外)。

29.一般不要將時(shí)鐘信號(hào)作為數(shù)據(jù)的信號(hào)輸入。

30.不要在時(shí)鐘路徑上添加任何的buffer。

31.不要門控時(shí)鐘。ps:

32.在頂層模塊中,時(shí)鐘信號(hào)必須可見。

33.不要采用向量的方式定義一組時(shí)鐘信號(hào)。

34.不要在模塊內(nèi)部生成時(shí)鐘信號(hào),使用DLL/PLL產(chǎn)生的時(shí)鐘信號(hào)。

35.建議使用單一的全局同步復(fù)位電路或者單一的全部異步復(fù)位電路。

36.不要在復(fù)位路徑上添加任何的buffer,也不要使用任何門控復(fù)位信號(hào)。ps:復(fù)位路徑上添加buffer,會(huì)使得復(fù)位信號(hào)到觸發(fā)器復(fù)位接收端口產(chǎn)生延遲,skew的產(chǎn)生,可能無法滿足復(fù)位恢復(fù)時(shí)間,從而導(dǎo)致亞穩(wěn)態(tài)的產(chǎn)生。 門控會(huì)使得復(fù)位信號(hào)產(chǎn)生毛刺,增加亞穩(wěn)態(tài)發(fā)生的可能性。

37.不使用PLI函數(shù)。

38.不使用事件變量。

39.不使用系統(tǒng)函數(shù)。

40.建議不使用任務(wù)。

41.不使用用戶自定義單元(UDP)。

42.不使用===,!==等不可綜合運(yùn)算符。

ps: 補(bǔ)充Verilog不可綜合語句。

initial(只在testbench中使用)、events(在同步testbench時(shí)更有用)、real time、assign和deassign(reg型無法綜合,但是wire型可以)、fork join、primitives(只支持門級(jí)原語綜合)、table、敏感列表中同時(shí)帶有posedge和negedge(如always@(posedge clk or negedge clk)begin end 這個(gè)無法綜合)、同一個(gè)reg被多個(gè)always塊驅(qū)動(dòng)、延時(shí) #time ,比如a = #5 b ,此處仿真時(shí)候是可以的,但是在綜合時(shí)會(huì)自動(dòng)忽略掉#time,相當(dāng)于a = b、X或Z(未知態(tài)和高阻態(tài)),在條件表達(dá)式中不要使用它們,確保可以綜合。

43.不使用disable語句。

44.建議不使用forever,repeat,while循環(huán)語句。

45.避免產(chǎn)生latch(除CPU接口)。 ps:在if語句或者case語句中的所有條件分支中都有對變量有明確的賦值,不然會(huì)綜合出latch。

46.組合邏輯語句塊敏感列表中敏感變量必須和該模塊中使用的相一致,不能多也不能少。

47.在一個(gè)always語句中,有且僅有一個(gè)事件列表。

48.在時(shí)序always塊的敏感事件列表中,必須都是沿觸發(fā)事件,不允許出現(xiàn)電平觸發(fā)事件。

49.數(shù)據(jù)位寬要相匹配。

50.不使用real,time,realtime類型。

51.建議不使用integer類型。

52.位移變量必須是一個(gè)常數(shù)。

53.避免使用異步反饋電路。

54.時(shí)序邏輯語句塊中統(tǒng)一使用非阻塞型賦值。

55.組合邏輯語句塊使用阻塞型賦值。 ps:對于54 55需要了解一下阻塞和非阻塞的區(qū)別。 非阻塞賦值語句,右端表達(dá)式計(jì)算完并不會(huì)立刻傳遞給左端,而是等待下一個(gè)事件觸發(fā)前一刻再傳遞給左端,且它們是并行的。就是說,在所有的右端表達(dá)式在時(shí)鐘有效沿到來之時(shí)開始計(jì)算,等到下一個(gè)時(shí)鐘有效沿到來之前一刻,將值同時(shí)賦值給了左端。可以想象出它對時(shí)鐘沿觸發(fā)描述的恰到好處,所以用在時(shí)序邏輯中。 阻塞賦值語句,在每個(gè)右端表達(dá)式計(jì)算完之后,立刻傳遞給左端,并且后面的式子只能在前面完成后,方可運(yùn)行。所以說是一個(gè)串行過程,而組合邏輯恰恰需要這樣的一個(gè)表達(dá)方式。

56.非阻塞賦值語句不加單位延時(shí),尤其是對于寄存器類型的變量賦值時(shí)。

57.整型常量基數(shù)格式中不能有‘?’。

58.字符串中不能包含有控制字符(如CTRL鏈)。

59.禁止使用空的時(shí)序電路塊以及非法的always結(jié)構(gòu)。

60.不要在連續(xù)賦值語句中引入驅(qū)動(dòng)強(qiáng)度和延時(shí)。

61.不要為net,n_input,n_output,enable_gate型變量定義驅(qū)動(dòng)強(qiáng)度,電荷保持強(qiáng)度以及延時(shí)。

62.禁止使用trireg(具有電荷保持特性的連接)NET型定義。

63.禁止使用tri0,tri1,triand和trior型連接。

64.在RTL級(jí)代碼中不能包含有initial結(jié)構(gòu),也不能對任何信號(hào)進(jìn)行初始化賦值,應(yīng)該采用復(fù)位的方式進(jìn)行初始化。

65.不要在過程語句中使用assign,deassign,force,release等語句。

66.不要使用wait語句。

67.不要使用fork join語句塊。

68.不要為驅(qū)動(dòng)類型為supply0和supply1型的連線(net)賦值。

69.設(shè)計(jì)中不使用macro_module。

70不要在RTL代碼中實(shí)例門級(jí)單元,尤其是下列單元:CMOS開關(guān),RCMOS開關(guān),NMOS開關(guān),PMOS開關(guān),RNOMS開關(guān),RPMOS開關(guān),trans雙向開關(guān),rtrans雙向開關(guān),tranif0,tranif1,rtranif0,rtranif1,pull_gate。

71.不要使用specify模塊。

? ? 這些規(guī)則中有一些我還沒有弄清楚,等到更多的實(shí)際應(yīng)用中出現(xiàn)的時(shí)候,應(yīng)該會(huì)有一種恍然大悟的感覺,實(shí)踐才是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。

轉(zhuǎn)載于:https://www.cnblogs.com/Jamesjiang/p/8933694.html

總結(jié)

以上是生活随笔為你收集整理的Verilog 编写规范的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 视频二区中文字幕 | 欧美成人影音 | 国产乱妇乱子 | 国产精品黄在线观看 | 国产精品国产a级 | 黄色一区二区三区四区 | 日韩欧美国产高清91 | 久国久产久精永久网页 | 雷电将军和丘丘人繁衍后代视频 | 亚洲色图一区二区 | 内射国产内射夫妻免费频道 | 一区二区国产精品精华液 | 亚洲精品合集 | 国产福利91精品一区二区三区 | 一区二区视频在线播放 | 日韩视频一区二区三区在线播放免费观看 | av女优天堂在线观看 | 啪啪免费| 五月天久久久久 | 欧美怡春院 | 天天干夜夜想 | 狠狠插综合 | 日本在线免费观看 | 成人免费一级视频 | 欧美一区国产一区 | 天天干天天干天天干天天 | 操她视频在线观看 | 噜噜噜网站| 成年人免费在线观看网站 | 黑帮大佬和我的三百六十五天 | 少妇高潮一区二区三区在线 | 高h喷汁呻吟3p | 黑丝一区二区三区 | 久久女同互慰一区二区三区 | 国产激情免费 | 狠狠操网址 | 国产免费啪啪 | 国产精品呦呦 | 青娱乐极品在线 | 操一操av| 日韩高清一级 | 午夜精产品一区二区在线观看的 | 久久精品日韩无码 | 色偷偷91 | 18一20岁毛毛片 | 天天舔日日操 | 九九综合九九综合 | 亚洲精品欧美激情 | 亚洲精品第五页 | 亚洲色综合 | 不卡久久 | 国产成人传媒 | 中文字幕美女 | 亚洲国产成人精品久久 | 午夜一区在线观看 | 黄色网址哪里有 | 在线一区二区三区四区五区 | 日韩少妇内射免费播放18禁裸乳 | 少妇特黄a一区二区三区 | 天堂国产 | 国产乱在线 | 精品少妇一区二区三区 | 欧美巨大荫蒂茸毛毛人妖 | 精品中文字幕在线观看 | 久久久av免费 | 97精品超碰一区二区三区 | 午夜视频在线观看免费视频 | 国产精品麻豆成人av电影艾秋 | 午夜av一区二区三区 | 久青草国产在线 | 在线国产91| 国产精品福利在线播放 | 97久久国产亚洲精品超碰热 | 无遮挡又爽又刺激的视频 | 激情偷拍 | 女人被男人操 | 9.1成人看片 | 国产视频精品久久 | 久久蜜桃av | 日日做夜夜爽毛片麻豆 | 明日花绮罗高潮无打码 | 爱爱视频网站 | 国产婷婷一区二区三区久久 | 久久偷看各类wc女厕嘘嘘偷窃 | 欧美日韩免费在线 | 爽好多水快深点欧美视频 | 91最新在线| 久久久久久亚洲av毛片大全 | 日本黄页网站 | 亚洲区综合 | 欲色影音| 成人动漫视频在线观看 | 咪咪av| 可以免费看污视频的网站 | 日产精品久久久久 | 艳母免费在线观看 | 捆绑黑丝美女 | 二十四小时在线更新观看 | 亚洲精品视频专区 |