Pages

Friday, 13 April 2018

Verilog Code to Describe Full adder using Dataflow Style 



module fulladder(a_in, b_in, c_in, sum, carry); 
input a_in, b_in,c_in; 
output sum, carry;                                                                               
assign sum = a_in^b_in^c_in; 
assign carry =(a_in & b_in)|(b_in & c_in)|(a_in & c_in); 
endmodule 


Verilog Code to Describe Full adder using Behavioral Style 

module fulladder(abc, sum, carry); 
input [2:0] abc; 
output sum,carry; 
 reg sum,carry; 
always@(abc)
 begin 
 case (abc) 
 3’b000:begin  sum=1’b0; carry=1’b0;end 
 3’b001:begin  sum=1’b1; carry=1’b0;end 
 3’b010:begin  sum=1’b1; carry=1’b0;end 
 3’b011:begin  sum=1’b0; carry=1’b1;end 
 3’b100:begin  sum=1’b1; carry=1’b0;end  
 3’b101:begin  sum=1’b0; carry=1’b1;end 
 3’b110:begin  sum=1’b0; carry=1’b1;end 
 3’b111:begin  sum=1’b1; carry=1’b1;end        
 default: begin sum=1'bz;  carry=1'bz;end  
endcase 
end
 endmodule 


Verilog Code to Describe Full adder using Gate level Style 

module fulladder(a_in, b_in, c_in, sum, carry); 
input a_in,b_in, c_in; 
output sum,carry;  
wire s1, s2, tems3;  
xor x1(s1,a_in,b_in); 
and a1(s2,a_in,b_in); 
xor x2(sum,s1,c_in); 
and a2(s3,s1,c_in); 
or o1(carry,s3,s2); 
endmodule 





No comments:

Post a Comment