Gate Level Modelling
module 3to8decoder(a,b,c, d0,d1,d2,d3,d4,d5,d6,d7);
input a,b,c;
output d0,d1,d2,d3,d4,d5,d6,d7;
wire w1,w2,w3;
not g1(w1,a);
not g2(w2,b);
not g3(w3,c);
and g4(d0, w1,w2,w3);
and g5(d1, a,w2,w3);
and g6(d2,w1,b,w3);
and g6(d3, a,b,w3);
and g7(d4,w1,w2,c);
and g8(d5,a,w2,c);
and g9(d6,w1,b,c);
and g10(d7,a,b,c);
endmodule
Data Flow Level Modelling
module 3to8decoder(a,b,c, d0,d1,d2,d3,d4,d5,d6,d7);
input a,b,c;
output d0,d1,d2,d3,d4,d5,d6,d7;
assign d0 = ~a&~b&~c;
assign d1 = a&~b&~c;
assign d2 = ~a&b&~c;
assign d3 = a &b &c;
assign d4 = ~a&~b&c;
assign d5 = a&~b&c;
assign d6 = ~a&b&c;
assign d7 = a&b&c;
endmodule
Behavioral Level Modelling
module 3to8decoder(a,b,c, d0,d1,d2,d3,d4,d5,d6,d7);
input a,b,c;
output d0,d1,d2,d3,d4,d5,d6,d7;
always @ (a,b,c)
begin
case ({a,b,c})
begin
3'b000: d0=1; d1=0; d2=0; d3=0; d4=0;d5=0; d6=0; d7=0; end
3'b001: d0=0;d1=1;d2=0;d3=0;d4=0; d5=0; d6=0; d7=0; end
3'b010: d0=0;d1=0;d2=1;d3=0;d4=0; d5=0; d6=0; d7=0; end
3'b011: d0=0; d1=0; d2=0; d3=1; d4 = 0; d5=0; d6=0; d7=0; end
3'b100: d0=0; d1=0; d2=0; d3=0; d4=1; d5=0; d6=0; d7=0; end
3'b101: d0=0;d1=0;d2=0;d3=0;d4=0; d5=1; d6=0; d7=0; end
3'b110: d0=0;d1=0;d2=0;d3=0;d4 = 0;d5 = 0;d6=1;d7=0; end
3'b111: d0=0;d1=0;d2=0;d3=0;d4 = 0;d5 = 0;d6=0;d7=1;end
endcase
end
endmodule