Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
98 views26 pages

Lab 4

This document is a lab report describing the design and implementation of Boolean functions using standard forms and logic gates. It outlines creating truth tables and deriving sum of products and product of sums expressions. Circuits were designed using logic gates for different Boolean functions F1, F2, and F3. The circuits were also implemented using Verilog code in Xilinx with test benches to simulate the behavior. A critical analysis discusses learning how to design circuits from Boolean expressions and simulate them using Proteus and Xilinx software.

Uploaded by

Saim Ashraf
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)
98 views26 pages

Lab 4

This document is a lab report describing the design and implementation of Boolean functions using standard forms and logic gates. It outlines creating truth tables and deriving sum of products and product of sums expressions. Circuits were designed using logic gates for different Boolean functions F1, F2, and F3. The circuits were also implemented using Verilog code in Xilinx with test benches to simulate the behavior. A critical analysis discusses learning how to design circuits from Boolean expressions and simulate them using Proteus and Xilinx software.

Uploaded by

Saim Ashraf
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/ 26

Digital Logic Design

Lab report 4

Submitted by
M SAIM ASHRAF
Registration No:
FA21-BEE-128
Submitted to
DR ADNAN QURESHI
Lab#4 Design and Implementation of Boolean Functions by
standard Forms using ICs/Verilog
Equipment Required:
 Breadboard
 Xilinx
 Logic Gate IC’s
Background Theory:
For the design and implementation of Sum of
Products and Product of Sums first the truth tables for min terms and
max terms are created along with all of its possible outcomes.
Min terms are made in such a way that outcome will
be 1 if all bits are 1 by taking product of these bits and if we sum all min
terms in an expression then Sum of Product is obtained.
On the other hand, max terms are made in such a
way that outcome should be 0 if all bits are 0 by taking sum of these
bits and if take product of all min terms in an expression then Product
of Sums is obtained.
The equations can be simplified and implemented using Xilinx.
Lab Tasks:
Boolean expression from truth table:
Procedure:
 Create truth table.
 Consider 1’s in output as min terms and create SOP equation from
table.
 Similarly create a POS equation from 0’s.
 Simplify equations using k-map method.
Pre lab Tasks:
In lab Tasks:
Circuit Implementation
1. First, make the circuit diagram of the given task .
2. Select appropriate logic gate IC’s which are needed.
3. Make connections according to the circuit diagram you made.
4. Connect the input to data switches and output to the logic indicator
5. Follow the input sequence and record the output.

TASK: Implement the circuit for the given function “F”. Function’s output is given in the table
4.5. Find its Boolean expression in SOP and POS forms.
Boolean Equations:
Sum of min terms equation of F: a’b’cd + a’bcd + ab’c’d’+ abc’d + abcd’+ abcd
Reduced SOP form equation of F: a’cd + acd’+abc
Product of max-terms equation of F: (a+b+c+d)(a+b+c+d’)(a+b+c’+d)(a+b’+c+d)
(a+b’+c+d’)(a+b’+c’+d)(a’+b+c+d’)(a’+b+c’+d)(a’+b+c’+d’)(a’+b’+c+d)
Reduced POS form equation of F: (A+C)(B+C)(A+D)

Reduced Form Calculation:


Circuit Diagrams
1. Sum of Min-Terms form:

2. Reduced SOP Form (Using NAND):


3. Reduced POS form (Using NOR IC):
Implement Boolean expression using Xilinx:
Procedure:
 Create project in Xilinx.
 Specify inputs and outputs in main module.
 Implement the Boolean expression using gates.
 Give final output as output function variable
 Test wave form.

F1 Minterms Main method code:


module Main(

input a,

input b,

input c,

input d,

output F1

);

wire w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12,w13,w14;

not n1(w1, a);

not n2(w2, b);

not n3(w3, a);

not n4(w4, b);

not n5(w5, c);

not n6(w6, d);

not n7(w7, c);

not n8(w8, d);

and a1(w9, w1,w2,c,d);

and a2(w10, w3,b,c,d);

and a3(w11, a,w4,w5,w6);

and a4(w12, a,b,w7,d);

and a5(w13, a,b,c,w8);

and a6(w14, a,b,c,d);


endmodule

Test Bench:
module TB_Main;

// Inputs

reg a;

reg b;

reg c;

reg d;

// Outputs

wire F1;

// Instantiate the Unit Under Test (UUT)

Main uut (

.a(a),

.b(b),

.c(c),

.d(d),

.F1(F1)

);

initial begin

// Initialize Inputs

a = 0;

b = 0;

c = 0;

d = 0;

#100;

a = 1;

b = 0;

c = 0;
d = 0;

#100;

a = 0;

b = 1;

c = 0;

d = 0;

#100;

a = 0;

b = 0;

c = 1;

d = 0;

#100;

a = 0;

b = 0;

c = 0;

d = 1;

#100;

a = 1;

b = 1;

c = 0;

d = 0;

#100;

a = 1;

b = 0;

c = 1;
d = 0;

#100;

a = 1;

b = 0;

