VLSI Lab Manual 2024 - 25 - Tentative
VLSI Lab Manual 2024 - 25 - Tentative
CONTENTS
Syllabus .............................................................................................................................................................. v
CONTENTS ................................................................................................................................................... viii
Introduction to Cadence ...................................................................................................................................... 9
Using the UNIX Operating System ................................................................................................................... 10
General Procedure for Analog Design ............................................................................................................... 11
Design 1: INVERTER ...................................................................................................................................... 21
Design 2: NOR GATE ...................................................................................................................................... 27
Design 3 - Construct the schematic using Boolean Expression using CMOS-Logic .......................................... 32
(Y = AB+CD+E)’ ............................................................................................................................................. 32
Design 4 COMMON SOURCE AMPLIFIER WITH PMOS CURRENT MIRROR LOAD .............................. 36
Design 5 – TWO STAGE OPERATIONAL AMPLIFIER ................................................................................ 42
General Procedure for Digital Simulation ......................................................................................................... 48
General Procedure for Synthesis ....................................................................................................................... 48
Experiment – 6 4- bit Adder .......................................................................................................................... 51
Experiment – 7 4-Bit Booth Multiplier ....................................................................................................... 55
Experiment – 8 32-Bit ALU ........................................................................................................................... 60
Experiment – 9 Latch and Flip-Flop ........................................................................................................... 65
Experiment – 10 Four bit Synchronous MOD-N counter with Asynchronous reset ...................... 73
Procedure for Physical Design ......................................................................................................... 77
Introduction to Cadence
Cadence Design Systems provides tools for different design styles. In this tutorial you will learn
to use three Cadence products: Composer Symbol, Composer Schematic and the Virtuoso Layout
Editor. This tutorial will help you to get started with Cadence and successfully create symbol,
schematic and layout views of an inverter. You will also learn how to simulate your design using
Hspice. The final check will be seeing if your layout matches your schematic. Figure 1.1 shows
the normal design sequence from design specifications to final layout simulation. This tutorial
will take you through all the steps (except the last). In addition, there are chapters on Verilog,
VHDL, bipolar current mode logic (CML), standard cells, and auto placement and routing.
create the masks which are used in the integrated circuit fabrication process. Finally, circuit
simulation is handled through an interface called "Analog Artist." This interface can be used to
invoke various simulators including HSPICE, Spectre, and Verilog. We will be using the
SpectreS simulator in this course.
ls [–la] Lists files in the current directory. ”l” lists with properties and “a” also
lists hidden files (ones beginning with a “.”).
cd XXXX Changes the current directory to XXXX.
cd .. Changes the current directory back one level.
cp XXXX YYYY Copies the file XXXX to YYYY.
mv XXXX YYYY Move file XXXX to YYYY. Also used for rename
rm XXXX Deletes the file XXXX
mkdir XXXX Creates the directory XXXX.
lp -dXXXX YYYY Prints the textfile or postscript file YYYY to the printer named
XXXX, where XXXX can be either “ipszac” or “hpszac”.
gedit XXXX& Starts the gedit text editor program and loads file XXXX.
top Check available processes and memory usage.
quota –v Check for disk space available
technology.
The virtuoso or Command Interpreter Window (CIW) appears at the bottom of the screen.
d. In the “Attach Design Library to Technology File” form, select gpdk180 from the
cyclic field and click OK.
e. After creating a new library you can verify it from the library manager.
f. If you right click on the “USN” and select properties, you will find that gpdk180 library
is attached as techlib to “USN”.
c. Do not edit the Library path file and the one above might be different from the path
shown in your form.
d. Click OK when done the above settings. A blank schematic window for the Inverter
design appears.
6. Add components for the design in concern from libraries available. Edit component parameters
to those specified. Complete the wiring and verify the design connection.
7. Click the Check and Save icon in the schematic editor window.
8. Observe the CIW output area for any errors. If any errors are found make suitable corrections.
9. Create Symbol for the schematic created and saved. In the created designs schematic window
execute Create — Cellview— From Cellview.
a. The Cellview From Cellview form appears. With the Edit Options function active, you
can control the appearance of the symbol to generate.
b. Verify that the From View Name field is set to schematic, and the
c. To View Name field is set to symbol, with the Tool/Data Type set as
SchematicSymbol.
d. Click OK in the Cellview From Cellview form.The Symbol Generation Form appears.
e. Modify the Pin Specifications as follows:
h. Edit the symbol if required. Save the symbol. After creating symbol, click on the save
icon in the symbol editor window to save the symbol. In the symbol editor, execute File
— Close to close the symbol view window.
10. Create Test Bench. .
a. In the CIW or Library Manager, execute File— New— Cellview.
b. Set up the New File form as follows:
c. Click OK when done. A blank schematic window for the new design appears.
d. Using the component list and Properties for the simulation given, build the test bench
schematic.
11. Perform Simulation with Spectrre. Start the Simulation Environment to run a simulation.
a. In the schematic window, execute
Launch – ADE L
The Virtuoso Analog Design Environment (ADE) simulation window appears.
b. Choose a Simulator.Set the environment to use the Spectre® tool, a high speed, highly
accurate analog simulator. Use this simulator with the Inverter_Test design, which is
made-up of analog components.
c. In the simulation window (ADE), execute
Setup— Simulator/Directory/Host.
d. In the Choosing Simulator form, set the Simulator field to spectre (Not spectreS) and
click OK.
e. The Model Library file contains the model files that describe the nmos and pmos devices
during simulation. Set the Model Libraries.
In the simulation window (ADE), execute
Setup - Model Libraries.
The Model Library Setup form appears. Click the browse button to add
gpdk.scs if not added by default as shown in the Model Library Setup form.
Remember to select the section type as stat in front of the gpdk.scs file.
Your Model Library Setup window should now looks like the below figure.
f. To complete the Model Library Setup, move the cursor and click OK.
The Model Library Setup allows you to include multiple model files.It also allows you to
use the Edit button to view the model file.
g. Choose the Analyses required for the simulation. In the Simulation window (ADE), click
m. Run the Simulation. Execute Simulation – Netlist and Run in the simulation window to
start the simulation or the icon
12. Create Layout View of the design. From schematic window menu execute Launch – Layout
XL. A Startup Option form appears.
a. Select Create New option. This gives a New Cell View Form
b. Check the Cellname, Viewname (layout). Click OK from the New Cellview form. LSW
and a blank layout window appear along with schematic window.
c. Add components to layout. Execute Connectivity – Generate – All from Source or
click the icon
in the layout editor window, Generate Layout form appears. Click OK which imports
the schematic components in to the Layout window automatically.
d. Re arrange the components within PR-Boundary.
e. Select the design. Activate the connectivity view under
Connectivity-Nets-Show/Hide all incomplete nets
f. Make connections.to clear all incomplete nets.
g. Save the design.
13. Check the Layout using DRC. Execute
Assura-Run DRC
The DRC form appears. The Library and Cellname are taken from the current design window,
but rule file may be missing. Select the Technology as gpdk180. This automatically loads the
rule file.
14. A Progress form will appears. You can click on the watch log file to see the log file.
When DRC finishes, a dialog box appears asking you if you want to view your DRC results, and
then click Yes to view the results of this run.
15. If there any DRC error exists in the design View Layer Window (VLW) and Error Layer
Window (ELW) appears. Also the errors highlight in the design itself.
Click View – Summary in the ELW to find the details of errors.
16. If there are no errors in the layout then a dialog box appears with No DRC errors found written
in it, click on close to terminate the DRC run.
17. LVS will perform the check to compare the schematic netlist and the layout netlist. To Run LVS
select Assura – Run LVS from the layout window.
The Assura Run LVS form appears. It will automatically load both the schematic and layout
view of the cell.
18. Change the following in the form and click OK
19. The LVS begins and a Progress form appears. If the schematic and layout matches completely,
you will get the form displaying Schematic and Layout Match.
20. If the schematic and layout do not matches, a form informs that the LVS completed successfully
and asks if you want to see the results of this run.
Click Yes in the form. LVS debug form appears, and you are directed into LVS debug
environment.
21. In the LVS debug form you can find the details of mismatches and you need to correct all those
mismatches and Re – run the LVS till you will be able to match the schematic with layout.
22. Assura RCX will extract the RC values from the layout and perform analog circuit simulation on
the designs extracted with RCX.
Before using RCX to extract parasitic devices for simulation, the layout should match with
schematic completely to ensure that all parasites will be backannoted to the correct schematic
nets.
23. To Run RCX , from the layout window execute Assura – Run RCX.
24. Change the following in the Assura parasitic extraction form. Select output type under Setup tab
of the form
25. In the Extraction tab of the form, choose Extraction type, Cap Coupling Mode and specify the
Reference node for extraction.
26. In the Filtering tab of the form, Enter Power Nets as vdd!, vss! and Enter Ground Nets as
gnd!
27. Click OK in the Assura parasitic extraction form when done. The RCX progress form appears, in
the progress form click Watch log file to see the output log file.
28. When RCX completes, a dialog box appears, informs you that Assura RCX run Completed
successfully.
ATME College of Engineering, Mysuru Page 19
VLSI LAB MANUAL BECL606
29. You can open the av_extracted view from the library manager and view the parasitic.
Design 1: INVERTER
Objective : To implement an inverter schematic of CMOS inverter with load capacitance of
0.1pF and set the widths of inverter with Wn = Wp, Wn = 2Wp, Wn = Wp/2 and length at
selected technology. Carry out the following:
a. Set the input signal to a pulse with rise time, fall time of 1ns and pulse width of 10ns and
time period of 20ns and plot the input voltage and output voltage of designed inverter?
b. From the simulation results compute tpHL, tpLH and td for all three geometrical settings
of width?
c. Tabulate the results of delay and find the best geometry for minimum delay for CMOS
inverter?
d) Draw layout of inverter with Wp/Wn = 40/20, use optimum layout methods. Verify for DRC
and LVS, extract parasitic and perform post layout simulations, compare the results with pre-
layout simulations. Record the observations.
Design
vout Output
Table 1.5 Values of tpLH, tpHL and tPD for different geometries
Library Cell
Sl.No. Properties/Comments
name name
nMOS W=20u, L=180n
1 gpdk180
pMOS W=40u, L=180n
Outcome Student will be able to create the schematic, verify schematic functionality and
device regions of operation by simulation and build the layout for the same in Cadence
Virtuoso.
Schematic of 2-input CMOS NOR gate having similar delay as that of CMOS inverter
computed in experiment
1. Verify the functionality of NOR gate and also find out the delay td for all four possible
combinations of input vectors. Table the results. Increases the drive strength to 2X and 4X
and tabulate the results.
2.b) Draw layout of NOR with Wp/Wn = 40/20, use optimum layout methods. Verify for
DRC and LVS, extract parasitic and perform post layout simulations, compare the results
with pre-layout simulations. Record the observations.
Design
Width and Length of NMOS and PMOS Transistors for CMOS NOR
Width and Length of NMOS and PMOS Transistors for CMOS NOR Gate with Drive Strength “2”
Width and Length of NMOS and PMOS Transistors for CMOS NOR Gate with Drive Strength “4”
V0:
V2:
[NOTE: Analog Simulation Specs for simulation with Spectre – same as inverter]
𝝎𝒑 𝟒𝟎
Device parameters for 2 – input CMOS NOR Gate with =
𝝎𝒏 𝟐𝟎
Library Name Cell Name Comments / Properties
gpdk180 nMOS W = 20u; L = 180n
gpdk180 pMOS W = 40u; L = 180n
𝝎𝒑 𝟒𝟎
Delay Elements for 2 – input CMOS NOR Gate with =
𝝎𝒏 𝟐𝟎
MOSFET Length Width tpLH tpHL tpd
pMOS 180n 40u
3.64E-11 1.55E-10 9.57E-11
nMOS 180n 20u
Sample Questions
1. What is slack?
Slack' is the amount of time you have that is measured from when an event 'actually
happens' and when it 'must happen'.. The term 'actually happens' can also be taken as
being a predicted time for when the event will 'actually happen'. When something 'must
happen' can also be called a 'deadline' so another definition of slack would be the time
from when something 'actually happens' (call this Tact) until the deadline (call this
Tdead). Slack = Tdead -Tact. Negative slack implies that the 'actually happen' time is
later than the 'deadline' time..in other words it's too late and a timing violation.you have a
timing problem that needs some attention.
2. What is glitch? What causes it (explain with waveform)? How to overcome it?
The following figure shows a synchronous alternative to the gated clock using a data
path. The flip-flop is clocked at every clock cycle and the data path is controlled by an
enable. When the enable is Low, the multiplexer feeds the output of the register back on
itself. When the enable is High, new data is fed to the flip-flop and the register changes its
state
Outcome Student will be able to create the schematic, verify schematic functionality and
device regions of operation by simulation and build the layout for the same in Cadence
Virtuoso.
Verify the functionality of the expression find out the delay td for some combination of input
vectors.
Design
FUNCTIONAL SIMULATION:
The pull up and pull down network consist of combination of transistor, where two or more
transistors in series are ON only if all of the series transistors are ON. Two or more transistors in
parallel are ON if any of the parallel transistors are ON. This is illustrated in Figure 2 for nMOS
and pMOS transistor pairs. By using combinations of these constructions, CMOS combinational
gates can be constructed. In general, when we join a pull-up network to a pull-down network to
form a logic gate as shown in Figure 1, they both will attempt to exert a logic level at the output.
When both pull-up and pull-down are OFF, the high impedance or floating Z output state results.
This is of importance in multiplexers, memory elements, and tristate bus drivers. The crowbarred
(or contention) X level exists when both pull-up and pull-down are simultaneously turned ON.
Contention between the two networks results in an indeterminate output level and dissipates
static power. It is usually an unwanted condition.
Fig 3.3 Test Bench Schematic for Boolean Expression using CMOS-Logic
a) Capture schematic of Common Source Amplifier with PMOS Current Mirror Load and find its
transient response and AC response? Measures the Unity Gain Bandwidth (UGB), amplification
factor by varying transistor geometries, study the impact of variation in width to UGB.
b) Draw layout of common source amplifier, use optimum layout methods. Verify for DRC and
LVS, extract parasitic and perform post layout simulations, compare the results with pre-layout
simulations. Record the observations.
Design
vout Output
Sample Questions
1. Why do we gradually increase the size of inverters in buffer design? Why not give
the output of a circuit to one large inverter?
Because it can not drive the output load straight away, so we gradually increase the size
to get an optimized performance.
2. What is Latch Up? Explain Latch Up with cross section of a CMOS Inverter. How
do you avoid Latch Up?
Latch-up is a condition in which the parasitic components give rise to the Establishment
of low resistance conducting path between VDD and VSS with Disastrous results.
3. Give the expression for CMOS switching power dissipation?
CV2
4. What is Body Effect?
In general multiple MOS devices are made on a common substrate. As a result, the
substrate voltage of all devices is normally equal. However while connecting the devices
serially this may result in an increase in source-to-substrate voltage as we proceed
vertically along the series chain (Vsb1=0, Vsb2 0).Which results Vth2>Vth1.
Outcome Student will be able to create the schematic, verify schematic functionality and
device regions of operation by simulation and build the layout for the same in Cadence
Virtuoso.
Design
Idc,V1,V2 Input
Vout Output
Frequency= 1K
1) Why do we gradually increase the size of inverters in buffer design? Why not give
the output of a circuit to one large inverter?
Because it can not drive the output load straight away, so we gradually increase the size
to get an optimized performance.
2) What is Latch Up? Explain Latch Up with cross section of a CMOS Inverter. How
do you avoid Latch Up?
Latch-up is a condition in which the parasitic components give rise to the Establishment
of low resistance conducting path between VDD and VSS with Disastrous results.
3) Give the expression for CMOS switching power dissipation?
CV2
4) What is Body Effect?
In general multiple MOS devices are made on a common substrate. As a result, the
substrate voltage of all devices is normally equal. However while connecting the devices
serially this may result in an increase in source-to-substrate voltage as we proceed
vertically along the series chain (Vsb1=0, Vsb2 0).Which results Vth2>Vth1.
Outcome Student will be able to create the schematic, verify schematic functionality and
device regions of operation by simulation and build the layout for the same in Cadence
Virtuoso.
The Encounter gui shows the generated module from the design elaboration.
The synthesis result shows the timing analysis and the area of the synthesized design.
The timing constraints has three different parts in the constraint file:
Make sure you close out all the Incisive tool windows first.
As the Full Adder Program does not contain any Clock, SDC can be skipped as an
Input if you
wish to, else you could include only Area Constraints in form of commands during
synthesis such
/home/install/FOUNDRY/digital/<Technology_Node_number>nm/dig/lib/
ATME College of Engineering, Mysuru Page 49
VLSI LAB MANUAL BECL606
The Available technology nodes are 180nm ,90nm and 45nm. In the terminal,
initialise the tools
- csh
- source /home/install/cshrc
The tool used for Synthesis is “Genus”. Hence, type “genus -gui” to open the tool.
1. read_libs /home/install/FOUNDRY/digital/90nm/dig/lib/slow.lib
3. elaborate
Commands 1-5 are intended for Synthesis process while 6-10 for Generating reports
and Outputs.
Note 1:-
1. The Cells given in the netlist can be checked in the .lib files for their properties.
2. The Max Operating Frequency does not apply for Purely Combinational Circuit.
Experiment – 6
4- bit Adder
Aim: To develop the source code for 4-bit Adder by using VERILOG and obtain
the simulation and its test bench for verification, observe the waveform,
synthesize the code with technological library with given Constraints to
generate into a netlist, and tabulate the Area, Power and Delay for the
synthesized netlist and identify critical path.
Objectives:
Theory:
4-bit Adder is a combinatorial circuit (not clocked, does not have any memory
and feedback) adding every bit position of the operands in the same time. Thus
it is requiring number of bit-Adders (full adders + 1 half adder) equal to the
number of bits to be added. The 4-bit adder is constructed by cascading full
adders (FA) blocks in series. One full adder is responsible for the addition of
two binary digits at any stage of the ripple carry. The carryout of one stage is
fed directly to the carry-in of the next stage.
NOTE:
Three Codes are written for implementation of 4-bit Adder
◦ fa.v → Single Bit 3-input Full Adder [Sub-Module / Function]
◦ fa_4bit.v → Top Module for Adding 4-bit inputs
◦ fa_test.v → Test bench code for testing of 4-bit Adder design
Waveform:
Synthesize Design:
Note-2: -
1. Tabulate Area, Power and Timing Constraints using any of the SDC
Constraints as instructed.
2. Make sure, during synthesis the Report File Names are changed so that the
latest reports do not overwrite the earlier ones.
RESULT: Verilog code for the 4-bit Adder circuit and its test bench for
verification is written, the waveform is observed and the code is synthesized
with the technological library and is verified.
Experiment – 7
4-Bit Shift and Add Multiplier
Aim: To develop the source code for 4-bit shift and add multiplier using
Behavioral Modeling and obtain the simulation and its test bench for
verification, observe the waveform, synthesize the code with technological
library with given Constraints to generate into a netlist, and tabulate the Area,
Power and Delay for the synthesized netlist and identify critical path.
Objectives:
Theory:
Binary multipliers are used for multiplication of 2 binary numbers and are
used mainly in signal processing and also in other computationally intensive
applications. Shift and add binary multiplier is a type of sequential multiplier.
Sequential multipliers generate the partial products sequentially and add each
newly generated partial product to the previously accumulated sum. Shift and
add binary multiplier is a type of sequential multiplier. Shift and add multiplier
is similar to multiplication done by paper and pencil. This method adds the
multiplicand X to itself Y times, where Y denotes the multiplier In the case of
binary multiplication, since the digits are 0 and 1, if the multiplier digit is 1, a
copy of the multiplicand is placed in the proper positions; if the multiplier digit
is 0, a number of 0 digits are placed. The 2n-bit product register (A) is
initialized to 0. A 2n-bit multiplicand register with the multiplicand placed in
the right half of the register and with 0 in the left half is used. The algorithm
starts by loading the multiplicand into the B register, loading the multiplier into
the Q register, and initializing the A register to 0. The counter N is initialized to
n. The least significant bit of the multiplier register (Q0) determines whether
the multiplicand is added to the product register. The left shift of the
ATME College of Engineering, Mysuru Page 55
VLSI LAB MANUAL BECL606
multiplicand has the effect of shifting the intermediate products to the left and
right shift prepares the next bit of the multiplier to examine in the following
iteration.
Flowchart:
Source Code:
end
end
endmodule
Waveform:
RESULT: Verilog code for the 4 bit shift and add multiplier circuit and its test
bench for verification is written, the waveform is observed and the code is
synthesized with the technological library and given constraints and is verified.
Experiment – 8
32-Bit ALU
Aim: To develop the source code for 32-bit ALU supporting 4-Logical and 4-
Arithmetic operations, using case and if statement for ALU Behavioral Modeling
and obtain the simulation and its test bench for verification, observe the
waveform, synthesize the code with technological library with given Constraints
to generate into a netlist, and tabulate the Area, Power and Delay for the
synthesized netlist and identify critical path.
Objectives:
Theory:
A 32-bit ALU is a combinational circuit taking two 32-bit data words A and B
as inputs, and producing a 32-bit output Y by performing a specified arithmetic
or logical function on the A and B inputs.
Arithmetic Logic Unit (ALU) using these simple logic gates AND, OR, NOT, XOR
and other components. The ALU will take in two 32-bit values, and two control
lines. Depending on the value of the control lines, the output will be the
addition, subtraction, bitwise AND or bitwise OR of the inputs. The Fig. 3.1
shows the block diagram of 32-bit ALU.
Verilog code:
Testbench code:
Waveform:
Synthesize Design:
RESULT: Verilog code for the 32-bit ALU circuit and its test bench for
verification is written, the waveform is observed and the code is synthesized
with the technological library and given constraints and is verified.
Experiment – 9
Flip-Flop
AIM: To write Verilog code for D, SR, JK Flip-flop, Synthesize the design and
compare the synthesis report.
Objectives:
a) Write Verilog code and testbench for D, SR, JK Flip Flop to check the
functionality.
b) Synthesize the designs and compare the report of its.
a) Flip Flops
i) D Flipflop
Theory:
Block diagram:
Truth Table:
Constraint File:
Theory:
It can be seen that when both inputs S = “1” and R = “1” the outputs Q and Q
can be at either logic level “1” or “0”, depending upon the state of the inputs S
or R BEFORE this input condition existed. Therefore the condition of S = R =
“1” does not change the state of the outputs Q and Q. However, the input state
of S = “0” and R = “0” is an undesirable or invalid condition and must be
avoided. The condition of S = R = “0” causes both outputs Q and Q to be HIGH
together at logic level “1” when we would normally want Q to be the inverse of
Q. The result is that the flip-flop loses control of Q and Q, and if the two inputs
are now switched “HIGH” again after this condition to logic “1”, the flip-flop
becomes unstable and switches to an unknown data state based upon the
unbalance.
Logic diagram:
Truth Table:
#200 $finish;
end
always #10 clk = ~clk;
endmodule
Simulation output:
Constraint File:
Theory:
Truth Table:
Simulation output:
Constraint File:
RESULT: Verilog code for D, SR, JK Flip-flop and its test bench for verification
is written, the waveform is observed and the code is synthesized with the
technological library and given constraints and is verified.
Experiment – 10
Four-bit Synchronous MOD-N counter with Asynchronous reset
Aim: To develop the source code for 4-bit Synchronous MOD-N counter with
Asynchronous reset, verify the functionality using Test bench and Synthesize
the design and compare the synthesis
report.
Objectives:
For example, a 2-bit counter that counts from 002 to 112 in binary, 0 to 3 in
decimal, has a modulus value of 4 ( 00 → 1 → 10 → 11, and return to 00 );
therefore, be called a modulo-4, or mod-4, counter. Note also that it has taken
four clock pulses to get from 00 to 11.
In this example, there are only two bits ( n = 2 ) then the maximum number of
possible output states (maximum modulus) for the counter is 2n = 22 or 4.
However, counters can be designed to count to any 2n states in their sequence
ATME College of Engineering, Mysuru Page 73
VLSI LAB MANUAL BECL606
Therefore, a "Mod-N" counter will require the "N" number of flip-flops connected
to count a single data bit while providing 2n different output states (n is the
number of bits). Note that N is always a whole integer value. Then we can see
that MOD counters have a modulus value that is an integral power of 2, that is,
2, 4, 8, 16 and so on to produce an n-bit counter depending on the number of
flip-flops used, and how they are connected, determining the type and modulus
of the counter.
Verilog code:
module modN_ctr
#(parameter N = 10, parameter WIDTH = 4)
(input clk, input rstn, output reg [WIDTH-1:0] out);
always @ (posedge clk) begin
if (!rstn) begin
out <= 0;
end else begin
if (out == N-1)
out <= 0;
else
out <= out + 1;
end
end
endmodule
Testbench code:
ATME College of Engineering, Mysuru Page 74
VLSI LAB MANUAL BECL606
module tb;
parameter N = 10;
parameter WIDTH = 4;
reg clk;
reg rstn;
wire [WIDTH-1:0] out;
modN_ctr u0 (.clk(clk), .rstn(rstn), .out(out) );
always #10 clk = ~clk;
initial begin
{clk, rstn} <= 0;
$monitor ("T=%0t rstn=%0b out=0x%0h", $time, rstn, out);
repeat(2) @ (posedge clk);
rstn <= 1;
repeat(20) @ (posedge clk);
$finish;
end
endmodule
Waveform:
Synthesize Design:
RESULT: Verilog code for the 4-bit Synchronous MOD-N counter circuit and its
test bench for verification is written, the waveform is observed and the code is
synthesized with the technological library and given constraints and is verified.
The terminal window and tool window can be seens as similar to images on next page
3. Go to the Tool window and click on the File and select Import Design. A
newwindow will open.
4. Select the verilog files, power nets, lef files and view files using load button. A
newwindow ―Load Global Files‖ will open.
5. Click on the back button and select the ―NCO_globals‖ file and click the
Open button.
7. Select OK. The tool window will look like image on next page.
The pink colour blocks are the standard cells. This is floorplan view of the design.
10.Next step is to do power planning. Click on power, select power planning and click
onAdd Rings.
11. Select the top and bottom layer as Metal5, Left and Right as Metal6. Set the
width as per the requirement and taking the space between core boundary and I/O
pad considerations. Select the option for offset as ―center in channel‖ and click OK.
The power ring will get created in between the channel. The image on the next
page is showing the power ring created.
12. The next step in power planning is to create power strips. Select Power,
clickPower Planning and click Add Stripe.
13. For adding the stripes, select metal layer as Metal 6 and chose direction as
vertical(if direction chosen is horizontal, chose metal layer as Metal 5). Click
OK and the design will get the vertical thin strips of type Metal 6.
14. After the power planning, go to Route and click Special Route. A new
WindowSroute will appear.
15. Click OK with all default settings. This is done to provide power to standard
cells.The horizontal blue coloured metal1 stripes created as a result of Special
Route.
16. For placement, click on place and select place and click on Place Standard Cell.
17. Click OK on Place window and in physical view the blue coloured standard
cellscan be seen as a result of placement of standard cells.
18. Before CTS, timing analysis has to be done for any setup violations. Click on
Timing, and select Report Timing. A Timing analysis window will get open.
In the window select the ―Pre-CTS‖ as Design Stage and select the
―Setup‖ as Analysis Type.
19. Click OK to complet the Timing analysis. The timing information will get
display on terminal in tabular form. In the table displayed on the terminal
under
―timeDesign Summary‖, check for any negative value under
WNS(Worst Negative Slack) and TNS(Total Negative Slack). The terminal
will look as the image below and Tool window as on next page.
The multi-coloured lines visible in the tool window are the connections between
standard cells using metal layers. If any part of this design is Zoom-in, metal layers
can be viewed easily.
20. If there is any of the negative slack value under WNS or TNS, click Optimize in
Tool window and Select Optimize Design. A new window ―Optimization‖
will get open. Select ―Pre-CTS‖ as Design Stage and ―Setup‖ as optimization
type and click OK. The tool will optimize the design and the optimized timing
results will be displayed over terminal again.
In this case we did not get any negative slack, so this step is skipped here.
22. Click on Gen Spec and a new window ―Generate Clock Spec‖ will open.
23. From Cells List, Select all clocks starting with ―CLK‖ and click on Add button
to add them to the Selected Cells. Select a name for Output specification.
24. Click OK. Then specify a name for Results Directory. and click OK. The
toolwindow looks like the image below.
25. Again Perform the Timing by clicking on Timing and selecting Report Timing.
Select ―Post-CTS‖ under Design Stage and do the select ―Set-up‖ as
Analysis Type.
26. Click Ok to perform the timing. The timing information will be displayed over
theterminal window. Again check for any negative slacks under WNS or TNS.
27. If there is any negative value found for either of WNS or TNS then perform
the Optimization Technique to reduce the negative slack. No negative slack is
found in the terminal image on previous page so this step is skipped here.
28. Timing Analysis for ―Setup‖ as Analysis Type is done. Repeat Step 27
for performing timing for ―Post CTS‖ as Design Stage and ―Hold‖ as Analysis
Type. The tool will show the timing results in the terminal window.
29. After Timing Analysis is performed, the timeDesign Summary is showing the
negative slack values for both TNS and WNS. Perform the Optimization. Go to
Optimize and click on Optimize Design. Select ―Post-CTS‖ as and ―HOLD‖
as the Optimization Type
30. Click OK to perform the Optimization and Tool will perform the optimization
and displays the optimized results in the terminal window under timeDesign
Summary. The results of Optimization can be seen on the next page in tabular
form for both Setup and Hold mode. As compare to the Timng Results
performed for Hold mode in Step 30, the design has been optimized and
tabular results shows that all slack values are now positive values and no
more negative values for slack.
31. Perform Routing by clicking Route, and select NanoRoute and then click
Route.A window NaoRoute will open.
32. Click Ok to Perform Routing. The tool will Perform the Routing and the
Routingstatistics can be seen on terminal window including DRC violations.
33. After routing tool window looks like the below image.
34. Perform the timing again. Go to Timing, seelct Report Timing and a Timing
Analysis window will get open. Select ―Post-Route‖ as the Design Stage
and
―Setup‖ as Analysis Type. Click Ok. The timing results will be displayed in
terminal window for Set up mode.
Since there is no negative value of slack so design does not require optimization for
Set-up mode in Post-Route stage.
35. Repeat Step 36 for ―Post-Route‖ as Design Stage and ―Hold‖ as the
Analysis Type. Click OK. The timing results can be seen in the terminal
window for hold mode.
Launch ADE L, select “Setup → Stimuli” as shown in Figure below to give the required
● Use YvsY plot [right click on x axis ] (QvsQb) Option in graph to get the butterfly curve on the
graph.
SENES AMPLIFIER
Figure – sram_read_operation_test_schematic
Figure – sram_read_operation_result
SRAM_WRITE_OPERATION:
Figure – : sram_read_write_schematic
Figure – : sram_write_operation_result
Follow the techniques demonstrated in Lab – 01 to open the Layout Editor, import the devices
from the Schematic, place the devices as per the requirement and complete the routing. The