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

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

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

IC設(shè)計(jì)之Verilog代碼規(guī)范

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

Verilog規(guī)范對于一個(gè)好的IC設(shè)計(jì)至關(guān)重要。

本文包含以下幾方面內(nèi)容,程序設(shè)計(jì),模塊例化、運(yùn)算符,模塊設(shè)計(jì)模板

目標(biāo):用最簡單,最簡潔的方式,設(shè)計(jì)最易讀,最高效的代碼

1、程序設(shè)計(jì)

1)設(shè)計(jì)時(shí)不用的語法

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

2)設(shè)計(jì)時(shí)使用的語法,主要為下述a,b,c三類

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

3)電路設(shè)計(jì)結(jié)構(gòu),主要有以下三種

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)電路設(shè)計(jì)要點(diǎn)

[1]一個(gè)always只產(chǎn)生一個(gè)信號

下述不合適

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

改為下述,只考慮一個(gè)信號,調(diào)試,分析,代碼修改很方便,不需要考慮很多

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

[2]一個(gè)信號只在一個(gè)always中產(chǎn)生

下述不符合要求,在多個(gè)always中產(chǎn)生

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

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

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

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

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

[6] 想立即有結(jié)果用組合邏輯,延遲一拍有結(jié)果用時(shí)序邏輯

2、模塊例化

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

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)參數(shù)例化

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

3、運(yùn)算符

1)信號類型reg/wire

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

(2)設(shè)計(jì)代碼中,由本模塊且是always產(chǎn)生的信號,為reg類型

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

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

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

(4)其它情況都用wire

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

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

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

2)參數(shù)parameter

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

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

(2)參數(shù)名用大寫

3)算術(shù)運(yùn)算符(+,-,*,/,%)

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

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

(1)時(shí)序邏輯用<=

(2)組合邏輯用=

5)關(guān)系運(yùn)算符(>,<,>=,<=)

6)邏輯運(yùn)算符(&&,||,?。?/p>

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

(2)一般用于條件判斷

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

(1)一般用于賦值

8)移位運(yùn)算符(<<,>>)

(1)一般用于乘除運(yùn)算

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

9)拼接運(yùn)算符({ })

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

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

4、模塊設(shè)計(jì)模板

1)解析電路功能

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

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

2)修改電路設(shè)計(jì)模塊

verilog模板

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

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

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

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

    關(guān)注

    38

    文章

    1296

    瀏覽量

    103965
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110107
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3787

    瀏覽量

    81060
  • Verilog設(shè)計(jì)
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

    6524
收藏 人收藏

    評論

    相關(guān)推薦

    【分享】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)化代碼綜合和仿真的結(jié)果,指導(dǎo)設(shè)計(jì)工程師使用VerilogHDL規(guī)范代碼
    發(fā)表于 12-08 14:36

    Verilog代碼書寫規(guī)范

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

    verilog_代碼資料

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

    verilog代碼規(guī)范

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

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

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

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

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

    華為verilog教程

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

    華為Verilog約束

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

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

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

    Verilog程序編寫規(guī)范

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

    科普一下Verilog代碼命名規(guī)范

    命名規(guī)范包括模塊命名規(guī)范代碼命名規(guī)范,代碼命名需要有確定的含義,提高代碼可讀性和可維護(hù)性。
    的頭像 發(fā)表于 11-17 09:54 ?3875次閱讀

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

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