Dr.G.Senthil Kumar - VLSI - Design - Lab
Dr.G.Senthil Kumar - VLSI - Design - Lab
Dr.G.Senthil Kumar - VLSI - Design - Lab
Record
Place:
Date:
…………………… …………………….
Faculty in-charge Head of the department
Dr. G. Senthil Kumar Prof. V. Swaminathan
==================================================================================================
1. HDL based design entry, Test bench creation and simulation of BCD counters, PRBS
generators, Comparators (min 4-bit) / Bothe multiplier / Carry select adder.
2. Synthesis, Placement and Routing (P&R) and post P&R simulation of the components
simulated in (Expt. No. 1) above
3. Critical paths and static timing analysis results to be identified. Identify and verify
possible conditions under which the blocks will fail to work correctly.
4. Hardware fusing and testing of each of the blocks simulated in (Expt. 1).Use of either
chipscope feature (Xilinx) or the signal tap feature(Altera) is a must.
5. Invoke the PLL and demonstrate the use of the PLL module for clock generation in
FPGAs.
IC Design Experiments:
The Spartan-3E
3E Trainer Kit is a demonstration platform intended to become familiar with the new features
and availability of the Spartan-3E
3E FPGA family. This Kit provides a easy-to-use
easy use development and evaluation
platform for Spartan-3E
3E FPGA designs.
Slide Switch connections with FPGA - INPUT PIN
SW4 T14
SW5 T12
SW6 T9
SW7 T7
SW8 T2
SW9 G12
SW10 H1
SW11 R3
SW12 N11
SW13 N3
SW14 M13
SW15 M7
SW16 M3
SW17 K4
SW18 J12
SW19 J11
OUTPUT PINS
L16 R1
L15 R2
L14 K3
L13 T4
L12 T5
L11 R6
L10 T8
L9 R10
L8 N10
L7 P12
L6 N9
L5 N12
L4 P13
L3 R13
L2 T13
L1 P14
Procedure for simulationandimplementationofXilinxtoolandFPGA
STEP1:
ClickXilinxISE9.1
STEP2:
File->NewprojectandtypetheprojectnameandcheckthetoplevelsourcetypeasHDL
STEP3:Checkthedevicepropertiesandclicknext
STEP4:ClickNewSourceAndSelecttheVerilogModuleandthengivethefilename
STEP5:
Select theInput,Outputportnamesandclickfinish.
STEP6:
Typetheprogramandsaveit
STEP7:CheckthesynthesizeXSTandchecksyntax
STEP8: Select user constraints-> assign package pins, set port numbers and save it then
selectIOBusdelimiterasXSTdefault<>->clickok
STEP9:
Rightclickonthexc3s400figure->program-
>filenamethenclickfinishandFinallycheckthefunctionalityinhardware
EXP NO: 1 Design Entry and Simulation of Combinational Circuits
Date:
AIM:
To writeaVerilogcodeforthe 4bit Ripple carry adderand 4 bit Comparatorand simulateit
usingXilinxproject navigator.
APPARATUS REQUIRED:
PROCEDURE:
1. Start theXilinxISE byusing Start Programfiles XilinxISE project
navigator
2. Click File New Project
3. Enter theProject Name and select the location then click next
4. Select theDevice andothercategoryandclick next twice and finish.
5. Click on the symbolof FPGA device and then right click click on new source.
6. Select theVerilogModule andgivethe filename click next and defineports click next and
finish.
7. Writingthe VerilogCodein VerilogEditor.
8. Run the Check syntax Process window synthesize double click check syntax.If
anyerrorsfound then remove theerrors with proper syntax&coding.
9. Click on the symbolof FPGA device and then right click click on new source.
10. Select theTestBenchWaveformand give thefilename selectentityclick next and finish.
11. Select thedesired parameters forsimulatingyourdesign.In thiscasecombinational
circuitand simulation time click finish.
12. Assign all inputsignal usingjustclick ongraphand save file.
13. From the sourceprocesswindow. ClickBehavioral simulationfrom drop-down menu
14. Select thetest benchfile (.tbw) and click processbutton double clickthe
SimulationBehavioral Model
15. Verify your design inwavewindow byseeingbehavior ofoutputsignal with respect to input
signal
4-Bit Ripple Carry Adder
Block Diagram:
CODING :
moduleripple_carry_adder(a, b, cin, sum, cout);
input [03:0] a;
input [03:0] b;
inputcin;
output [03:0] sum;
outputcout;
wire [2:0]c;
fulladd a1(a[0],b[0],cin, sum[0],c[0]);
fulladd a2(a[1],b[1],c[0],sum[1],c[1]);
fulladd a3(a[2],b[2],c[1],sum[2],c[2]);
fulladd a4(a[3],b[3],c[2],sum[3],cout);
endmodule
modulefulladd(a,b,cin,sum,cout);
inputa,b,cin;
outputsum,cout;
assign sum=(a^b^cin);
assigncout=((a&b)|(b&cin)|(a&cin));
endmodule
RTL SCHEMATIC:
TECHNOLOGY SCHEMATIC:
SIMULATION OUTPUT:
RESULT:
Thus the Verilog code for 4 bit Ripple Carry Adder is simulatedusing Xilinx project navigator.
EXP NO: 2 Place and Route and Post Place & Route Simulation
Date:
AIM:
To synthesis 4- Bit Comparator and then Place& Route and Post Place & Root using Implementation
option available in Xilinx project navigator.
APPARATUS REQUIRED:
Theory:
Back annotation is the translation of a routed or fitted design to a timing simulation netlist.
To define the behavior of the FPGA, a hardware description language (HDL) or a schematicdesign
methods are used. Common HDLs are VHDL and Verilog. Then, using an electronicdesign automation
(EDA) tool, a technology-mapped net list is generated.
The net list can then be fitted to the actual FPGA architecture using a process called placeand-route,
usually performed by the FPGA vendor‟s proprietary place-and-route software.
The user will validate the map, place and route results via timing analysis, simulation, andother
verification methodologies. Once the design and validation process is complete, thebinary file generated
is used to (re)configure the FPGA.
In an attempt to reduce the complexity of designing in HDLs, which have been compared tothe
equivalent of assembly
In a typical design flow, an FPGA application developer will simulate the design at multiplestages
throughout the design process.
Initially the RTL description in VHDL or Verilog is simulated by creating test benches tosimulate the
system and observe results.
Then, after the synthesis engine has mapped the design to a net list, the net list is translated toa gate level
description where simulation is repeated to confirm the synthesis proceededwithout errors.
Finally the design is laid out in the FPGA at which point propagation delays can be added andthe
simulation run again with these values back-annotated onto the net list.
Place & Route, the process of optimization of logic cells for effective utilization of FPGAarea and the
speed of operation, is used to modify and infer the following:
1. Re-assignment of Pins
2. Re-location of Slices
3. Run time minimization
Procedure:
1. Start the Xilinx ISE by using Start Program files Xilinx ISE project navigator
2. Click File New Project
3. Enter the Project Name and select the location then click next
4. Select the Device and other category and click next twice and finish.
5. Click on the symbol of FPGA device and then right click click on new source.
6. Select the Verilog Module and give the file name click next and define ports click next and
finish.
7. Writing the Verilog Code in Verilog Editor.
8. Run the Check syntax Process window synthesize double click check syntax. If
any errors found then remove the errors with proper syntax & coding.
9. Synthesis your design, from the source window select, synthesis/implementation from the
window Now double click the Synthesis -XST
10. After Synthesis you assign the Pin Value for your design so, double click the Assign Package
Pins
11. Enter the Pin value for your input and output signals. if you want see your Pin assignment in
FPGA zoom in Architecture View or Package View
12. Check the Pins in FPGA. Save file as XST Default click ok and close the window
13. Design Implementation begins with the mapping or fitting of a logical design file to a specific
device and is complete when the physical design is successfully routed and a bit stream is
generated. Double Click Implementation Design.
14. After finishing the Implementation, you can view the Implementation report.
15. After implementation you see Design Summary, you get the all details about your design. If you
want edit the place and route double click View/Edit placed design
16. Check where your IOs are placed in FPGA. And zoom to view how Pins are placed in FPGA.
You can see where your pins are placed
17. Just double click View/Edit Routed Design to view interconnection wires and blocks
18. Click the pin to see where its placed in FPGA. And Zoom particular area to see Place and
Routing.
19. If required to change the place of the design, click and trace to another slice. View changed
place and route of the design
20. Double click Back annotated Pin Location. Once back annotation is completed, constraint file is
generated.
4 bit Comparator
Block Diagram:
Truth Table
//declare the Verilog module - The inputs and output signals.
module comparator(
Data_in_A, //input A
Data_in_B, //input B
less, //high when A is less than B
equal, //high when A is equal to B
greater //high when A is greater than B
);
RTL SCHEMATIC:
TECHNOLOGY SCHEMATIC:
AIM:
To design and implement Booth Multiplier and Carry select Adder in FPGA Spartan 3E Trainer
kit using Xilinx project navigator.
APPARATUS REQUIRED:
PROCEDURE:
1. Start the Xilinx ISE by using Start Program files Xilinx ISE project navigator
2. Click File New Project
3. Enter the Project Name and select the location then click next
4. Select the Device and other category and click next twice and finish.
5. Click on the symbol of FPGA device and then right click click on new source.
6. Select the Verilog Module and give the file name click next and define ports click next and
finish.
7. Writing the Verilog Code in Verilog Editor.
8. Run the Check syntax Process window Synthesize double click check syntax. If
any errors found then remove the errors with proper syntax & coding.
9. Synthesis your design, from the source window select, synthesis/implementation from the
window Now double click the Synthesis -XST.
10. After Synthesis, Click on the symbol of FPGA device and Right click and select New Source,
Select Implementation Constraints File and type file name and click next.
11. Type the Net list and click save.
12. Implement the design by double clicking Implement design in the process window.
13. Then double click Generate Programming File, Double click Configure Target Device and click
OK.
14. Double click Create PROM File in the ISE iMPACT window, Select Storage Target Device as
Xilinx Flash PROM and click forward.
15. Add storage Device as xcf01s [2 M] and click forward, Type Output File Name and Location
and click OK.
16. Select the corresponding .bit file and click Open, Click No to Add Another Device and Click
OK.
17. Double click Generate File.
18. Double click Boundary Scan and Right click on the window and select Initialize Chain, Now
Select the corresponding .mcs file and click open.
19. Click OK in the Device Programming Properties window, Download the Program on to the kit
by Right clicking on the device icon and select program.
20. Verify the output in the target device.
BOOTH ALGORITHM:
CODING:
moduleboothmulti(X, Y, Z);
input signed [3:0] X, Y;
output signed [7:0] Z;
reg signed [7:0] Z;
reg [1:0] temp;
integeri;
reg E1;
reg [3:0] Y1;
always @ (X, Y)
begin
Z = 8'd0;
E1 = 1'd0;
for (i = 0; i< 4; i = i + 1)
begin
temp = {X[i], E1};
Y1 = - Y;
case (temp)
2'd2 : Z [7 : 4] = Z [7 : 4] + Y1;
2'd1 : Z [7 : 4] = Z [7 : 4] + Y;
default : begin end
endcase
Z = Z >> 1;
Z[7] = Z[6];
E1 = X[i];
end
if (Y == 4'd8)
begin
Z = - Z;
end
end
endmodule
RTL SCHEMATIC:
TECHNOLOGY SCHEMATIC:
PLACE AND ROUTE:
HARDWARE FUSING:
CARRY SELECT ADDER:
BLOCK DIAGRAM:
CODING:
modulecarry_select_adder
( input [3:0] A,B,
inputcin,
output [3:0] S,
outputcout
);
//for carry 0
fulladder fa00(A[0],B[0],1'b0,temp0[0],carry0[0]);
fulladder fa01(A[1],B[1],carry0[0],temp0[1],carry0[1]);
fulladder fa02(A[2],B[2],carry0[1],temp0[2],carry0[2]);
fulladder fa03(A[3],B[3],carry0[2],temp0[3],carry0[3]);
//for carry 1
fulladder fa10(A[0],B[0],1'b1,temp1[0],carry1[0]);
fulladder fa11(A[1],B[1],carry1[0],temp1[1],carry1[1]);
fulladder fa12(A[2],B[2],carry1[1],temp1[2],carry1[2]);
fulladder fa13(A[3],B[3],carry1[2],temp1[3],carry1[3]);
endmodule
modulefulladder
( inputa,b,cin,
outputsum,carry
);
endmodule
module multiplexer2
( input i0,i1,sel,
outputregbitout
);
always@(i0,i1,sel)
begin
if(sel == 0)
bitout = i0;
else
bitout = i1;
end
endmodule
RTL SCHEMATIC:
TECHNOLOGY SCHEMATIC:
PLACE AND ROUTE:
HARDWARE FUSING:
RESULT:
Thus, the Hardware fusing and testing of Booth Multiplier and Carry Select Adder were
implemented in Spartan 3E FPGA trainer kit using Xilinx project navigator.
EXP NO: 4 Design and FPGA Implementation of Sequential Circuits
Date:
AIM:
To design and implement Counter in FPGA Spartan 3E Trainer kit using Xilinx project
navigator.
APPARATUS REQUIRED:
PROCEDURE:
1. Start the Xilinx ISE by using Start Program files Xilinx ISE project navigator
2. Click File New Project
3. Enter the Project Name and select the location then click next
4. Select the Device and other category and click next twice and finish.
5. Click on the symbol of FPGA device and then right click click on new source.
6. Select the Verilog Module and give the file name click next and define ports click next and
finish.
7. Writing the Verilog Code in Verilog Editor.
8. Run the Check syntax Process window Synthesize double click check syntax. If
any errors found then remove the errors with proper syntax & coding.
9. Synthesis your design, from the source window select, synthesis/implementation from the
window Now double click the Synthesis -XST.
10. After Synthesis, Click on the symbol of FPGA device and Right click and select New Source,
Select Implementation Constraints File and type file name and click next.
11. Type the Net list and click save.
12. Implement the design by double clicking Implement design in the process window.
13. Then double click Generate Programming File, Double click Configure Target Device and click
OK.
14. Double click Create PROM File in the ISE iMPACT window, Select Storage Target Device as
Xilinx Flash PROM and click forward.
15. Add storage Device as xcf01s [2 M] and click forward, Type Output File Name and Location
and click OK.
16. Select the corresponding .bit file and click Open, Click No to Add Another Device and Click
OK.
17. Double click Generate File.
18. Double click Boundary Scan and Right click on the window and select Initialize Chain, Now
Select the corresponding .mcs file and click open.
19. Click OK in the Device Programming Properties window, Download the Program on to the kit
by Right clicking on the device icon and select program.
20. Verify the output in the target device.
CODING:
RTL SCHEMATIC:
TECHNOLOGY SCHEMATIC:
RESULT:
Thus, the Hardware fusing and testing of 4-Bit counter was implemented in Spartan 3E FPGA
trainer kit using Xilinx project navigator.
EXP NO: 5 Analysis of Area, Power and Delay for Sequential Circuits
Date:
AIM:
To analyze area, power and delay for Counter and PRBS generator in FPGA Spartan 3E Trainer
kit using Xilinx project navigator.
APPARATUS REQUIRED:
PROCEDURE:
1. Start the Xilinx ISE by using Start Program files Xilinx ISE project navigator
2. Click File New Project
3. Enter the Project Name and select the location then click next
4. Select the Device and other category and click next twice and finish.
5. Click on the symbol of FPGA device and then right click click on new source.
6. Select the Verilog Module and give the file name click next and define ports click next and
finish.
7. Writing the Verilog Code in Verilog Editor.
8. Run the Check syntax Process window Synthesize double click check syntax. If
any errors found then remove the errors with proper syntax & coding.
9. Synthesis your design, from the source window select, synthesis/implementation from the
window Now double click the Synthesis -XST.
10. After Synthesis, Click on the synthesis report to generate the area and delay summary.
11. Type the Net list and click save.
12. Implement the design by double clicking Implement design in the process window.
13. Then double click Generate Programming File, Double click Configure Target Device and click
OK.
14. Double click Create PROM File in the ISE iMPACT window, Select Storage Target Device as
Xilinx Flash PROM and click forward.
15. Add storage Device as xcf01s [2 M] and click forward, Type Output File Name and Location
and click OK.
16. Select the corresponding .bit file and click Open, Click No to Add another Device and Click
OK.
17. Double click Generate File.
18. Double click Boundary Scan and Right click on the window and select Initialize Chain, Now
Select the corresponding .mcs file and click open.
19. Click OK in the Device Programming Properties window, Download the Program on to the kit
by Right clicking on the device icon and select program.
20. Verify the output in the target device.
RIPPLE COUNTER:
CODING:
ANALYZE REPORT:
Area analysis:
Power analysis:
Vccint 1.20V: 26 31
Vccaux 2.50V: 18 45
Vcco25 2.50V: 2 5
Clocks: 0 0
Inputs: 0 0
Logic: 0 0
Outputs:
Vcco25 0 0
Signals: 0 0
Thermal summary:
Estimated junction temperature: 28C
Ambient temp: 25C
Case temp: 27C
Theta J-A: 31C/W
Delay Analysis:
Timing Summary:
---------------
Speed Grade: -4
Timing Detail:
--------------
All values displayed in nanoseconds (ns)
=========================================================================
Timing constraint: Default period analysis for Clock 'f2/Q'
Clock period: 2.470ns (frequency: 404.858MHz)
Total number of paths / destination ports: 1 / 1
-------------------------------------------------------------------------
Delay: 2.470ns (Levels of Logic = 1)
Source: f3/Q (FF)
Destination: f3/Q (FF)
Source Clock: f2/Q falling
Destination Clock: f2/Q falling
=========================================================================
=========================================================================
Timing constraint: Default OFFSET OUT AFTER for Clock 'f0/Q'
Total number of paths / destination ports: 1 / 1
-------------------------------------------------------------------------
Offset: 4.394ns (Levels of Logic = 1)
Source: f1/Q (FF)
Destination: A1 (PAD)
Source Clock: f0/Q falling
=========================================================================
Timing constraint: Default OFFSET OUT AFTER for Clock 'f1/Q'
Total number of paths / destination ports: 1 / 1
-------------------------------------------------------------------------
Offset: 4.394ns (Levels of Logic = 1)
Source: f2/Q (FF)
Destination: A2 (PAD)
Source Clock: f1/Q falling
=========================================================================
=========================================================================
CPU : 3.91 / 4.03 s | Elapsed : 4.00 / 4.00 s
PRBS GENERATOR:
CODING:
RTL SCEMATIC:
TECHNOLOGY SCHEMATIC:
REPORT:
Area Analysis:
Power Analysis:
Vccint 1.20V: 26 31
Vccaux 2.50V: 18 45
Vcco25 2.50V: 2 5
Inputs: 0 0
Outputs:
Vcco25 0 0
Signals: 0 0
Thermal summary:
Estimated junction temperature: 28C
Ambient temp: 25C
Case temp: 27C
Theta JJ-A: 31C/W
Delay Analysis:
RESULT:
Thus, area, power and delay for Counter and PRBS generator was analyzed in FPGA
Spartan 3E Trainer kit using Xilinx project navigator.
EXP NO: 6 Invoke PLL to generate Real Time Clock
Date:
AIM:
To invoke the FPGA Spartan 3E PLL to generate Real time Clock kit using Xilinx project
navigator.
APPARATUS REQUIRED:
PROCEDURE:
1. Start the Xilinx ISE by using Start Program files Xilinx ISE project navigator
2. Click File New Project
3. Enter the Project Name and select the location then click next
4. Select the Device and other category and click next twice and finish.
5. Click on the symbol of FPGA device and then right click click on new source.
6. Select the Verilog Module and give the file name click next and define ports click next and
finish.
7. Writing the Verilog Code in Verilog Editor.
8. Run the Check syntax Process window Synthesize double click check syntax. If
any errors found then remove the errors with proper syntax & coding.
9. Synthesis your design, from the source window select, synthesis/implementation from the
window Now double click the Synthesis -XST.
10. After Synthesis, Click on the symbol of FPGA device and Right click and select New Source,
Select Implementation Constraints File and type file name and click next.
11. Type the Net list and click save.
12. Implement the design by double clicking Implement design in the process window.
13. Then double click Generate Programming File, Double click Configure Target Device and click
OK.
14. Double click Create PROM File in the ISE iMPACT window, Select Storage Target Device as
Xilinx Flash PROM and click forward.
15. Add storage Device as xcf01s [2 M] and click forward, Type Output File Name and Location
and click OK.
16. Select the corresponding .bit file and click Open, Click No to Add Another Device and Click
OK.
17. Double click Generate File.
18. Double click Boundary Scan and Right click on the window and select Initialize Chain, Now
Select the corresponding .mcs file and click open.
19. Click OK in the Device Programming Properties window, Download the Program on to the kit
by Right clicking on the device icon and select program.
20. Verify the output in the target device.
Segment Display
FPGA Connections to Seven-Segment
SEGMENT FPGA PIN
A P8
B P10
C P9
D P6
E P4
F P5
G P3
DP P11
CLOCK SOURCE
Spartan3E FPGA works in different Clock frequencies
For any other CLK frequency in between 1MHz to 100MHz use the following formula.
Where,
Reference Divider Word (RDW) = 1 to 127 (0 is not permitted)
VCO Divider Word (VDW) = 4 to 511 (0, 1, 2, 3 are not permitted)
Output Divider (OD) = values below
CODING:
sig2[24:23] = 2'b01;
end
2'b11 : begin
if (sig2[22:19] == 4'b1001)
sig2 = 0;
end
default : begin
end
endcase
end
Display Settings
sig3 = sig3 + 1;
case (sig3[17:15])
3'b000 : begin
sl = 6'b111110;
case (digit1)
4'b0000 : ssdigit1 = 8'b00111111;
4'b0001 : ssdigit1 = 8'b00000110;
4'b0010 : ssdigit1 = 8'b01011011;
default : ssdigit1 = 8'b00000000;
endcase
atoh = ssdigit1;
end
3'b001 : begin
sl = 6'b111101;
case (digit2)
4'b0000 : ssdigit2 = 8'b00111111;
4'b0001 : ssdigit2 = 8'b00000110;
4'b0010 : ssdigit2 = 8'b01011011;
4'b0011 : ssdigit2 = 8'b01001111;
4'b0100 : ssdigit2 = 8'b01100110;
4'b0101 : ssdigit2 = 8'b01101101;
4'b0110 : ssdigit2 = 8'b01111101;
4'b0111 : ssdigit2 = 8'b00000111;
4'b1000 : ssdigit2 = 8'b01111111;
4'b1001 : ssdigit2 = 8'b01101111;
default : ssdigit2 = 8'b00000000;
endcase
atoh = ssdigit2;
end
3'b011 : begin
sl = 6'b111011;
case (digit3)
4'b0000 : ssdigit3 = 8'b00111111;
4'b0001 : ssdigit3 = 8'b00000110;
4'b0010 : ssdigit3 = 8'b01011011;
4'b0011 : ssdigit3 = 8'b01001111;
4'b0100 : ssdigit3 = 8'b01100110;
4'b0101 : ssdigit3 = 8'b01101101;
default : ssdigit3 = 8'b00000000
endcase
atoh = ssdigit3;
end
3'b100 : begin
sl = 6'b110111;
case (digit4)
4'b0000 : ssdigit4 = 8'b00111111;
4'b0001 : ssdigit4 = 8'b00000110;
4'b0010 : ssdigit4 = 8'b01011011;
4'b0011 : ssdigit4 = 8'b01001111;
4'b0100 : ssdigit4 = 8'b01100110;
4'b0101 : ssdigit4 = 8'b01101101;
4'b0110 : ssdigit4 = 8'b01111101;
4'b0111 : ssdigit4 = 8'b00000111;
4'b1000 : ssdigit4 = 8'b01111111;
4'b1001 : ssdigit4 = 8'b01101111;
default : ssdigit4 = 8'b00000000;
endcase
atoh = ssdigit4;
end
3'b110 : begin
sl = 6'b101111;
case (digit5)
4'b0000 : ssdigit5 = 8'b00111111;
4'b0001 : ssdigit5 = 8'b00000110;
4'b0010 : ssdigit5 = 8'b01011011;
4'b0011 : ssdigit5 = 8'b01001111;
4'b0100 : ssdigit5 = 8'b01100110;
4'b0101 : ssdigit5 = 8'b01101101;
default : ssdigit5 = 8'b00000000;
endcase
atoh = ssdigit5;
end
3'b111 : begin
sl = 6'b011111;
case (digit6)
4'b0000 : ssdigit6 = 8'b00111111;
4'b0001 : ssdigit6 = 8'b00000110;
4'b0010 : ssdigit6 = 8'b01011011;
4'b0011 : ssdigit6 = 8'b01001111;
4'b0100 : ssdigit6 = 8'b01100110;
4'b0101 : ssdigit6 = 8'b01101101;
4'b0110 : ssdigit6 = 8'b01111101;
4'b0111 : ssdigit6 = 8'b00000111;
4'b1000 : ssdigit6 = 8'b01111111;
4'b1001 : ssdigit6 = 8'b01101111;
default : ssdigit6 = 8'b00000000;
endcase
atoh = ssdigit6;
end
endcase
end
end
endmodule
RTL SCHEMATIC
TECHNOLOGY SCHEMATIC
HARDWARE FUSING
RESULT:
Thus, the FPGA Spartan 3E PLL was invoked to generate Real time Clock in kit using Xilinx
project navigator.
LT SPICE
Procedure for simulationandimplementationof
simulationandimplementationofEDA tool--LtSPICE
TRANSISTOR MODELS
* Long channel models from CMOS Circuit Design, Layout, and Simulation,
* Level=3 models VDD=5V, see CMOSedu.com
*
* Short channel models from CMOS Circuit Design, Layout, and Simulation,
2. Towards the bottom of the window, Electric Messages Window will be found where
different messages can be found throughout any design.
3. The background color of the window can change as follows
Go to Explorer (beside the Components view); you will find LIBRARIES name as no
name
File -> Preferences -> Technology -> Scale and set mocmos scale to 300 nm
9. Creating a new cell
Go to cell –> New Cell (or you can press ctrl + N). You will find a window like following.
Enter the name of the cell {----------------- } and click the view as {schematic}.
Press ok.
Now under the library design_1.jelib you can find a schematic cell named as ---------
{sch} with a red indicator as follows.
10. Now Press the Components. You will find the schematic components unlike the layout
components in the startup window.
11. Now we are finished
ed with the setup and ready to fabricate a chip in the C5 process via
MOSIS
12. Checking of DRC (Design Rule Check)
Once DRC is checked, you can see result in the message window as follows:
13. Layout vs. Schematic (LVS) in Electric is checked using Network Consistency Checking
(NCC)
Go to File –>
> Preferences –> Categories –> Tools –> NCC –>
> Check transistor sizes
Once again execute the NCC, now you will find the following message.
14. Checking ERC (Well Check)
One of the electricalal rule checks (ERCs) is to verify that the p-well
well (in this case p-
substrate) is always connected to ground.
For Well Check execute Tools –> ERC –> Check Wells or press W (as we have
bounded this key to Well Check).
Now we would simulate the resistive divider circuit which has been built, and would
observe the output voltage w.r.t. a particular input voltage.
For this we need to write a SPICE code which would give the description of the input
voltage and would indicate the type of simulation we want to perform.
Go to the Components menu. Click on the arrowhead in the Misc box to add SPICE
code to the schematic as seen in the figure.
Place the SPICE code in the schematic and use Ctrl+I to edit its properties.
Ensure, in the SPICE code property box, that the Multi-line Text box is checked.
Add the code shown in the figure for specifying a SPICE transient analysis and
an input voltage source. The code indicates an input voltage of 1 V DC is applied to the
circuit. The analalysis would be a transient one for 1 second.
Open the layout view of the Resistive_divider cell and then copy/paste (Ctrl+C/Ctrl+V)
an additional resistor.
By pressing > we see that there is too little space between the N-wells.
Move the Nodes apart until the layout passes the DRCs. Of-course the error will not
appear if you have initially placed both the resistors apart enough, which would satisfy
the MOSIS rule for space between N-wells.
Run DRC to check the design is free of error or not.
This layout cell should match the schematic cell. Verify this by running the NCC (aka
LVS check).
The following figure shows the Electric Messages for DRC of layout and NCC of both
layout and schematic (LVS)
(LVS).
Run a DRC, NCC, and a Well Check to ensure that there aren’t any errors.
This cell can be simulated following the same steps used for simula
simulating
ting the schematic
view above.
Simulate this cell using LTspice now.
The following figure shows the simulation output from LTspice for the Resistive_divider
layout.
* BSIM3 models for AMI Semiconductor's C5 process
*
* Don't forget the .options scale=300nm if using drawn lengths
* and the MOSIS SUBM design rules
*
* 2<Ldrawn<500 10<Wdrawn<10000 Vdd=5V
* Note minimum L is 0.6 um while minimum W is 3 um
* Change to level=49 when using HSPICE or SmartSpice
AIM:
To design, analyze and simulate the ring oscillator using LT-SPICE.
APPARATUS REQUIRED:
PROCEDURE:
SIMULATION OUTPUT:
Calculation:
1
=
2
RESULT:
AIM:
To design, analyze and simulate the Differential Amplifier using LT-SPICE.
APPARATUS REQUIRED:
PROCEDURE:
Symbol:
Circuit:
AC ANALYSIS:
SIMULATION OUTPUT:
DC ANALYSIS
SIMULATION OUTPUT:
Transient Analysis:
SIMULATION OUTPUT:
Differential Mode Gain:
Common Mode Gain:
Calculation:
= 20
=
1− 2
= !! !
=
( 1 + 2)/2
RESULT:
Thus the Differential Amplifier is simulated and CMRR is determined using LT-SPICE.
EXP NO: 9 CMOS Inverter
Date:
AIM:
To design a CMOS inverter using the Schematic entry tool - Electric and verify its
functioning.
APPARATUS REQUIRED:
PROCEDURE:
Symbol:
SIMULATION OUTPUT:
RESULT
Thus the design & simulation of a CMOS inverter has been carried out using schematic of
Electric EDA Tools.
EXP NO: 10 Layout CMOS Inverter
Date:
AIM:
To draw the layout of CMOS Inverter using Electric EDA tool and extract the SPICE code.
APPARATUS REQUIRED:
PROCEDURE:
3D VIEW:
SPICE Code:
SIMULATION OUTPUT:
RESULT:
Thus the layout of CMOS Inverter was verified through Electric EDA tool
.
EXP NO: 11 CMOS Inverter – Place and Route
Date:
AIM:
To design placement and routing, and post placement androuting parameters and observe logical
effort for CMOS Inverter using Electric EDA tools.
APPARATUS REQUIRED:
PROCEDURE:
RC MODEL:
LOGIC EFFORT:
RESULT:
Thus the post placement androuting parameters and logical effort of CMOS Inverter are
observed using Electric EDA tools.
EXP NO: 12 Layout CMOS NAND Gate
Date:
AIM:
To draw the layout of CMOS NAND using Electric EDA tool and extract the SPICE code.
APPARATUS REQUIRED:
PROCEDURE:
SYMBOL:
LAYOUT:
3D VIEW:
Simulation Output:
RESULT:
Thus the layout of CMOS NAND was verified through Electric EDA tool
EXP NO: 13 Static Timing Analysis
Date:
AIM:
To study the given circuit and perform static timing analysisusing Synopsys - PrimeTime STA
tools.
APPARATUS REQUIRED:
PROCEDURE:
In spite of the above advantages, command mode sometimes is not as good as GUImode in terms
of debugging the schematic problem.
setsearch_path "./home/raid2_2/course/cvsd/CBDK_IC_Contest/CIC/SynopsysDC/db"
1. Type these lines to read in CIC .18 library and your gate level netlist.
read_verilog ./Counter_syn.v
Reads leaf cell and net timing and RC information from a file in SPEF Format anduses that
information to annotate the current design.
read_parasiticscounter.spef
Note: The file can be get during synthesis with “write_parasitics” comment.
4. Report
report_design
report_reference
Timing analysis and report possible problems:
This step checks your scan specification for consistency. Please type the followingcommands to
set the input/output delay:
set_input_delay 1.5 [get_portsinputA] -clock $design_clock
set_input_delay 1.5 [get_portsinputB] -clock $design_clock
set_input_delay 1.5 [get_ports instruction] -clock $design_clock
set_input_delay 1.5 [get_ports reset] -clock $design_clock
set_output_delay 1.5 [get_portsalu_out] -clock $design_clock
And then check the timing:
check_timing
settrue_delay_prove_true_backtrack_limit 20000
report_timing -true
report_bottleneck
RESULT:
Thus the static timing analysis of the given circuit has been studied.
EXP NO: 14 DfT – Scan Chain Insertion
Date:
AIM:
To study the given circuit and perform DfT-Scan chain insertion using Synopsys -
TetraMaxtools.
APPARATUS REQUIRED:
PROCEDURE:
Invoke DftCompiler
dc_shell(command mode)
dv&(GUI mode)
In spite of the above advantages, command mode sometimes is not asgood as GUI mode in terms
of debugging the schematic problem.
NOTE: maybe occurrence of some error message like “Error: current design notdefined.” just
ignore it for now.
STEP 1: Read Input Files
1. Please check there is no error message when starting the “dc_shell”. If there are errors in
the windows, please check the .synopsys_dc.setup. Type either one of these lines to read
your gate level netlist (The circuit after synthesis).
read_verilogfilename.v
read_filefilename.v -format Verilog
2. Set the working design to you top design. In this case, set ALU as the working design.
current_design ALU
5. To obtain a timing/area/power report of your original design, type (where ALU is your
top design)
report_area>filename.area_rpt
report_timing>filename.timing_rpt
report_power>filename.power_rpt
RESULT: