Image Courtesy: Intel Welcome to CS250 VLSI …cs250/fa10/handouts/section1-web.pdfWelcome to CS250...

Preview:

Citation preview

Welcome to CS250 VLSI Systems Design9/2/10Yunsup Lee

Image Courtesy: Intel

• Email: yunsup@cs.berkeley.edu

• Please add [CS250] in the subject

• Will try to get back in a day

• CS250 Newsgroup

• Post questions to the newsgroup so everyone else can read the answer as well

• Sections: Thursday, 5-6pm, 310 SODA

• I can’t make September 23’s section, can we do it on September 21?

• Office Hours: Tuesday, 10-11am, 711 SODA

YUNSUP LEE

Remember!

• NEVER post materials online

• Tools

• Documents

• Technology files

• Methodology scripts

Sorry,

• Only one machine on-line

• icom1.eecs.berkeley.edu

• Trying to get more machines now

• SVN server not on-line yet

• Will write a news flash to the newsgroup when I make more progress on infrastructure

What is my job?

Execute SIM

VerilogSource(Behav)

BehavSim

VCS

VPD TestOutputs

DVE GUI

VerilogSource(RTL)

VCS Design Compiler

Formality

Design Vision GUI

IC Compiler (DP)

IC Compiler (P&R)

ConstraintsFile

VerificationResults

ConstraintsStd.Cell

Library

RTLSim Gate

LevelNetlist

TimingArea

DelayFile

TLU+Files

FloorPlan

ConstraintsFile

GateLevelNetlist

TimingArea Layout Parasitics

FileDelayFile

Execute SIM

GuidanceFile

VPD TestOutputs

DVE GUI

VCS

PostSynSim

Execute SIM

VPD TestOutputs

DVE GUI

VCS

PostP&RSim

Execute SIM

VPD TestOutputs

DVE GUI

IC Compiler GUI

PrimeTime

VCD

VPD2VCD

PowerEstimates

How? Three labs + Project

• Lab 1: GCD: VLSI’s Hello World• 8/30 - 9/13 before class (2 weeks)

• Lab 2: Write and Synthesize a Two-Stage/Three-Stage Maven-v2 Processor• More about RTL implementation and synthesis

• 9/13 - 10/4 before class (3 weeks)

• Lab 3: ASIC Implementation of a Three-Stage Maven-v2 Processor with On-Chips Caches• More about using the SRAM/Cache compilers, Place+Route, Power

• 9/13 - 10/4 before class (3 weeks)

• Project• Give Maven-v3 as baseline

• Explore one or more micro-architectural variations to improve performance or energy efficiency

• Greatest Common Divisor

• Things that are provided

• Test Harness

• Things that you need to do

• Write GCD RTL

• Push it through the tool flow

• Goal

• Recap Verilog Coding

• Get a feeling of all the tools

Lab 1: GCD

Lab 2: Maven-v2 RTL Implementation + Synthesis

• Maven: Stands for Malleable Array of Vector-thread ENgines

• Things that are provided

• Test Harness (which loads programs)

• Maven-v1 RTL Implementation

• Maven ISA Simulator / Maven C/C++ Compiler

• Things that you need to do

• Write Maven-v2 RTL

• Synthesize processor / Formally Verify

• Goal

• Correct Execution

• Minimize Clock Frequency / Post Synthesis Area

Maven-v1 vs. Maven-v2

• Maven-v1 (5 instructions) 1 stage pipeline

• LW, SW, ADDIU, BNE, MTC0

• Maven-v2 (33 instructions) 2 stage pipeline

• LW, SW

• ADDIU, SLTI, SLTIU, ANDI, ORI, XORI, LUI

• SLL, SRL, SRA, SLLV, SRLV, SRAV

• ADDU, SUBU, AND, OR, XOR, NOR, SLT, SLTU

• J, JAL, JR, JALR

• BEQ, BNE, BLEZ, BGTZ, BLTZ, BGEZ

• MFC0, MTC0

• No Branch Delay Slot!

Lab 3: Maven-v2 Place and Route + Power

• Things that are provided

• Test Harness

• SRAM/Cache Compiler

• Things that you need to do

• Integrate Caches to your design (make it more realistic)

• Modify your RTL

• Synthesize Core

• Place and Route design

• Estimate Power / Make an analytic power/energy model

• Goal

• Correct Execution

• Minimize Area / Minimize Power

Any Questions so far?

• CAD Tools generate a lot of data. You should be able to script. Python is strongly recommended.

• Mac Preview doesn’t copy&paste newlines. Use Adobe PDF Reader to copy&paste commands from the labs.

• Labs are 15% of your grade

• Each student gets a total of four late days

• Everything goes into the SVN repository

• Your writeup should only be in text or PDF

Greatest Common Divisor

• Euclidean Algorithm

• START (A, B)

• if (A < B)

• SWAP (A, B)

• else if (B != 0)

• SUBTRACT (A-B, B)

• else

• DONE gcd=A

START (32, 48)A<B SWAP (48, 32)B!=0 SUBTRACT (16, 32)A<B SWAP (32, 16)B!=0 SUBTRACT (16, 16)B!=0 SUBTRACT (0, 16)A<B SWAP (16, 0)B=0 DONE GCD=16

GCD Port Interface

operands_rdy

operands_val

operands_bits_A

operands_bits_B

result_bits_data

result_rdy

result_val

clk reset

Let’s form groups

• Make 5 groups by doing

• group # = (Birth Month + Birth Day) MOD 5

• Will give you 5-10 minutes

What should I do?

• Figure out what goes into the datapath, and control

• datapath: big functional units of your design

• control: signals which drive the datapath

• Figure out what states you need

• Figure out the transition between states

• Figure out the following signals for each state

• A_mux_sel, A_en, B_mux_sel, B_en

• operands_rdy, results_val

Tick-tock!

B

A_lt_B B_zero

zero? lt

A

sub

A_mux_sel

A_en

B_mux_sel

B_en

operands_val

operands_rdy

result_val

result_rdy

operands_A

operands_B

result

WAIT

CALC

DONE

Waiting for new input operands

Swapping and subtracting

Waiting for consumer to take the result

reset

Now we’ve wrote some RTL ...

• Simulate your RTL until it works.

• Synopsys VCS (vcs-sim-rtl)

• Now give me some hardware (gate-level netlist), aka Synthesize.

• Synopsys Design Compiler (dc-syn)

• Is my hardware correct? Simulate your gate-level netlist.

• Synopsys VCS (vcs-sim-gl-syn)

• I want a piece of silicon, aka Place and Route.

• Synopsys IC Compiler (icc-par)

• Is my piece of silicon correct? Simulate your place-and-routed gate-level netlist. You also need to record bit flipping information by doing this.

• Synopsys VCS (vcs-sim-gl-par)

• How much power does my circuit burn?

• Synopsys PrimeTime (pt-pwr)

Process Technology

• Synopsys 90nm Educational Library

• You can use this library without NDA

• Be careful not to put stuff google accessible

• 1 POLY + 9 METAL

• Standard Cells + SRAM Cells

• No Memory Compiler, but we built one for you

• OpenSparc MegaCells

• I/O Pads

Any Questions?

Recommended