c = 0;

d = 1;

#100;

a = 0;

b = 1;

c = 1;

d = 0;

#100;

a = 0;

b = 1;

c = 0;

d = 1;

#100;

a = 0;

b = 0;

c = 1;

d = 1;

#100;

a = 1;

b = 1;
c = 1;

d = 0;

#100;

a = 1;

b = 1;

c = 0;

d = 1;

#100;

a = 0;

b = 1;

c = 1;

d = 1;

#100;

a = 1;

b = 0;

c = 1;

d = 1;

#100;

a = 1;

b = 1;

c = 1;

d = 1;

#100;
end

endmodule

Behavior Test:

F3 SOP Method Code:

module Main(

input a,

input b,

input c,

input d,

output F3

);

wire w1,w2,w3,w4,w5,w6;

not n1(w1,a);

not n2(w2,c);
and a1(w3,w1,c,d);

and a2(w4,a,b,c);

and a3(w5,a,w2,d);

or o1(F3,w3,w4,w5);

endmodule

Test Bench:
module TB_Main;

// Inputs

reg a;

reg b;

reg c;

reg d;

// Outputs

wire F3;

// Instantiate the Unit Under Test (UUT)

Main uut (

.a(a),

.b(b),

.c(c),

.d(d),

.F3(F3)

);

initial begin

// Initialize Inputs

a = 0;

b = 0;

c = 0;

d = 0;
#100;

a = 1;

b = 0;

c = 0;

d = 0;

#100;

a = 0;

b = 1;

c = 0;

d = 0;

#100;

a = 0;

b = 0;

c = 1;

d = 0;

#100;

a = 0;

b = 0;

c = 0;

d = 1;

#100;

a = 1;

b = 1;

c = 0;

d = 0;
#100;

a = 1;

b = 0;

c = 1;

d = 0;

#100;

a = 1;

b = 0;

c = 0;

d = 1;

#100;

a = 0;

b = 1;

c = 1;

d = 0;

#100;

a = 0;

b = 1;

c = 0;

d = 1;

#100;

a = 0;

b = 0;

c = 1;
d = 1;

#100;

a = 1;

b = 1;

c = 1;

d = 0;

#100;

a = 1;

b = 1;

c = 0;

d = 1;

#100;

a = 0;

b = 1;

c = 1;

d = 1;

#100;

a = 1;

b = 0;

c = 1;

d = 1;

#100;

a = 1;

b = 1;

c = 1;
d = 1;

#100;

end

endmodule

Behavior Test:

F2 POS Method Code:


module Main(

input a,

input b,

input c,

input d,

output F2

);

wire w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11;

not n1(w1,a);

not n2(w2,c);

not n3(w3,c);

not n4(w4,a);

not n5(w5,d);

not n6(w6,a);

not n7(w7,b);

or o1(w8,a,c);

or o2(w9,w1,b,w2);

or o3(w10,a,w3,d);

or o4(w11,w4,b,c,w5);

or o5(w12,w6,w7,c,d);

and a1(F2,w8,w9,w10,w11,w12);

endmodule

Test Bench:
module TB_Main;

// Inputs

reg a;

reg b;

reg c;
reg d;

// Outputs

wire F2;

// Instantiate the Unit Under Test (UUT)

Main uut (

.a(a),

.b(b),

.c(c),

.d(d),

.F2(F2)

);

initial begin

// Initialize Inputs

a = 0;

b = 0;

c = 0;

d = 0;

#100;

a = 1;

b = 0;

c = 0;

d = 0;

#100;

a = 0;

b = 1;

c = 0;

d = 0;
#100;

a = 0;

b = 0;

c = 1;

d = 0;

#100;

a = 0;

b = 0;

c = 0;

d = 1;

#100;

a = 1;

b = 1;

c = 0;

d = 0;

#100;

a = 1;

b = 0;

c = 1;

d = 0;

#100;

a = 1;

b = 0;

c = 0;
d = 1;

#100;

a = 0;

b = 1;

c = 1;

d = 0;

#100;

a = 0;

b = 1;

c = 0;

d = 1;

#100;

a = 0;

b = 0;

c = 1;

d = 1;

#100;

a = 1;

b = 1;

c = 1;

d = 0;

#100;

a = 1;

b = 1;

c = 0;
d = 1;

#100;

a = 0;

b = 1;

c = 1;

d = 1;

#100;

a = 1;

b = 0;

c = 1;

d = 1;

#100;

a = 1;

b = 1;

c = 1;

d = 1;

#100;

end

endmodule

Behavior Test:
Critical Analysis:
In this lab 4 we learned how to make circuits in proteus with the help of boolean
functions equations and filled the required outputs given in the table. Also we simulate
the min terms and max terms both in reduced and actual equations using proteus
software. After this then comes the post labs tasks the same thing we did using the
Proteus software we were ought to do same thing using XILINX software and write the
Verilog code for all the functions F1,F2, and F3 and also write the test bench as well
along with the behavior test of all the functions we attached the following requirements
in this lab report as well.

You might also like