Lab 7 - EE 421L 


Author: Jason Silic

Date: November 1, 2013

Email: silicj@unlv.nevada.edu

 

Lab description:

This lab is an introduction to the circuits used in ALUs. We will work on word size

inverters, Multiplexors, and an adder. The only circuit that we will lay out

will be the adder, but there will be simulations of the other circuits.

 

The first circuit we develop a schematic is an eight-bit inverter.

Below is the schematic:

 

fig1

 

Note the bus connections. We have attached three capacitors of varying

sizes to the first three outputs. LTSpice sim results for this schematic,

inverter_sim_JS_f13, are below.

 

fig2

 

Our next step is to create schematics for NAND, NOR, AND, and OR gates,

and then create bus versions. Our job is mostly done with NAND and NOR

gates from previous labs, so our task is easy. AND and OR gates do have one slight problem.

The most obvious circuit, based on previous design of NAND and NOR gates will

have NMOS transistors connected to VDD, and PMOS transistors connected to ground.

This is a problem for our sframe layout, and a real design may use inverters at the inputs

to sidestep this problem. For our purposes, we are not doing layout, so we will make the circuit

as simple as possible. Below are schematics of the AND and OR gates.

 

fig3
 
Our simulation schematic is shown below. The waveforms are not very clean.
 
fig4
 
The next circuit is quite interesting. This DEMUX circuit will transmit input A to out put Z when S is high and Si is low.
The NMOS and PMOS transistors connecting A to the output are turned "on" while the transistors connecting B to the
output are turned "off." Below is the schematic.
 
fig5
 
The simulation results are below, confirming the operation of the circuit.
 
fig6
 
This circuit could also be used as a MUX, if Z was an input and A and B were outputs.
Note that the NMOS and PMOS transistors in the circuit can conduct current in either
direction. This will enable the circuit to be either a MUX or DEMUX.
 
fig7
 
The two resistors pull the A and B outputs low, to make the simulation
easier to understand. Otherwise, the inactive outputs are in a high-Z,
or high impedence state. The below simulation result confirms this.
 
fig8
 
The circuit diagram of the array version of these circuits is below. The two circuits are
MUX_sim_JS_f13(left) and DEMUX_sim_JS_f13(right).
 
fig10
 
The lab also requires IRSIM results for both of these circuits. Below are the LTSPICE and
IRSIM result for the Multiplexer (MUX) circuit. Again, when S is 1, input A is transmitted to Z,
and B is transmitted when S is low.
 
fig11
 
fig12
 
The next two figures are the LTSpice and IRSIM results for the Demultiplexer circuit
with pull down resistors on outA[0] and outB[0].

 fig13

 
fig14
 
 
Finally, we draft a schematic of a full adder cell (one bit) using the diagram in the
CMOS book, fig. 12.20.
 
fig15
 
A little modification makes the symbol from lab6 ready for use here.
 
fig16
 
The array version, or 8-bit full adder is next. Below is the schematic and icon.
 
fig17
 
Simulation with IRSIM was hindered by numerous java errors, but eventually it worked.
We test the circuit with two different numbers. First we add 180(0xB4) and 227(0xE3),
with CarryIn low. The result is 407, which means CarryOut is high. The remaining 8 sum
bits are 407-256 = 151(0x97). The second calculation is 101(0x65) + 50(0x32) + CarryIn,
and the result is 152(0x98) with carry out low. Note that there is some instability in the
output as the ripple carry adder computes the final sum.
 
fig18
 
Finally, we do the layout for this adder. Although the layout could probably be done more efficiently,
I am satisfied with the transistor density. Inputs to the adder are generally from the top on Metal2,
while outputs are to the bottom again on Metal2.
 
fig19
 
The cell does finally DRC, Well Check, and NCC correctly. (both the individual cell and the 8-bit adder)
 
fig20
 
The final step is the backup, as always.
 
fig21
 
 
Many of the simulations in this lab can be run easily
with input files located in this zip file.
The jelib file for this lab can be found here.
 


Return to EE 421L Labs