iT邦幫忙

2022 iThome 鐵人賽

DAY 7
0
Software Development

超簡單的 Verilog 入門講解系列 第 7

[Day 07] Verilog E-1 難度丁P1海域的解謎2 - 內建簡單的 Gate 程式

  • 分享至 

  • xImage
  •  

目前講到的 Gate 有6 種
https://ithelp.ithome.com.tw/upload/images/20220920/20135862YowsM2KXar.png

其實 verlog 就有內建這幾個功能
And-Gate → and(output1,input1,input2)
Or-Gate → or(output1,input1,input2)
Xor-Gate → xor(output1,input1,input2)

我們試著用看看這幾個吧


module All_gate1(A,B,Out_and_gate ,Out_nand_gate, Out_or_gate ,Out_nor_gate,Out_xnor_gate ,Out_xor_gate);
input A , B;
output Out_and_gate ,Out_nand_gate;
output Out_or_gate ,Out_nor_gate;
output Out_xor_gate ,Out_xnor_gate;

and(Out_and_gate,A,B); 
nand(Out_nand_gate,A,B); 

or(Out_or_gate,A,B); 
nor(Out_nor_gate,A,B); 

xor(Out_xor_gate,A,B); 
xnor(Out_xnor_gate,A,B); 

endmodule

tb 也簡單寫一下



module tb1();

reg A_in , B_in;
wire out_test_and_gate,out_test_nand_gate;
wire out_test_or_gate,out_test_nor_gate;
wire out_test_xor_gate,out_test_xnor_gate;

All_gate1 Test_And_Gate(
.A(A_in),
.B(B_in),
.Out_and_gate(out_test_and_gate), .Out_nand_gate(out_test_nand_gate), 
.Out_or_gate(out_test_or_gate)  , .Out_nor_gate(out_test_nor_gate),
.Out_xor_gate(out_test_xor_gate), .Out_xnor_gate(out_test_xnor_gate)
);

initial 

begin

A_in = 0 ;
B_in = 0 ;
# 100;

A_in = 1 ;
B_in = 0 ;
# 100;

A_in = 0 ;
B_in = 1 ;
# 100;

A_in = 1 ;
B_in = 1 ;
# 100;

end



endmodule

輸出結果看看
https://ithelp.ithome.com.tw/upload/images/20220920/20135862re0ipWsrSi.png

and 只有 A=1 ,B=1 會得到1
or 只有 A=0 ,B=0 會得到0
xor A,B相同就是 0

跟預期得差不多


上一篇
[Day 06] Verilog E-1 難度丁P1海域的解謎1 - And_Gate 的 tb
下一篇
[Day 08] Verilog E-1 難度丁P1海域的解謎3 - 簡單的向量操作1
系列文
超簡單的 Verilog 入門講解30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言