EEE598 Project 2 Group2-1
EEE598 Project 2 Group2-1
Fall 2010
Project 2
Team Members:
Instruction: This project is designed for you to setup your simulation environment in Cadence
and to learn basic coding technique of VerilogA for simple circuits, such as digital gates.
The easiest way to do this is to copy an existing digital gate to the component name you would
like create. Then modify the symbol and the VerilogA code (text format) to match your
component. An EEE598Lib is posted for you to start with your project. You may download the
file to you unix/lynix fold, un-zip it and then un-tar it.
1) Create the VerilogA view and symbol view for the digital Full Adder circuit. Simulate it
into Cadence (Spectre) to prove your design.
2) Using the Full Adder circuit to create an 8-bit binary Carry propagation adder by
connecting 8 Full Adder schematic. And simulate it in Spectre to prove your design.
A Co
S
A Co B
Ci
S
B
Ci
A Co
S
B
Ci
A Co
S
B
Ci
Solution:
The verilog A code for the Full Adder is shown below:
initial {
if (vlogic_high < vlogic_low) {
$error("Range specification error. vlogic_high = (%E) less than vlogic_low = (%E).\n",
vlogic_high, vlogic_low );
}
if (vtrans > vlogic_high || vtrans < vlogic_low) {
$warning("Inconsistent $threshold specification w/logic family.\n");
}
}
analog {
a = V(vin1) > vtrans;
b = V(vin2) > vtrans;
c = V(vin_carry) > vtrans;
Fig 2: Simulation waveform for Adder block from the Verilog A code
An 8-bit binary carry propagation adder is created by concatenating the full-adder blocks. The
schematic diagram for the 8-bit binary adder is shown in Fig. 3.
The adder was tested as a Full bit adder blockwise first which is given in Fig 2. Then during 8 bit
binary carry propagation adder, the simulation was done such that the carry propagates through
all the adders and results at Cout.
Input given:
A8 A7 A6 A5 A4 A3 A2 A1 = 1 1 1 1 1 1 1 1
B8 B7 B6 B5 B4 B3 B2 B1 = 0 0 0 0 0 0 0 0
Cin = 0 given for half the period and Cin =1 for rest of the time.
Output results:
When Cin = 0
S8 S7 S6 S5 S4 S3 S2 S1 = 1 1 1 1 1 1 1 1
C8 C7 C6 C5 C4 C3 C2 C1 = 0 0 0 0 0 0 0 0
When Cin =1, Carry will propogate through the adders and we will have:
S8 S7 S6 S5 S4 S3 S2 S1 = 0 0 0 0 0 0 0 0
C8 C7 C6 C5 C4 C3 C2 C1 = 1 1 1 1 1 1 1 1
The above the 8-bit binary carry propagation adder is simulated in the Cadence (Spectre) and the
simulation waveform for all the sums and carry outs are given below in Fig 4.
Fig 4: Simulation waveform for the 8-bit binary carry propagation adder
Problem 2: For the CMOS buffer circuit below, find based on the simulation the Mean, the
Standard Deviation of the Absolute Jitter (or TIE), the Period Jitter, and the Cycle-to-Cycle Jitter
of the output clock signal. (Assuming TSMC0.18 process technology)
1.5V 1.5V
1.5V
…
0 A A A A Do
T =2ns
Rise time = fall time = 50ps P: 1.8u/0.18u
N: 1.2u/0.18u
Solution:
Test bench
Ideal output
Vdd Noise
Jittered output
Fig 6: Input Output voltages for calculation of jitter due to power noise.
We have used the following definitions for calculation of different jitter measurements.
Fig 7: Simulation results for calculation of jitter due to power noise.
Delay = 1s
Delay = 9s
- + VB
Vs(t) 25 VA 50 VC
ZL >> 50
1V
Vs(t)
Solution:
Given:
ZO=50 Ω
ZS=25 Ω
ZL=∞ Ω
Results
Fig 8: Simulation results for Transmission line delay calculation.