1. 程式人生 > >【轉】Verilog HDL常用建模方式——《Verilog與數字ASIC設計基礎》讀書筆記(四)

【轉】Verilog HDL常用建模方式——《Verilog與數字ASIC設計基礎》讀書筆記(四)

方式 就是 html 必須 計算 標識 ble 打包 wire

Verilog HDL常用建模方式——《Verilog與數字ASIC設計基礎》讀書筆記(四)

Verilog HDL的基本功能之一是描述可綜合的硬件邏輯電路。所謂綜合(Synthesis)是指將Verilog HDL程序、原理圖等設計輸入翻譯成由與門(and)、或門(or)、非門(not)等基本邏輯單元組成的門級連接,並根據設計目標和要求對門級邏輯連接進行優化,得到優化的門級網表文件。

  Verilog HDL主要有三種建模方式:

  4.1結構級建模

  結構級建模包括門級建模和分層建模兩種情況。門級建模就是將邏輯電路圖用Verilog HDL規定的文本語言表示出來,即調用Verilog HDL中內置的基本門級元件(Gate Level Primitives,門級源語)描述邏輯圖中的元件以及元件之間的連接關系。分層次就是將一個數字系統劃分為多個組成模塊,再分別對每個模塊建模,然後將這些模塊組合成一個總模塊,完成所需的功能。

Verilog HDL中內置了12個基本門級元件模型,門級元件的輸出、輸入必須為網類型的變量。當使用這些元件邏輯仿真時,仿真軟件會根據程序描述給每個元件中變量分配邏輯0,邏輯1,不確定態x和高阻態z這4個值之一。

  這些門可分為:多輸入門,多輸出門,三態門。

  4.2數據流建模

  對於基本單元邏輯電路,使用Verilog HDL提供的門級元件模型描述電路非常方便,但隨著電路復雜性的增加,當使用的邏輯門較多時,使用Verilog HDL門級描述的工作效率就很低。數據流建模的抽象級別介於門級和行為級之間,它是行為級建模的一種形式,組合電路的邏輯行為最好使用數據流建模方式。

  數據建模使用的基本語句是連續賦值語句,連續賦值語句用於對wire型變量進行賦值,它由關鍵詞assign開始,後面跟著操作數和運算符組成的邏輯表達式。

  例如:

  wire a,b,sel,out;  //declare four wires variables

  assign out = (a& (~b)) | (b & sel);  //a continuous assignment

  連續賦值語句的執行過程是:只要邏輯表達式右邊變量的邏輯值發生變化,則等式右邊表達式的值會立即被計算出來並賦給左邊的變量。註意:在assign語句中,左邊變量的數據類型必須是wire型。

  4.3行為級建模

  行為級建模就是以抽象的形式描述數字邏輯電路的功能和算法,在Verilog HDL 中,行為級建模主要使用由關鍵詞initialalways定義的兩種結構類型的描述語句。一個模塊內部可以包含多個initial或always語句,仿真時這些語句同時執行,即與它們在模塊內部排列的順序無關,仿真都從0時刻開始執行。initial語句主要是一條面向仿真的過程語句,不能用來描述硬件電路的功能。

  在always結構型語句內部有一系列過程賦值語句,用來描述電路的行為(功能)。過程性賦值語句包括在結構型的語句內部使用的邏輯表達式、條件語句(if-else)、多路分支語句(case-endcase)和循環語句等。

  順序語句塊就是由塊標識符begin...end保衛界定的一組行為描述語句,其作用是:相當於給塊中的這組行為描述語句進行打包處理,使之在形式上與一條語句一致。在這個模塊內部的各條語句按照書寫的先後順序依次執行。在Verilog HDL中,可以給每個語句塊取一個名字,方法是:在關鍵詞begin後面加上一個冒號,之後給出名字即可。取了名字的塊被稱為有名塊

【轉】Verilog HDL常用建模方式——《Verilog與數字ASIC設計基礎》讀書筆記(四)