iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
自我挑戰組

硬體學習日記系列 第 8

Day-8 verilog介紹-4 logic gate

  • 分享至 

  • xImage
  •  

今天要來介紹的是邏輯閘~邏輯閘是電路的基本構建,用於實踐布林邏輯操作,有AND、OR、NOT、XOR、NOR、NAND、XNOR。

And gate

AND運算就像是數學運算中的「乘」,只有兩者皆為1時,才會得到1;其餘時間都是為0。
很常會用True table來表示:

in_1 in_2 output
0 0 0
0 1 0
1 0 0
1 1 1

接著以verilog來寫AND運算:

module newwork(A,B,C);
	input A,B;
	output C;
	
	assign C = A & B; //AND運算
	
endmodule

會以「&」來表示執行AND運算。

OR gate

OR運算就像是數學運算中的「加」,只要有1的出現,輸出即為1,否則為0。
用True table來表示的話:

in_1 in_2 output
0 0 0
0 1 1
1 0 1
1 1 1

接著用verilog寫OR:

module newwork(A,B,C);
	input A,B;
	output C;
	
	assign C = A | B; //OR運算

endmodule

會以「|」表示OR運算。

NOT gate

NOT gate就是把0變1、1變0,執行互補(complement)的動作。
以True table來表示:

input output
0 1
1 0

以verilog來寫OR:

module newwork(A,B);
	input A;
	output B;
	
	assign B = ~A; //NOT運算
	
endmodule

會以「~」表示NOT運算。

XOR gate

XOR當兩個輸入端的值都相同時,output就為0;如果輸入端值不同,output則為1。
以True table來表示:

in_1 in_2 output
0 0 0
0 1 1
1 0 1
1 1 0

以verilog來寫的話:

module newwork(A,B,C);
	input A,B;
	output C;
	
	assign C = A ^ B; //XOR運算
	
endmodule

會以「^」表示XOR運算。

NOR gate

NOR gate就是OR+NOT,結果與OR gate會相反。
以True table來表示:

OR NOR
0 1
1 0

以verilog來寫的話:

module newwork(A,B,C);
	input A,B;
	output C;
	
	assign C = ~( A | B ); //NOR運算

endmodule

會在執行OR運算後前方加上「~」表示執行NOR運算。

NAND gate

NAND gate就是AND + NOT,輸出結果與AND相反。
以True table來表示:

AND NAND
0 1
1 0

以verilog來寫的話:

module newwork(A,B,C);
	input A,B;
	output C;
	
	assign C = ~( A & B );
	
endmodule

會在執行AND運算後前方加上「~」表示執行NAND運算。

XNOR gate

XNOR就是XOR+NOT,結果會與XOR相反。
以True table來表示:

XOR XNOR
0 1
1 0

以verilog來寫的話:

module newwork(A,B,C);
	input A,B;
	output C;
	
	assign C = ~( A ^ B );
	
endmodule

會在執行XOR運算後前方加上「~」表示執行XNOR運算。

那七個gate都介紹過了~這裡來做個小整理:

gate verilog中符號 與誰相反
AND & NAND
OR NOR
XOR ^ XNOR
NOT ~
NAND ~(AND) AND
NOR ~(OR) OR
XNOR ~(XOR) XOR

今天就先到這邊~


上一篇
Day-7 Verilog介紹-3 function & task
下一篇
Day-9 verilog介紹-5 expression & assign
系列文
硬體學習日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言