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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【Verilog HDL学习之路】第二章 Verilog HDL的设计方法学——层次建模

發(fā)布時(shí)間:2023/11/30 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Verilog HDL学习之路】第二章 Verilog HDL的设计方法学——层次建模 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2 Verilog HDL的設(shè)計(jì)方法學(xué)——層次建模

  • 重要的思想:
    在語(yǔ)文教學(xué)中,應(yīng)該先掌握核心方法論,再用正確的方法論去做題目,這樣能夠逐漸加深對(duì)于方法論的理解,做題的速度和準(zhǔn)確率也會(huì)越來越高。
  • 在Verilog HDL中,該思想同樣適用,在編程,軟件開發(fā)也一樣如此
學(xué)習(xí)正確的設(shè)計(jì)方法學(xué)按照方法不斷訓(xùn)練掌握設(shè)計(jì)方法學(xué)進(jìn)行高效的設(shè)計(jì)

2.1 設(shè)計(jì)方法學(xué)——層次建模

2.1.1 方法理論

  • 自上而下設(shè)計(jì)方法

設(shè)計(jì)者先設(shè)計(jì)出頂層模塊,然后將其拆解,分析出其內(nèi)部模塊,再進(jìn)一步為更小的、已知的功能單元。用流程圖可以進(jìn)行如下表示

頂層模塊子模塊1子模塊2子模塊3葉單元葉單元葉單元葉單元

圖示:

  • 自下而上的設(shè)計(jì)方法
    設(shè)計(jì)者使用功能確定是小的功能單元,組合成大的功能單元,然后逐漸增大,流程圖即上面的箭頭反向

2.1.2 實(shí)際應(yīng)用

在實(shí)際使用設(shè)計(jì)方法學(xué)的過程中,往往采用二者結(jié)合的方式,程序員一邊設(shè)計(jì)頂層的架構(gòu),一邊將小模塊組合成大模塊,上下同時(shí)進(jìn)行,然后進(jìn)行對(duì)接。

實(shí)際的流程往往是這個(gè)樣子的

把他們組合起來繼續(xù)組合設(shè)計(jì)整體架構(gòu)拆解為小的單元小單元中,哪些是我能寫出的?哪些是別人開發(fā)好的?哪些能查到?設(shè)計(jì)好小單元構(gòu)成大單元完成整體架構(gòu)

這個(gè)過程中,對(duì)于小單元的實(shí)現(xiàn),是自下而上的,對(duì)于整體架構(gòu)的實(shí)現(xiàn),是自上而下的。

當(dāng)然,其實(shí)這樣的流程過于抽象,并且也不是唯一的,我們看后面的實(shí)例部分來深入理解思想即可,大可不必生搬硬套。

2.2 應(yīng)用層次建模思想設(shè)計(jì)Verilog HDL程序

具體內(nèi)容請(qǐng)參考書籍《Verilog HDL:A Guide to Design and Synthesis》(Second Edition)

先來闡述核心概念:

  • 模塊與模塊實(shí)例
  • 設(shè)計(jì)塊與激勵(lì)塊

2.2.1 模塊與模塊實(shí)例

對(duì)于模塊與模塊實(shí)例的關(guān)系,和C++中模板與模板實(shí)例的關(guān)系是類似的

在Verilog HDL中,模塊是基本功能單元,它可以是

  • 葉單元
  • 子模塊
  • 頂層模塊

在更高級(jí)的模塊中,可以調(diào)用低級(jí)模塊實(shí)例來構(gòu)建,也有了一條重要的原則:

  • 下級(jí)模塊實(shí)例,被調(diào)用,來構(gòu)建上級(jí)模塊

總而言之,Verilog的核心設(shè)計(jì),是由模塊構(gòu)成的,不同等級(jí)的模塊通過模塊實(shí)例進(jìn)行相互調(diào)用來建立聯(lián)系

每一個(gè)模塊,都是一個(gè)有接口,有功能,但是內(nèi)部細(xì)節(jié)不可見的科技黑箱

每一個(gè)模塊實(shí)例,都是模塊的副本,可以被它的上級(jí)模塊調(diào)用

2.2.2 設(shè)計(jì)塊與激勵(lì)塊

  • 設(shè)計(jì)塊就是2.2.1中構(gòu)建的最上級(jí)的模塊,即頂層模塊
  • 激勵(lì)塊就是用來驗(yàn)證設(shè)計(jì)塊的正確性

