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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Verilog HDL】命名的规则研究

發布時間:2023/11/30 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Verilog HDL】命名的规则研究 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Verilog命名規范參考資料

1. 什么可以被命名?

  • 模塊的名稱
  • 模塊實例的名稱
  • 各種數據類型的名稱

這些名稱我們稱之為標識符,標識符的命名規則不再強調,與C語言類似,字母、數字、下劃線(_)和美元符號($),開頭只能是字母或者下劃線。

2. 命名的方式是怎樣的?

  • 模塊的名稱
    • 見名知義
    • 符合命名規范
  • 模塊實例的名稱
    通常情況下,可能會多次使用模塊的實例,命名的時候通常類似于:
    ff0,ff1,ff2,ff3,ff4……
  • 各種數據類型的名稱
    沒什么好說的,見名知義,符合命名規范即可

3. 標識符的范圍

就目前的知識結構來說,我對于范圍的理解是這樣的

  • 模塊與模塊實例的名稱是全局的,全局的名稱都不能重復
  • 數據類型的名稱是局部的,不同的模塊內可以重復,并且對于同一個信號源,不同子模塊內建議使用一樣的命名
  • 一個模塊內,所有標識符的名字,都不允許相同

4. 層次命名

先舉一個例子,對于如下層次結構

根層 stim1 模塊SR_latch的實例變量q,qbar,set,resetn1 模塊nand的實例n2 模塊nand的實例信號 Q,Qbar,S,R

標識符的層次名為:

  • sti
    • sti.q
    • sti.qbar
    • sti.set
    • sti.reset
    • sti.m1
      • sti.m1. Q
      • sti.m1.Qbar
      • sti.m1.S
      • sti.m1.R
    • sti.n1
    • sti.n2

其實就最后兩個看起來比較特別,并且是令人費解的,按理說不應該是

  • sti.m1.n1
  • sti.m1.n2

不應該是這樣才對嘛?為什么沒有m1?

先不要慌,我們先來解釋一下,為什么要使用層次命名,意義何在?

  • 層次命名是為了在訪問設計中的某個標識符的時候,能夠唯一地識別這個標識符。
  • 對于具備全局屬性的標識符——模塊和模塊實例的名稱來說,顯然不是使用層次名的原因。
  • 對于具備局部屬性,可以在不同子模塊中重復命名的標識符——變量或者信號的名稱來說,在全局設計中,它不具備唯一性,因此訪問的時候可能會出現問題,所以引入了層次名的概念,以便于能夠在全局設計的任意位置中,能夠唯一地訪問這些標識符
  • 所以

    • sti.n1
    • sti.n2

    這兩個層次名的原因也就得到了解釋,因為n1,n2在全局中是唯一的。

    總結

    以上是生活随笔為你收集整理的【Verilog HDL】命名的规则研究的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。