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

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

3天內不再提示

IC設計之Verilog代碼規(guī)范

Hack電子 ? 來源: 最炫ICerX ? 2023-08-17 10:14 ? 次閱讀

Verilog規(guī)范對于一個好的IC設計至關重要。

本文包含以下幾方面內容,程序設計,模塊例化、運算符,模塊設計模板

目標:用最簡單,最簡潔的方式,設計最易讀,最高效的代碼

1、程序設計

1)設計時不用的語法

94adb4da-3ca2-11ee-ac96-dac502259ad0.png

2)設計時使用的語法,主要為下述a,b,c三類

94c73f86-3ca2-11ee-ac96-dac502259ad0.png

3)電路設計結構,主要有以下三種

94d3862e-3ca2-11ee-ac96-dac502259ad0.png??94e6a718-3ca2-11ee-ac96-dac502259ad0.png94f827ea-3ca2-11ee-ac96-dac502259ad0.png

950a382c-3ca2-11ee-ac96-dac502259ad0.png

9514857a-3ca2-11ee-ac96-dac502259ad0.png

95441ae2-3ca2-11ee-ac96-dac502259ad0.png

4)電路設計要點

[1]一個always只產生一個信號

下述不合適

95539440-3ca2-11ee-ac96-dac502259ad0.png

改為下述,只考慮一個信號,調試,分析,代碼修改很方便,不需要考慮很多

956d6bc2-3ca2-11ee-ac96-dac502259ad0.png

[2]一個信號只在一個always中產生

下述不符合要求,在多個always中產生

95774412-3ca2-11ee-ac96-dac502259ad0.png

[3]always是描述一個信號產生的方法,即在什么情況下,信號值為多少,其它情況下,值又為多少,情況要全部考慮

9595fbb4-3ca2-11ee-ac96-dac502259ad0.png

[4] 條件判斷只允許使用if else和case,其它的不使用(包括casex);

[5] 含有posedge或negedge的,一定是D觸發(fā)器,是時序電路

[6] 想立即有結果用組合邏輯,延遲一拍有結果用時序邏輯

2、模塊例化

1)什么是例化,簡單到復雜

95a503c0-3ca2-11ee-ac96-dac502259ad0.png

95bd61c2-3ca2-11ee-ac96-dac502259ad0.png

95c7513c-3ca2-11ee-ac96-dac502259ad0.png

2)例化方法

960a944c-3ca2-11ee-ac96-dac502259ad0.png

3)參數例化

961e3754-3ca2-11ee-ac96-dac502259ad0.png? ??962e16ec-3ca2-11ee-ac96-dac502259ad0.png

3、運算符

1)信號類型reg/wire

(1)設計代碼僅用reg,wire兩種類型

(2)設計代碼中,由本模塊且是always產生的信號,為reg類型

9637e9ce-3ca2-11ee-ac96-dac502259ad0.png

9658273e-3ca2-11ee-ac96-dac502259ad0.png

(3)測試代碼中,用initial產生的對測試模塊的輸入信號,用reg類型

(4)其它情況都用wire

96657d3a-3ca2-11ee-ac96-dac502259ad0.png

9676462e-3ca2-11ee-ac96-dac502259ad0.png

(5)reg類型的信號,不一定產生寄存器

2)參數parameter

96822a7a-3ca2-11ee-ac96-dac502259ad0.png

(1)將整個模塊中的CNT_C_W替換成12

(2)參數名用大寫

3)算術運算符(+,-,*,/,%)

(1)+,-,*用的多,/,%少用,消耗資源多,用的少

4)賦值運算符(=,<=),注:時序邏輯用<=,組合邏輯用=,其它情況不存在

(1)時序邏輯用<=

(2)組合邏輯用=

5)關系運算符(>,<,>=,<=)

6)邏輯運算符(&&,||,!)

(1)一般兩邊都是1bit信號,多Bit也可以

(2)一般用于條件判斷

7)位運算符(~,|,^,&)

(1)一般用于賦值

8)移位運算符(<<,>>)

(1)一般用于乘除運算

(2)右移1位表示除2,左移1位表示乘2

9)拼接運算符({ })

(1){a[0],b[3:2]}

(2){{3{a[0]}},b[2],a[1]}

4、模塊設計模板

1)解析電路功能

下圖為自加1的電路圖,左邊為組合邏輯,右邊為時序邏輯

969c332a-3ca2-11ee-ac96-dac502259ad0.png

2)修改電路設計模塊

verilog模板

規(guī)則:輸出信號必須打一拍送出去,所以會在always中賦值,所以輸出信號定義為reg類型

先定義,位寬參數,輸入,輸出,中間信號,編寫組合邏輯,時序邏輯代碼,下述為上圖加法器代碼

96b081f4-3ca2-11ee-ac96-dac502259ad0.png

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

    關注

    37

    文章

    1288

    瀏覽量

    103609
  • Verilog
    +關注

    關注

    28

    文章

    1335

    瀏覽量

    109844
  • 程序
    +關注

    關注

    115

    文章

    3743

    瀏覽量

    80661
  • Verilog設計
    +關注

    關注

    0

    文章

    20

    瀏覽量

    6503
收藏 人收藏

    評論

    相關推薦

    【分享】verilog代碼書寫規(guī)范

    FPGA verilog代碼書寫規(guī)范,很好的借鑒
    發(fā)表于 05-21 11:36

    Verilog HDL代碼書寫規(guī)范

    Verilog HDL代碼書寫規(guī)范
    發(fā)表于 09-30 08:55

    Verilog HDL代碼書寫規(guī)范

    本帖最后由 lee_st 于 2017-10-31 08:46 編輯 Verilog HDL代碼書寫規(guī)范
    發(fā)表于 10-21 20:53

    Verilog HDL代碼書寫規(guī)范

    1. 目的本規(guī)范的目的是提高書寫代碼的可讀性、可修改性、可重用性,優(yōu)化代碼綜合和仿真的結果,指導設計工程師使用VerilogHDL規(guī)范代碼
    發(fā)表于 12-08 14:36

    Verilog代碼書寫規(guī)范

    Verilog代碼書寫規(guī)范規(guī)范的目的是提高書寫代碼的可讀性、可修改性、可重用性,優(yōu)化代碼
    發(fā)表于 04-15 09:47 ?106次下載

    verilog_代碼資料

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

    verilog代碼規(guī)范

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

    華為 內部資料 verilog編碼規(guī)范coding style

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

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

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

    華為verilog教程

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

    華為Verilog約束

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

    Verilog代碼書寫規(guī)范

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

    華為的verilog編碼規(guī)范

    華為的verilog編碼規(guī)范
    發(fā)表于 11-01 08:41 ?41次下載
    華為的<b class='flag-5'>verilog</b>編碼<b class='flag-5'>規(guī)范</b>

    Verilog程序編寫規(guī)范

    在實際工作中,許多公司對Verilog程序編寫規(guī)范都有要求。在公司內部統(tǒng)一Verilog程序編寫規(guī)范不僅可以增強程序的可讀性、可移植性,而且也有助于邏輯工程師之間交流、溝通,提升邏輯組
    的頭像 發(fā)表于 09-15 09:35 ?3826次閱讀

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

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