0% found this document useful (0 votes)
26 views7 pages

Assessment 03

Uploaded by

umarfaisal3548
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views7 pages

Assessment 03

Uploaded by

umarfaisal3548
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

Assessment-3

CODE
// Module definition
module decoder(
input wire EN, // Enable pin
input wire A, // Input A
input wire B, // Input B
input wire C, // Input C
output reg F // Output F
);

always @(*) begin


// Default F to 0
F = 1'b0;

// Use case statement with {EN, A, B, C}


case ({EN, A, B, C})
4'b0000: F = 1'b0; // 0
4'b0001: F = 1'b1; // 1
4'b0010: F = 1'b0; // 2
4'b0011: F = 1'b1; // 3
4'b0100: F = 1'b1; // 4
4'b0101: F = 1'b0; // 5
4'b0110: F = 1'b1; // 6
4'b0111: F = 1'b0; // 7
4'b1000: F = 1'b1; // 8
4'b1001: F = 1'b0; // 9
4'b1010: F = 1'b1; // 10
4'b1011: F = 1'b0; // 11
4'b1100: F = 1'b1; // 12
4'b1101: F = 1'b0; // 13
4'b1110: F = 1'b0; // 14
4'b1111: F = 1'b1; // 15
default: F = 1'b0; // Default case
endcase
end

endmodule

// Testbench
module TB_decoder;
reg EN; // Enable input
reg A, B, C; // Select inputs
wire F; // Output

// Instantiate the decoder module


decoder dut(.EN(EN), .A(A), .B(B), .C(C), .F(F));

// Test stimulus
initial begin
$monitor("EN=%b, A=%b, B=%b, C=%b, F=%b", EN, A, B, C, F);

// Test with various inputs


// EN = 0 (Output F should be 0 for all cases)
EN = 0;
A = 0; B = 0; C = 0; #10; // F should be 0 (0)
A = 0; B = 0; C = 1; #10; // F should be 1 (1)
A = 0; B = 1; C = 0; #10; // F should be 0 (2)
A = 0; B = 1; C = 1; #10; // F should be 1 (3)
A = 1; B = 0; C = 0; #10; // F should be 1 (4)
A = 1; B = 0; C = 1; #10; // F should be 0 (5)
A = 1; B = 1; C = 0; #10; // F should be 1 (6)
A = 1; B = 1; C = 1; #10; // F should be 0 (7)

// Enable = 1 to check outputs for 8-15


EN = 1;
A = 0; B = 0; C = 0; #10; // F should be 1 (8)
A = 0; B = 0; C = 1; #10; // F should be 0 (9)
A = 0; B = 1; C = 0; #10; // F should be 1 (10)
A = 0; B = 1; C = 1; #10; // F should be 0 (11)
A = 1; B = 0; C = 0; #10; // F should be 1 (12)
A = 1; B = 0; C = 1; #10; // F should be 0 (13)
A = 1; B = 1; C = 0; #10; // F should be 1 (14)
A = 1; B = 1; C = 1; #10; // F should be 1 (15)
// End the simulation
$finish;
end
endmodule
OUTPUT

You might also like