數位電路設計中有兩種基本的設計方法:自底向上和自頂向下設計方方法。
而在典型的設計中,這兩種方法是混合使用的,設計人員首先根據電路的體系結構定義頂層模組。邏輯設計者確定如何根據功能將整個設計劃分為子模組;與此同時,電路設計者對底層功能塊電路進行優化設計,並進一步使用這些底層模組來搭建其高層模組。
verilog使用模組(module)的概念來代表乙個基本的功能塊,乙個模組可以是乙個元件,也可以是低層次模組的組合。
模組通過介面(輸入和輸出)被高層的模組呼叫,但隱藏了內部的實現細節。這樣的話,設計者可以方便地對某乙個模組進行修改,而不影響設計的其他部分。
根據設計需要,設計者在每個模組內部可以在4個抽象層次中進行描述,而模組對外顯示的功能都是一樣的。
抽象層次定義由高到低如下:
verilog允許設計者在乙個模組中混合使用多個抽象層次。在數位電路設計中,術語暫存器傳輸級(rtl)描述在很多情況下是指能夠被邏輯綜合工具接受的行為級和資料流級的混合描述。
一般來說,抽象的層次越高,那麼設計的靈活性和工藝無關性就越強;隨著抽象層次的降低,靈活性和工藝無關性就越差,微小的調整可能會導致對設計的多處修改。這就類似於c語言與組合語言,如果使用組合語言,則需要針對特定的計算機,可移植性差。
例項化(instantiation)與例項(instance):
當乙個模組被呼叫的時候,verilog會根據模板建立乙個唯一的模組物件,從模板建立物件的過程就叫做例項化,而建立的物件則被稱為例項。
在上面的四位行波進製計數器中的例子可以看到,頂層模組根據t觸發器的模組建立了4個具體的例項。然後每乙個t觸發器都例項化了乙個d觸發器和乙個反相器。
在設計完成之後,還必須對設計的正確性進行測試(test bench)。
測試的設計有兩種模式:
讀書筆記2
關於this指標 雖然this指標大家已經很熟悉了,但是我這裡討論的關於this指標的問題可能大家還沒注意過 為了說明這個關於this的歸屬問題,我自寫了一段再簡單不過的程式,雖簡單但具體 include class a void aa 我的問題是指標p1是指向b自身嗎?一看程式,大家就知道 不是,...
讀書筆記(2)
沉默的藝術 意識科學基礎理論 量子效應只是用於穩定某種內在自由度極大的基本粒子,然後再用基本粒子的內在屬性產生意識體驗。只能通過呈現乙個系統的 物理 屬性來描述乙個系統。只能通過變成內在屬性配對的其中乙個系統,以直接體驗的方式來獲得這些內在屬性的資訊。定義乙個包含所有系統的系統d,除該系統外無任何系...
讀書筆記2
ripple專注於跨境支付領域,主要為銀行和其他金融機構提供基於區塊鏈協議的外匯 轉賬方案。目前已公布的銀行客戶有3家,並正在和另外80多家銀行深入洽談。ripple主 要通過其開發的interledger協議專案,在保持銀行等金融機構的各自不同的記賬系統的基 礎上,打造乙個全球統一的網路金融傳輸協...