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

Demux 1 8 1 4

DDCO LAB MANUAL(CODES : 7)
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)
25 views7 pages

Demux 1 8 1 4

DDCO LAB MANUAL(CODES : 7)
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

7.

Design Verilog program to implement Different types of


Demulltiplexer(1:2,1:4)

//Demutltiplexer 1:2 verilog code

module demux_21(

input sel,I,

output Y0,Y1

);

assign {Y0,Y1} = sel?{1'b0,I}: {I,1'b0};

endmodule

//1:2 demux testbench file

//Testbench Code

initial begin

// Initialize Inputs
sel = 0;
I = 0;

// Wait 100 ns for global reset to finish


#100;

// Add stimulus here


#100; sel=0;I =1;
#100; sel=1;I=0;
#100; sel=1;I=1;

end

endmodule

////Demutltiplexer 1:4 verilog code

module demux_1_to_4(

input d,

input s0,

input s1,

output y0,

output y1,

output y2,

output y3

);

assign s1n = ~ s1;

assign s0n = ~ s0;

assign y0 = d& s0n & s1n;

assign y1 = d & s0 & s1n;

assign y2 = d & s0n & s1;


assign y3 = d & s0 & s1;

endmodule

//1:4 demux testbench file

initial begin

// Initialize Inputs

d = 1;

s0 = 0;

s1 = 0;

// Wait 100 ns for global reset to finish

#100;

// Add stimulus here

#100;d = 1;s0 = 1;s1 = 0;

#100;d = 1;s0 = 0;s1 = 1;

#100;d = 1;s0 = 1;s1 = 1;

end

endmodule
//1:8 demux

module demux_81_1(

input in,s0,s1,s2,

output d0,d1,d2,d3,d4,d5,d6,d7

);

assign d0=(in & ~s2 & ~s1 &~s0),

d1=(in & ~s2 & ~s1 &s0),

d2=(in & ~s2 & s1 &~s0),

d3=(in & ~s2 & s1 &s0),

d4=(in & s2 & ~s1 &~s0),

d5=(in & s2 & ~s1 &s0),

d6=(in & s2 & s1 &~s0),

d7=(in & s2 & s1 &s0);


endmodule

//test bench file

module demux_8_1_test;

// Inputs

reg in;

reg s0;

reg s1;

reg s2;

// Outputs

wire d0;

wire d1;

wire d2;

wire d3;
wire d4;

wire d5;

wire d6;

wire d7;

// Instantiate the Unit Under Test (UUT)

demux_81_1 uut (

.in(in),

.s0(s0),

.s1(s1),

.s2(s2),

.d0(d0),

.d1(d1),

.d2(d2),

.d3(d3),

.d4(d4),

.d5(d5),

.d6(d6),

.d7(d7)

);

initial begin

// Initialize Inputs

in = 0;

s0 = 0;

s1 = 0;
s2 = 0;

// Wait 100 ns for global reset to finish

#100;

in = 1;

s0 = 0;

s1 = 1;

s2 = 0;

// Wait 100 ns for global reset to finish

#100;

// Add stimulus here

#100;

in = 1;

s0 = 1;

s1 = 1;

s2 = 0;

// Wait 100 ns for global reset to finish

#100;

end

endmodule

You might also like