verilog的結構化、資料流、行為級描述方式
概述:verilog通常可以使用三種不同的方式描述模組實現的邏輯功能:結構化、資料流、行為描述方式。
結構化描述方式:是使用例項化低層次模組的方法,即呼叫其他已經定義過的低層次模組對整個電路的功能進行描述,或者直接呼叫verilog內部預先定義的基本門級元件描述電路的結構。
資料流描述方式:是使用連續賦值語句(assign)對電路的邏輯功能進行描述,該方式特別便於對組合邏輯電路建模。
行為級描述方式:是使用過程塊語句結構(always)和比較抽象的高階程式語句對電路的邏輯功能進行描述。
說明:
以表示式l=ab+bc+ac,進行verilog**編寫以及rtl檢視的觀察來描述三種方式。
輸入輸出:輸入
輸出a、b、c
l真值表:a
bcl0
0000
0100
1000
1111
0001
0111
1011
111邏輯圖(下面三種方式都是為了實現這個邏輯):
●結構化描述方式:是使用例項化低層次模組的方法,即呼叫其他已經定義過的低層次模組對整個電路的功能進行描述,或者直接呼叫verilog內部預先定義的基本門級元件描述電路的結構。
●結構化描述**:
module top
(//輸入埠
input a,
input b,
input c,
//輸出埠
output l);
wire ab,bc,ac;
//內部訊號宣告
and u1
(ab,a,b)
;//與門
and u2
(bc,b,c)
;//與門
and u3
(ac,a,c)
;//與門
or u4
(l,ab,bc,ac)
;//或門
endmodule
●結構化描述rtl檢視:
●資料流描述方式:是使用連續賦值語句(assign)對電路的邏輯功能進行描述,該方式特別便於對組合邏輯電路建模。
●資料流描述**:
module top
(//輸入埠
input a,
input b,
input c,
//輸出埠
output l);
assign l =
(a&&b)
||(b&&c)
||(a&&c)
;endmodule
●資料流描述rtl檢視:●行為級描述方式:是使用過程塊語句結構(always)和比較抽象的高階程式語句對電路的邏輯功能進行描述。
●行為級描述**:
module top
(//輸入
input a,
input b,
input c,
//輸出
output reg l);
always@(a,b,c)
begin
case()
3'b000: l = 1'b0;
3'b001: l = 1'b0;
3'b010: l = 1'b0;
3'b011: l = 1'b1;
3'b100: l = 1'b0;
3'b101: l = 1'b1;
3'b110: l = 1'b1;
3'b111: l = 1'b1;
default
: l =
1'bx;
endcase
endendmodule
●行為級描述rtl檢視:
verilog拓展知識:veriloghdl內建26個基本元件,其中14個門級元件,12個開關元件。以下為我們常用的門級元件。
結構化資料 半結構化資料 非結構化資料
結構化資料 即行資料,儲存在資料庫裡,可以用二維表結構來邏輯表達實現的資料 所謂半結構化資料,就是介於完全結構化資料 如關係型資料庫 物件導向資料庫中的資料 和完全無結構的資料 如聲音 影象檔案等 之間的資料,html文件就屬於半結構化資料。它一般是自描述的,資料的結構和內容混在一起,沒有明顯的區分...
結構化資料,非結構化資料,半結構化資料的區別
1.結構化資料 先有結構,再有資料 是指由二維表結構來邏輯表達和實現的資料,嚴格地遵循資料格式與長度規範,主要通過關係型資料庫進行儲存和管理。也稱作行資料,一般特點是 資料以行為單位,一行資料表示乙個實體的資訊,每一行資料的屬性是相同的。2.非結構化資料 先有資料,再有結構 半結構化資料,是結構化資...
結構化資料 半結構化資料和非結構化資料
本文 在實際應用中,我們會遇到各式各樣的資料庫如nosql非關聯式資料庫 memcached,redis,mangodb rdbms關聯式資料庫 oracle,mysql等 還有一些其它的資料庫如hbase,在這些資料庫中,又會出現結構化資料,非結構化資料,半結構化資料,下面列出各種資料型別 結構化...