模組定義以關鍵字module開始,模組名、埠列表、埠宣告和可選的引數宣告必須出現在其他部分的前面,endmodule語句必須為模組的最後一條語句。模組內部的5個組成部分是:變數宣告、資料流語句、低層模組例項、行為語句塊以及任何和函式。在模組的組成部分中,只有module、模組名、endmodule必須出現,其他部分都是可選的,使用者可以根據設計的需要隨意選用。
如果模組和外部環境沒有交換任何訊號,則可以沒有埠列表。
模組top是乙個頂層模組,作為**中的頂層模組,呼叫設計模組,無需和周圍環境交換資訊,因此沒有埠列表。
而被呼叫的fulladd4模組,則由a, b, c_in埠讀入資料,將結果從sum和c_cout埠送出。
在verilog中埠具有以下三種型別:
在verilog中,所有的埠隱含地宣告wire型別;如果輸出型別的埠需要儲存數值,則必須將其顯式地宣告為reg資料型別。
不能將input和inout型別的埠宣告為reg資料型別,因為reg型別的變數是用於儲存數值的,而輸入埠只反映與其相連的外部訊號的變化。
在verilog中,有兩種埠宣告風格:
位寬匹配
在對模組進行呼叫的時候,verilog允許埠的內、外兩個部分具有不同的位寬。在一般的情況下,verilog**器會對此給予警告。
在對模組呼叫的時候,也已使用兩種方法將模組定義的埠與外部環境連線起來。
順序埠連線
按照順序進行埠連線:
命名埠連線
fulladd4 fa_byname(.c_out(c_out), .sum(sum), .b(b), .c_in(c_in), .a(a));
讀書筆記 模版 4
模板特化 template int compare const t v1,const t v2 形參為const char 的const 引用 模板特華可以宣告而無須定義,總是包含模板形參說明符,即template 還必須有函式形參表,如果可以從形參推斷模板實參,則不必需顯示指定模板實參 templ...
《大象》讀書筆記 4
九 獲取需求 1 定義邊界 2 發現主角 3 獲取業務用例 4 業務建模 業務用例檢視 業務用例場景 業務用例規約 業務規則 業務物件模型 業務用例實現檢視 業務用例實現場景 包圖 5 領域建模 提出領域問題 分析領域問題 建立領域模型 驗證領域模型 6 提煉業務規則 全域性規則 互動規則 內稟規則...
《effective c 》讀書筆記4
條款41 了解隱式介面和編譯期多型 n classes和templates都支援介面和多型 n 對classes而言介面是顯式的,以函式簽名為中心,多型則是通過虛函式發生於執行期。n 對templates引數而言,介面是隱式的,奠基於有效表示式,多型則是通過template具現化和函式過載解析發生於...