互斥或閘 Verilgo 與 Test Bench檔案
Verilog 檔案
module xor_gate(A, B, Y);
input A,B;
output Y;
wire An; // 宣告中繼信號 An 為 wire 資料
wire Bn; // 宣告中繼信號 Bn 為 wire 資料
wire C; // 宣告中繼信號 C 為 wire 資料
wire D; // 宣告中繼信號 D 為 wire 資料
// wire
assign An = ~A;
assign Bn = ~B;
assign C = A & Bn ; // C = A./B
assign D = An & B ; // D = /A.B
assign Y= C | D ; //Y= A./B + /A.B
endmodule
測試檔案
`timescale 1ns/1ps
module T;
reg A = 1'b0;
reg B = 1'b0;
wire Y;
xor_gate UUT (
.A(A),
.B(B),
.Y(Y));
initial
begin
#500; // Final time: 500 ns
$stop;
end
initial
begin
// ------------- Current Time: 100ns
#100;
A = 1'b1;
// -------------------------------------
// ------------- Current Time: 200ns
#100;
A = 1'b0;
B = 1'b1;
// -------------------------------------
// ------------- Current Time: 300ns
#100;
A = 1'b1;
end
endmodule
沒有留言:
張貼留言