2008年8月27日 星期三

Verilog Levels of Abstraction

  1. Behavioral Representation(Architecture/System/Algorithmic Level)

  2. 這是Verilog中最高層次,在這個層次中我們會依據系統需求,來考慮模組或函式的功能而不去考慮硬體方面詳細的電路是如何運作的。所以會專注在系統架構或演算法的實現,因此在這個階段設計工作就會像在寫C。通常在此層次中所做的是用來模擬並且多半無法合成的,也無法看出電路特性。
  3. Functional Representation(RTL/Dataflow Level)

  4. 在這個層次中,我們必需要指定資料處理的方式,明確的說明資料如何在暫存器及模組間儲存與傳送的流程。在此層次中可看出電路特性。
  5. Structural Representation(Gate Level)

  6. 這個層次中的模組是由邏輯閘連接而成,所以設計的工作就會像以前用描繪邏輯閘來設計線路一樣,所以可以了解實際的硬體線路,但無法很快速的了解高階的行為。在這個層次中我們可以用內建的verilog原生元件來設計,不過由於在不同的製程下,各種的邏輯閘大小、延遲時間等等,也會跟著有所不同,所以此層次通常交由工具程式下去產生。
  7. Physical Representation(Switch/Transistor Level)

  8. 這是Verilog最低階的層次,線路是由開關與儲存點組合而成。在此層次設計時必需清楚知道電晶體的元件特性,但此處寫出的Verilog是無法合成的。


從Behavioral->Functional->Structural->Physical皆可使用Verilog去描述出來,尤其是Behavioral是Verilog的強項。


Verilog in Behavioral Level – NAND Module

module NANDGATE (A, B, F);
input A;
input B;
output F;
reg F;

always @(A or B)
begin
F=~(A & B);
end
endmodule

Verilog in Functional Level – AND Module
module ANDGATE (A, B, F);
input A;
input B;
output F;
wire F;

assign F=A&B;
endmodule

Verilog in Structural Level – OR Module
module ORGATE (A, B, F);
input A;
input B;
output F;

or u1(F, A, B);
endmodule

Verilog in Physical Level – NOT Module
module inv (ina, out);
input ina;
output out;
supply1 vcc;
supply0 gnd;

pmos (out, vcc, ina);
nmos (gnd, out, ina);
endmodule

沒有留言: