Welcome to CS250 VLSI Systems Design

Similar documents
RTL Model of a Two-Stage MIPS Processor

CS250 DISCUSSION #2. Colin Schmidt 9/18/2014 Std. Cell Slides adapted from Ben Keller

Computer Architecture Experiment

Adding SRAMs to Your Accelerator

ECE410 Design Project Spring 2013 Design and Characterization of a CMOS 8-bit pipelined Microprocessor Data Path

Image Courtesy CS250 Section 2. Yunsup Lee 9/4/09

Project Part A: Single Cycle Processor

Week 10: Assembly Programming

F. Appendix 6 MIPS Instruction Reference

MIPS Instruction Reference

Computer Architecture. The Language of the Machine

Bits and Pieces of CS250 s Toolflow

Question 0. Do not turn this page until you have received the signal to start. (Please fill out the identification section above) Good Luck!

Programming the processor

101 Assembly. ENGR 3410 Computer Architecture Mark L. Chang Fall 2009

ECE 2035 Programming HW/SW Systems Fall problems, 7 pages Exam Two 23 October 2013

MIPS Reference Guide

Mips Code Examples Peter Rounce

ECE 2035 Programming HW/SW Systems Spring problems, 6 pages Exam One 4 February Your Name (please print clearly)

Q1: /30 Q2: /25 Q3: /45. Total: /100

EEM 486: Computer Architecture. Lecture 2. MIPS Instruction Set Architecture

Lab 3: Simulation and Testing

Bits and Pieces of CS250 s Toolflow

Pushing SRAM Blocks through CS250 s Toolflow

ECE 2035 Programming HW/SW Systems Fall problems, 6 pages Exam One 22 September Your Name (please print clearly) Signed.

The MIPS Instruction Set Architecture

Image Courtesy CS250 Section 3. Yunsup Lee 9/11/09

Computer Architecture. MIPS Instruction Set Architecture

EE108B Lecture 3. MIPS Assembly Language II

Exam in Computer Engineering

CS654 Advanced Computer Architecture. Lec 1 - Introduction

Processor. Han Wang CS3410, Spring 2012 Computer Science Cornell University. See P&H Chapter , 4.1 4

MIPS Instruction Format

ICS 233 COMPUTER ARCHITECTURE. MIPS Processor Design Multicycle Implementation

Assembly Programming

CSc 256 Midterm 2 Spring 2012

MIPS Instruction Set

CSc 256 Midterm 2 Fall 2011

TSK3000A - Generic Instructions

ECE Exam I February 19 th, :00 pm 4:25pm

Final Project: MIPS-like Microprocessor

ECE 2035 Programming HW/SW Systems Fall problems, 6 pages Exam One 19 September 2012

CPU Design for Computer Integrated Experiment

ECE 2035 Programming HW/SW Systems Spring problems, 6 pages Exam Two 11 March Your Name (please print) total

Midterm. Sticker winners: if you got >= 50 / 67

Lab 5: Pipelining an SMIPSv2 Processor: Part I

CS 61c: Great Ideas in Computer Architecture

Write and Synthesize a Two-Stage SMIPSv2 Processor

Instruction Set Principles. (Appendix B)

Computer Architecture

Lec 10: Assembler. Announcements

ECE 2035 Programming HW/SW Systems Fall problems, 6 pages Exam Two 23 October Your Name (please print clearly) Signed.

Outline. EEL-4713 Computer Architecture Multipliers and shifters. Deriving requirements of ALU. MIPS arithmetic instructions

5/17/2012. Recap from Last Time. CSE 2021: Computer Organization. The RISC Philosophy. Levels of Programming. Stored Program Computers

Recap from Last Time. CSE 2021: Computer Organization. Levels of Programming. The RISC Philosophy 5/19/2011

EECS 151/251A ASIC Lab 6: Power and Timing Verification

ECE 2035 A Programming Hw/Sw Systems Fall problems, 8 pages Final Exam 8 December 2014

INSTRUCTION SET COMPARISONS

Instruction Set Architecture of. MIPS Processor. MIPS Processor. MIPS Registers (continued) MIPS Registers

ECE 2035 Programming HW/SW Systems Spring problems, 6 pages Exam Three 10 April 2013

SPIM Instruction Set

Flow of Control -- Conditional branch instructions

Building your First Image Processing ASIC