問題:什么是“激勵(lì)”?

先來舉一個(gè)類似的例子,在物理電路實(shí)驗(yàn)中,我們連接好電路,然后給他加上電源通電,驗(yàn)證電路是否連接正確。
在Verilog設(shè)計(jì)中,我們的“設(shè)計(jì)塊”就是電路,“激勵(lì)塊”就是電源,“仿真測(cè)試”就是通電。這樣的類比應(yīng)該非常清晰明確了,再畫個(gè)表格對(duì)比。

Verilog HDL電路實(shí)驗(yàn)
設(shè)計(jì)塊電路
激勵(lì)塊電源
仿真測(cè)試電路通電

激勵(lì)塊的作用:
給設(shè)計(jì)塊加上具備指定特征的信號(hào),來測(cè)試設(shè)計(jì)塊的正確性和效率

激勵(lì)塊的兩種設(shè)計(jì)模式:

  • 激勵(lì)塊中調(diào)用設(shè)計(jì)塊實(shí)例,直接接入信號(hào)驅(qū)動(dòng)設(shè)計(jì)塊
  • 生成一個(gè)新的“虛擬的”頂層模塊,調(diào)用激勵(lì)塊實(shí)例和設(shè)計(jì)塊實(shí)例,讓二者接口進(jìn)行交互,通過信號(hào)傳遞間接驅(qū)動(dòng)設(shè)計(jì)塊
  • 舉個(gè)例子你就明白了

    • 方式一:手動(dòng)點(diǎn)火來引爆炸藥
    • 方式二:使用引爆器引爆炸藥

    2.2.3 使用規(guī)則

    • 模塊、模塊實(shí)例和激勵(lì)塊的命名,必須是唯一的,不能重名
    • 模塊不能嵌套定義,但是模塊內(nèi)部可以進(jìn)行其他模塊的聲明或調(diào)用其他模塊實(shí)例
    • 模塊由module開始,endmodule結(jié)束

    2.2.4 示例

    2.3 思考:層次建模在Verilog與C/C++應(yīng)用的區(qū)別

    層次建模的思想,一直都應(yīng)該存在,但是在具體實(shí)現(xiàn)中,Verilog設(shè)計(jì)使用自上而下的設(shè)計(jì)是可能的,因?yàn)槟K相對(duì)簡(jiǎn)單,接口相對(duì)確定,只需要設(shè)置好接口,知道需要的模塊和功能即可。

    但是對(duì)于高級(jí)語(yǔ)言來說,自上而下的在紙上設(shè)計(jì)框架是可以的,具體實(shí)現(xiàn)并不能這樣的做,因?yàn)樗牡蛯涌蚣芡瑯邮欠浅?fù)雜的,并不能直接提前設(shè)計(jì)好,尤其是對(duì)于大框架嵌套小框架的情況,一定要先設(shè)計(jì)好小框架,再完成大框架,也就是自上而下地設(shè)計(jì)自下而上地實(shí)現(xiàn)

    對(duì)于并行的中層框架來說,實(shí)現(xiàn)順序也需要按照?qǐng)?zhí)行順序來編寫。

    2.4 疑問解答

    對(duì)于第一章提到的問題,現(xiàn)在可以解答了。【Verilog HDL學(xué)習(xí)之路】第一章 Verilog HDL 數(shù)字設(shè)計(jì)總論

    問題1:對(duì)于過程“RTL級(jí)描述描述–>門級(jí)網(wǎng)表”,門級(jí)網(wǎng)表等同于門級(jí)描述嗎?

    問題2:行為級(jí)綜合工具的出現(xiàn)允許Verilog HDL進(jìn)行行為級(jí)描述,那么它是可以將行為級(jí)描述轉(zhuǎn)換為RTL級(jí)描述嗎?

    回答以上兩個(gè)問題,Verilog HDL的設(shè)計(jì)者可以使用四種抽象層次對(duì)模塊進(jìn)行描述,最終通過綜合工具后,一般生成的是門級(jí)結(jié)構(gòu)的描述

    另外補(bǔ)充一點(diǎn),RTL級(jí)描述,通常指的是能夠被邏輯綜合工具接受的行為級(jí)描述和數(shù)據(jù)流級(jí)描述的混合描述

    總結(jié)

    以上是生活随笔為你收集整理的【Verilog HDL学习之路】第二章 Verilog HDL的设计方法学——层次建模的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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