Vlsi Lab Programs
Vlsi Lab Programs
MAIN MODULE
module counter_4_Sim (CLK, CLR, up_down, Q);
input CLK, CLR, up_down;
output [3:0] Q;
reg [3:0] tmp;
always @(posedge CLK or posedge CLR)
begin
if (CLR)
tmp = 4'b0000;
else
if (up_down)
tmp = tmp + 1'b1;
else
tmp = tmp - 1'b1;
end
assign Q = tmp;
endmodule
MAIN MODULE
module Accumulator_Sim(CLK, CLR, D, Q);
input CLK, CLR;
input [3:0] D;
output [3:0] Q;
reg [3:0] tmp;
always @(posedge CLK or posedge CLR)
begin
if (CLR)
tmp <= 4'b0000;
else
tmp <= tmp + D;
end
assign Q = tmp;
endmodule
FPGA IMPLEMENTATION
1. FPGA IMPLEMENTATION OF 8-BIT ADDER USING SPARTAN 3 XC3S400
VERILOG CODE
module Adder_8_FPGA(clk,addr,load,clear,data_in,calc,result);
input clk,clear,calc,load;
input [2:0]addr;
input [7:0]data_in;
output reg [7:0]result;
reg [7:0]ram[7:0];
wire [7:0]temp;
always@(posedge clk)
begin
if(~clear)
begin
ram[0]=8'b0;
ram[1]=8'b0;
ram[2]=8'b0;
ram[3]=8'b0;
ram[4]=8'b0;
ram[5]=8'b0;
ram[6]=8'b0;
ram[7]=8'b0;
end
else if(~load)
ram[addr]=data_in;
end
assign temp=ram[0]+ram[1]+ram[2]+ram[3]+ram[4]+ram[5]+ram[6]+ram[7];
always@(posedge clk)
begin
if(~load)
result=data_in;
else if(~calc)
result=temp;
else
result=ram[addr];
end
endmodule
module Multiplier_4_FPGA(clk,addr,load,clear,data_in,calc,result);
input clk,clear,calc,load;
input addr;
input [3:0]data_in;
output reg [7:0]result;
reg [3:0]ram[1:0];
wire [7:0]temp;
always@(posedge clk)
begin
if(~clear)
begin
ram[0]=4'b0;
ram[1]=4'b0;
end
else if(~load)
ram[addr]=data_in;
end
always@(posedge clk)
begin
if(~load)
result={4'b0,data_in};
else if(~calc)
result= multiply_4x4_2sC (ram[0],ram[1]);
else
result={4'b0,ram[addr]};
end
function[7:0] multiply_4x4_2sC;
input[3:0] a,b;
reg[3:0] a_mag,b_mag;
reg[6:0] y_mag;
reg[6:0] y_neg;
begin
case (a[3])
0: a_mag = a[2:0];
1: a_mag = 8 - a[2:0];
endcase
case (b[3])
0: b_mag = b[2:0];
1: b_mag = 8 - b[2:0];
endcase
y_mag = a_mag * b_mag
if ((a[3] ^ b[3]) & (y_mag != 0)) // if (a * b) is -ve AND non-zero
begin
y_neg = 128 - y_mag[5:0];
multiply_4x4_2sC = {1'b1,y_neg};
end
else
multiply_4x4_2sC = y_mag;
end
endfunction
endmodule
TANNER EXPERIMENTS
1. INVERTER- SCHEMATIC
2. DIFFERENTIAL AMPLIFIER
FOR COMMON MODE CHANGE THE PHASE OF THE AC VOLTAGE SOURE
ARE AT 0 DEGREE