Overview. Introduction to the MIPS ISA. MIPS ISA Overview. Overview (2)

Lab 2: Single-Cycle MIPS Assigned: Fri., 2/1; Due: Fri., 2/15 (Midnight)

CSc 256 Final Fall 2016

ece4750-parc-isa.txt

A Processor! Hakim Weatherspoon CS 3410, Spring 2010 Computer Science Cornell University. See: P&H Chapter , 4.1-3

Examples of branch instructions

Harnessing FPGAs for Computer Architecture Education

Concocting an Instruction Set

HW2 solutions You did this for Lab sbn temp, temp,.+1 # temp = 0; sbn temp, b,.+1 # temp = -b; sbn a, temp,.+1 # a = a (-b) = a + b;

ECE 2035 A Programming Hw/Sw Systems Spring problems, 8 pages Final Exam 29 April 2015

Adding SRAMs to Your Accelerator

ECE 154B Spring Project 4. Dual-Issue Superscalar MIPS Processor. Project Checkoff: Friday, June 1 nd, Report Due: Monday, June 4 th, 2018

ECE 473 Computer Architecture and Organization Project: Design of a Five Stage Pipelined MIPS-like Processor Project Team TWO Objectives

ECE 2035 Programming HW/SW Systems Fall problems, 6 pages Exam Two 21 October 2016

CSc 256 Midterm (green) Fall 2018

ECE 2035 A Programming Hw/Sw Systems Fall problems, 8 pages Final Exam 9 December 2015

A Processor. Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University. See: P&H Chapter , 4.1-3

Adding SRAMs to Your Accelerator

Implementing an Instruction Set

A General-Purpose Computer The von Neumann Model. Concocting an Instruction Set. Meaning of an Instruction. Anatomy of an Instruction

Anne Bracy CS 3410 Computer Science Cornell University. [K. Bala, A. Bracy, E. Sirer, and H. Weatherspoon]

COMP 303 MIPS Processor Design Project 3: Simple Execution Loop

Lab 3: Pipelined MIPS Assigned: Wed., 2/13; Due: Fri., 3/1 (Midnight)

CS250 Section 4. 9/21/10 Yunsup Lee. Image Courtesy: Tilera

Anne Bracy CS 3410 Computer Science Cornell University. See P&H Chapter: , , Appendix B

ECE 2035 Programming Hw/Sw Systems Fall problems, 10 pages Final Exam 9 December 2013

Reduced Instruction Set Computer (RISC)

MIPS ISA. 1. Data and Address Size 8-, 16-, 32-, 64-bit 2. Which instructions does the processor support

CS 4200/5200 Computer Architecture I

CS61CL Machine Structures. Lec 5 Instruction Set Architecture

Concocting an Instruction Set

Verilog RTL for a Two-Stage SMIPSv2 Processor

Alexandria University

MIPS Assembly Language. Today s Lecture

Reduced Instruction Set Computer (RISC)

MIPS Assembly Language Programming

Concocting an Instruction Set

Transcription:

Image Courtesy: Intel Welcome to CS250 VLSI Systems Design 9/2/10 Yunsup Lee

YUNSUP LEE 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

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? Verilog Source (Behav) Verilog Source (RTL) Constraints Std. Cell Library VCS VCS Design Compiler Behav Sim RTL Sim Guidance File Gate Level Netlist Delay File Constraints File Timing Area Execute SIM Execute SIM VPD DVE GUI Test Outputs VPD DVE GUI Test Outputs Formality Verification Results Design Vision GUI TLU+ Files IC Compiler (DP) Floor Plan VCS IC Compiler (P&R) Post Syn Sim Delay File Gate Level Netlist Constraints File Timing Area Layout Parasitics File Execute SIM VCS IC Compiler GUI VPD Test Outputs Post P&R Sim DVE GUI Execute SIM VPD Test Outputs DVE GUI VPD2VCD VCD PrimeTime Power Estimates

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

Lab 1: GCD 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 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_val operands_rdy operands_bits_a result_val result_rdy result_bits_data operands_bits_b 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! operands_val operands_rdy A_mux_sel B_mux_sel A_en B_en B_zero A_lt_B reset result_val result_rdy WAIT Waiting fo zero? lt result operands_a A sub CALC Swapping operands_b B DONE Waiting fo

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?