DOC PREVIEW
Berkeley ELENG 141 - PROJECT PHASE I

This preview shows page 1-2-3 out of 9 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 9 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 9 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 9 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 9 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

UNIVERSITY OF CALIFORNIA College of Engineering Department of Electrical Engineering and Computer Sciences Last modified on October 22, 2009. Elad Alon FALL 2009 TERM PROJECT PHASE I EECS 141 1. Design of a Programmable Functional Unit – Background Memory arrays and adders are essential building blocks in nearly all digital systems. In this semester’s project, you will be designing a functional unit that adds two 5-bit operands together after retrieving them from two SRAMs. Such a unit could be used to implement a function of the form S = F(X) + G(Y), where F(·) and G(·) are some arbitrary functions. While there are many ways to implement arbitrary functions, one of the most efficient ways to achieve this is to build a programmable look-up table out of SRAMs. In other words, each logic function input (X and Y) serves as the address to an SRAM. In the first stage of this project, you will be characterizing the SRAM cell provided to you and designing the critical path of the address decoder for the SRAM. 1.1. High level structure A block diagram of the functional block you will be designing is shown in Figure 1. Functional unit implementing the sum of arbitrary functions of two inputs. There are two 5-bit inputs and the output is the 6-b sum of the two selected memory words.There are three major blocks to be designed: • Address decoder: The two (identical) address decoders take in the two 5-bit inputs X4:0 and Y4:0, and decode them to generate 32 wordlines wl31:0 for each SRAM array. • SRAM array: Consists of two identical arrays of 32 x 5 SRAM cells. • Adder: Adds two 5-bit inputs (A4:0 = F(X) and B4:0 = G(Y)) and outputs 6-bit sum (S5:0). In addition to these blocks, the array also contains circuitry that allows data to be written into the array, and for precharging the bitlines to VDD before the read operation; these circuits are not shown in Figure 1.2. Implementation and Constraints The goal of this project is to design a functional, compact, fast, energy-efficient functional unit. The project will be completed in THREE phases by teams of two students. The first two phases of the project will consist of well-defined tasks (similar to the homeworks), while the final (longest) phase of the project will be much more open-ended. PHASE 1: Cell Characterization and Decoder Design (due Thursday, Oct. 29, at 5pm) Cell Characterization: In the first phase of the project, you are provided with a pre-designed SRAM cell. Characterize the cell stability by using Cadence to obtain an extracted netlist and HSPICE to perform simulations to get the read and write margins. To obtain the SRAM cell: - In Cadence, create a library “sram” linked to the gpdk090 90nm technology (see lab 2). - Now in an x-terminal, go to the directory ~/ee141/sram/ (this assumes that the library you just created is in ~/ee141/sram) and type the following commands: cp –R ~ee141/fall09/project/sram_cell/ . - Go back to Cadence. You should see the SRAM cell design under the cell view sram_cell in your sram library. Figure 2. SRAM Read Static Noise Margin. Recalling that the wordline and bitlines are held at VDD during a read, Figure 2 shows how to extract the read static noise margin (SNM) of the cell. First, the feedback from the cross coupled inverters is broken. Next, the VTC of the “inverter” formed by half of the SRAM cell is found by sweeping V1 (the inverter’s input) from 0 to VDD and measuring V2 (the inverter’s output). This plot is then used to construct the “butterfly plot” that is representative of the two halves of the cell driving each other. The read SNM is the side length of the maximum possible square that can fit inside of the butterfly plot. You do not have to calculate the size of this maximum square, but you should submit the butterfly plot (generated using HSPICE) that graphically indicates the SNM. You should also measure the worst-case voltage rise in the SRAM cell during a read (i.e., the value of V2 when V1 is at VDD) and provide that value in your report. V1V2WLBLBLBFigure 3. Write Noise Margin. During a write, VDD is applied to the worldine, and the value to be written into the memory cell is driven onto the bitlines. Thus, Figure 3 shows how to extract the write noise margin (WNM) of the cell. Again, the feedback from the cross coupled inverters is broken, and the VTC of the “inverters” are measured. Note however that in this case, the VTCs of the two halves of the SRAM are no longer the same (since one of the bitlines is driven to 0V, and the other to VDD). These VTCs are used to create a butterfly plot, and the WNM is the side length of the largest square that can fit inside of the butterfly plot. You do not have to calculate the WNM, but you should generate the butterfly plot (again using HSPICE) and graphically indicate the WNM. You should however measure the worst-case cell voltage during a write (which is found from measuring V1 when V2 is at 0V). Layout of SRAM Array: Figure 4. Arraying Procedure Figure 4 shows how the provided SRAM cell can be arrayed to minimize area. Each adjacent cell is flipped across the X or Y axis. For phase 1 of the project, you will need to array one row of SRAM cells and use the extracted layout to estimate the capacitive loading on each wordline (To conduct parasitic extraction of your layout, there will be a tutorial posted under the “Projects” section on the course website). V2V1V1V2Decoder Design: Figure 5. Decoder. The next stage is to design the 5-to-32 memory decoders. In phase 1 of the project, our goal will be to minimize the delay of the decoder from the address inputs transitioning to the wordline rising. The decoding is performed in two phases: predecoding of 3 or 2 input bits, and then final decoding of 2 bits. The enable signal EN is active high and enables the decoder outputs – this is required in order to be able to precharge the bitlines once a read or write has been completed. For phase 1, you can assume that the EN signal will go high at the same time as the address inputs transition. The predecoder drives the final wordline decoders together with a wire whose length equals the height of the memory array. The logic structure and the number of logic levels in Figure 5 are not fixed – e.g., you can exchange NANDs with NORs, or add/remove inverters. You can assume that both the true and complement versions of the addresses are


View Full Document

Berkeley ELENG 141 - PROJECT PHASE I

Documents in this Course
Adders

Adders

7 pages

Memory

Memory

33 pages

I/O

I/O

14 pages

Lecture 8

Lecture 8

34 pages

Lab 3

Lab 3

2 pages

I/O

I/O

17 pages

Project

Project

6 pages

Adders

Adders

15 pages

SRAM

SRAM

13 pages

Load more
Download PROJECT PHASE I
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view PROJECT PHASE I and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view PROJECT PHASE I 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?