! Inherent parallelism in hardware " Parallel computation beyond 61C. ! Counterpoint to software design " Furthering our understanding of computation

Similar documents
Welcome to EECS 150: Components and Design Techniques for Digital Systems

Welcome to EECS 150: Components and Design Techniques for Digital Systems

CSE370: Introduction to Digital Design

Adders allow computers to add numbers 2-bit ripple-carry adder

Intro To Digital Logic

EECS Components and Design Techniques for Digital Systems. FSMs 9/11/2007

Lecture A: Logic Design and Gates

Switches: basic element of physical implementations

Introduction to Computer Engineering ECE 203

CMPE12 - Notes chapter 2. Digital Logic. (Textbook Chapters and 2.1)"

COSC3330 Computer Architecture Lecture 2. Combinational Logic

COMP2611: Computer Organization. Introduction to Digital Logic

Digital Logic. CS211 Computer Architecture. l Topics. l Transistors (Design & Types) l Logic Gates. l Combinational Circuits.

Introduction to Computer Engineering. CS/ECE 252, Fall 2012 Prof. Guri Sohi Computer Sciences Department University of Wisconsin Madison

The Digital Logic Level

Lecture 22 Chapters 3 Logic Circuits Part 1

Floating Point Representation and Digital Logic. Lecture 11 CS301

CMPE12 - Notes chapter 1. Digital Logic. (Textbook Chapter 3)

! Chris Diorio. ! Gaetano Borrielo. ! Carl Ebeling. ! Computing is in its infancy

Combinational Logic Design Combinational Functions and Circuits

14:332:231 DIGITAL LOGIC DESIGN. Organizational Matters (1)

CMSC 313 Lecture 15 Good-bye Assembly Language Programming Overview of second half on Digital Logic DigSim Demo

Mark Redekopp, All rights reserved. Lecture 1 Slides. Intro Number Systems Logic Functions

ECE 407 Computer Aided Design for Electronic Systems. Simulation. Instructor: Maria K. Michael. Overview

Gates and Logic: From Transistors to Logic Gates and Logic Circuits

CSC9R6 Computer Design. Practical Digital Logic

ECE 341. Lecture # 3

Appendix B. Review of Digital Logic. Baback Izadi Division of Engineering Programs

E40M. Binary Numbers. M. Horowitz, J. Plummer, R. Howe 1

Appendix A: Digital Logic. Principles of Computer Architecture. Principles of Computer Architecture by M. Murdocca and V. Heuring

Chapter 2. Review of Digital Systems Design

Digital Circuits. 1. Inputs & Outputs are quantized at two levels. 2. Binary arithmetic, only digits are 0 & 1. Position indicates power of 2.

EECS150 - Digital Design Lecture 11 - Shifters & Counters. Register Summary

Logic. Basic Logic Functions. Switches in series (AND) Truth Tables. Switches in Parallel (OR) Alternative view for OR

From Sequential Circuits to Real Computers

Introduction to Computer Engineering. CS/ECE 252, Spring 2017 Rahul Nayar Computer Sciences Department University of Wisconsin Madison

Why digital? Overview. Number Systems. Binary to Decimal conversion

CMSC 313 Lecture 16 Announcement: no office hours today. Good-bye Assembly Language Programming Overview of second half on Digital Logic DigSim Demo

Logic Design Combinational Circuits. Digital Computer Design

LECTURE 28. Analyzing digital computation at a very low level! The Latch Pipelined Datapath Control Signals Concept of State

Organisasi dan Arsitektur Komputer L#1: Fundamental Concepts Amil A. Ilham

State and Finite State Machines

Sequential Logic. Handouts: Lecture Slides Spring /27/01. L06 Sequential Logic 1

We are here. Assembly Language. Processors Arithmetic Logic Units. Finite State Machines. Circuits Gates. Transistors

Digital- or Logic Circuits. Outline Logic Circuits. Logic Voltage Levels. Binary Representation

Example: A vending machine

Administrative Stuff

Memory, Latches, & Registers

EE141. EE141-Spring 2006 Digital Integrated Circuits. Administrative Stuff. Class Material. Flash Memory. Read-Only Memory Cells MOS OR ROM

Bit-Sliced Design. EECS 141 F01 Arithmetic Circuits. A Generic Digital Processor. Full-Adder. The Binary Adder

Boole Algebra and Logic Series

Digital Logic & Computer Design CS Professor Dan Moldovan Spring Copyright 2007 Elsevier 2-<101>

Memory Elements I. CS31 Pascal Van Hentenryck. CS031 Lecture 6 Page 1

CSE140: Components and Design Techniques for Digital Systems. Midterm Information. Instructor: Mohsen Imani. Sources: TSR, Katz, Boriello & Vahid

ALU, Latches and Flip-Flops

Designing Information Devices and Systems II Spring 2016 Anant Sahai and Michel Maharbiz Homework 5. This homework is due February 29, 2016, at Noon.

Software Engineering 2DA4. Slides 8: Multiplexors and More

SAU1A FUNDAMENTALS OF DIGITAL COMPUTERS

Digital Logic & Computer Design CS Professor Dan Moldovan Spring 2010

EE141- Fall 2002 Lecture 27. Memory EE141. Announcements. We finished all the labs No homework this week Projects are due next Tuesday 9am EE141

Outline. policies for the first part. with some potential answers... MCS 260 Lecture 10.0 Introduction to Computer Science Jan Verschelde, 9 July 2014

Testability. Shaahin Hessabi. Sharif University of Technology. Adapted from the presentation prepared by book authors.

Parity Checker Example. EECS150 - Digital Design Lecture 9 - Finite State Machines 1. Formal Design Process. Formal Design Process

Design at the Register Transfer Level

Combinational Logic Design

Chapter 7. Sequential Circuits Registers, Counters, RAM

Vidyalankar. S.E. Sem. III [EXTC] Digital System Design. Q.1 Solve following : [20] Q.1(a) Explain the following decimals in gray code form

Hw 6 due Thursday, Nov 3, 5pm No lab this week

LOGIC CIRCUITS. Basic Experiment and Design of Electronics. Ho Kyung Kim, Ph.D.

Prove that if not fat and not triangle necessarily means not green then green must be fat or triangle (or both).

CprE 281: Digital Logic

Gates and Logic: From switches to Transistors, Logic Gates and Logic Circuits

Appendix A: Digital Logic. CPSC 352- Computer Organization

ECEN 248: INTRODUCTION TO DIGITAL SYSTEMS DESIGN. Week 9 Dr. Srinivas Shakkottai Dept. of Electrical and Computer Engineering

Ch 7. Finite State Machines. VII - Finite State Machines Contemporary Logic Design 1

Review: Designing with FSM. EECS Components and Design Techniques for Digital Systems. Lec09 Counters Outline.

Binary addition example worked out

:3 2 D e c o de r S ubs ys te m "0 " One "1 " Ze ro "0 " "0 " One I 1 "0 " One "1 " Ze ro "1 " Ze ro "0 " "0 "

CSE 241 Digital Systems Spring 2013

Laboratory Exercise #11 A Simple Digital Combination Lock

Numbers & Arithmetic. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. See: P&H Chapter , 3.2, C.5 C.

DIGITAL TECHNICS I. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute 5. LECTURE: LOGIC SYNTHESIS

ECE321 Electronics I

Working with combinational logic

2009 Spring CS211 Digital Systems & Lab CHAPTER 2: INTRODUCTION TO LOGIC CIRCUITS

CS470: Computer Architecture. AMD Quad Core

Combinational Logic. Mantıksal Tasarım BBM231. section instructor: Ufuk Çelikcan

Arithmetic Building Blocks

Logic Design II (17.342) Spring Lecture Outline

ELCT201: DIGITAL LOGIC DESIGN

Sample Test Paper - I

EE40 Lec 15. Logic Synthesis and Sequential Logic Circuits

From Sequential Circuits to Real Computers

Lab 3 Revisited. Zener diodes IAP 2008 Lecture 4 1

Last lecture Counter design Finite state machine started vending machine example. Today Continue on the vending machine example Moore/Mealy machines

ALU A functional unit

! Charge Leakage/Charge Sharing. " Domino Logic Design Considerations. ! Logic Comparisons. ! Memory. " Classification. " ROM Memories.

CprE 281: Digital Logic

Lecture 9: Digital Electronics

Appendix A: Digital Logic. Principles of Computer Architecture. Principles of Computer Architecture by M. Murdocca and V. Heuring

Transcription:

Welcome to EECS 150: Components and Design Techniques for Digital Systems! Course staff Randy Katz (Instructor), Jeff Kalvass (dmin Head T), llen Lee/Neil Warren (Project Co-Head Ts) Teaching ssistants: Shah awany, Young Lee, rent Mochizuki, Laura Pelton Readers: Katie Chou! Course web inst.eecs.erkeley.edu/~eecs150 (coming soon)! This week What is logic design? What is digital hardware? What will we be doing in this class? Quick Review Why re We Here?! Implementation basis for modern computing devices Constructing large systems from small components nother view of a computer: controller + datapath! Inherent parallelism in hardware Parallel computation beyond 61C! Counterpoint to software design Furthering our understanding of computation Class administration, overview of course web, and logistics CS 150 - Spring 2007 Lecture #1: Introduction - 1 CS 150 - Spring 2007 Lecture #1: Introduction - 2 We Will Learn in EECS 150! Language of logic design Logic optimization, state, timing, CD tools! Concept of state in digital systems nalogous to variables and program counters in software systems! Hardware system building Datapath + control = digital systems! Hardware system design methodology Hardware description languages: Verilog Tools to simulate design behavior: output = function (inputs) Logic compilers synthesize hardware blocks of our designs Mapping onto programmable hardware (code generation)! Contrast with software design oth map specifications to physical devices oth must be flawless the price we pay for using discrete math What is Logic Design?! What is design? Given problem spec, solve it with available components While meeting quantitative (size, cost, power) and qualitative (beauty, elegance)! What is logic design? Choose digital logic components to perform specified control, data manipulation, or communication function and their interconnection Which logic components to choose? Many implementation technologies (fixed-function components, programmable devices, individual transistors on a chip, etc.) Design optimized/transformed to meet design constraints CS 150 - Spring 2007 Lecture #1: Introduction - 3 CS 150 - Spring 2007 Lecture #1: Introduction - 4 What is Digital Hardware? What is the Current State of Digital Design?! Devices that sense/control wires carrying digital values (physical quantity interpreted as 0 or 1 ) Digital logic: voltage < 0.8v is 0, > 2.0v is 1 Pair of wires where 0 / 1 distinguished by which has higher voltage (differential) Magnetic orientation signifies 0 or 1! Primitive digital hardware devices Logic computation devices (sense and drive) # Two wires both 1 - make another be 1 (ND) # t least one of two wires 1 - make another be 1 (OR) # wire 1 - then make another be 0 (NOT) Memory devices (store) # Store a value # Recall a value previously stored sense CS 150 - Spring 2007 Lecture #1: Introduction - 5 sense ND drive Source: Microsoft Encarta! Changes in industrial practice Larger designs Shorter time to market Cheaper products! Scale $39 DVD Player@mazon.com Pervasive use of computer-aided design tools over hand methods Multiple levels of design representation! Time Emphasis on abstract design representations Programmable rather than fixed function components utomatic synthesis techniques Importance of sound design methodologies! Cost Higher levels of integration Use of simulation to debug designs CS 150 - Spring 2007 Lecture #1: Introduction - 6

Parts Cost: $25 Sales Price: $30! CS 150: Concepts/Skills/bilities! asics of logic design (concepts)! Sound design methodologies (concepts)! Modern specification methods (concepts)! Familiarity with full set of CD tools (skills)! ppreciation for differences and similarities (abilities) in hardware and software design New ability: perform logic design with computer-aided design tools, validating that design via simulation, and mapping its implementation into programmable logic devices; ppreciating the advantages/disadvantages hw vs. sw implementation CS 150 - Spring 2007 Lecture #1: Introduction - 7 CS 150 - Spring 2007 Lecture #1: Introduction - 8 dministrative Details dministrative Details! See course web page for gory details!! No labs or discussion during the first week! T Th 2-3:30 course lecture, F 2-3 lab lecture 1x3 hour lab, 1x1=hour discussion per week No labs or discussions first week!! Grading Midterm Exams (15 Feb, 22 Mar): 20% Final Exam (11 May, 12:30-3:30): 20% Labs (1-5): 15% Project (Videoconferencing, Checkpoints 0-4): 30% Homeworks (10 problem sets): 10% In-class pop quizzes: 5% # First one NOW: Diagnostic Quiz (not graded!)! ll lab lectures, labs, and discussion sections take place in 125 Cory Hall (despite what the course schedule says!)! Lab Lecture Friday @ 2-3 PM! Labs! Discussion Sections CS 150 - Spring 2007 Lecture #1: Introduction - 9 Course Project: Videoconferencing System Tu, W, Th @ 11-2 PM Tu, W, Th @ 5-8 PM 16 student limit per lab Students assigned to cancelled F lab have preference for a new section Wait listed students able to take T Th morning labs or W evening lab have preference Th 4-5 PM, F 10-11, F 11-12 OK to attend any section CS 150 - Spring 2007 Lecture #1: Introduction - 10 Course Project: Videoconferencing System Checkpoint #4! Not quite this but: Video camera capture CRT video display Serial compressed video 2-way transmission between two stations (no audio this semester) Implemented in a Xilinx FPG on the Calinx boards you will use in lab Groups of two Camera Display SDRM Comp Decomp Serial Transmission Decomp Comp SDRM Camera CS 150 - Spring 2007 Lecture #1: Introduction - 11 CS 150 - Spring 2007 Lecture #1: Introduction - 12 Display

Calinx EECS 150 Lab/Project Protoboard Computation: bstract vs. Implementation Video & udio Ports! Computation as a mental exercise (paper, programs) Four 100 Mb Ethernet Ports C 97 Codec & Power mp! vs. implementation with physical devices using voltages to represent logical values! asic units of computation: Video Encoder & Decoder 8 Meg x 32 SDRM Flash Card & Micro-drive Port Quad Ethernet Transceiver Representation: ssignment: Data operations: Control: Sequential statements: Conditionals: Loops: Procedures: 0, 1 on a wire set of wires (e.g., for binary integers) x = y x+y 5 ; ; C if x == 1 then y for ( i = 1 ; i == 10, i++) ; proc(...); ;! Study how these are implemented in hardware and composed into computational structures Prototype rea Xilinx Virtex 2000E Seven Segment LED Displays CS 150 - Spring 2007 Lecture #1: Introduction - 13 CS 150 - Spring 2007 Lecture #1: Introduction - 14 Switches: asic Element of Physical Implementations Switches (cont d)! Implementing a simple circuit (arrow shows action if wire changes to 1 ):! Compose switches into more complex ones (oolean functions): Close switch (if is 1 or asserted) and turn on light bulb () ND! and Open switch (if is 0 or unasserted) and turn off light bulb ()! CS 150 - Spring 2007 Lecture #1: Introduction - 15 OR! or CS 150 - Spring 2007 Lecture #1: Introduction - 16 Switching Networks Transistor Networks! Switch settings! Modern digital systems designed in CMOS Determine whether conducting path exists to light the bulb! To build larger computations Use bulb (output of the network) to set other switches (inputs to another network) MOS: Metal-Oxide on Semiconductor C for complementary: normally-open and normally- switches! MOS transistors act as voltage-controlled switches Similar, though easier to work with, than relays.! Interconnect switching networks Construct larger switching networks, i.e., connect outputs of one network to the inputs of the next. CS 150 - Spring 2007 Lecture #1: Introduction - 17 CS 150 - Spring 2007 Lecture #1: Introduction - 18

MOS Transistors MOS Networks! Three terminals: drain, gate, and source Switch action: if voltage on gate terminal is (some amount) higher/lower than source terminal then conducting path established between drain and source terminals G G 3v X Y what is the relationship between x and y? x y S D S D 0v n-channel open when voltage at G is low closes when: voltage(g) > voltage (S) + p-channel when voltage at G is low opens when: voltage(g) < voltage (S) CS 150 - Spring 2007 Lecture #1: Introduction - 19 CS 150 - Spring 2007 Lecture #1: Introduction - 20 Two Input Networks 3v 0v 3v 0v X X Y Y CS 150 - Spring 2007 Lecture #1: Introduction - 21 what is the relationship between x, y and z? x y z Representation of Digital Designs! Physical devices (transistors, relays)! Switches! Truth tables! oolean algebra! Gates! Waveforms! Finite state behavior! Register-transfer behavior! Concurrent abstract specifications CS 150 - Spring 2007 Lecture #1: Introduction - 22 scope of CS 150 more depth than 61C focus on building systems Mapping Physical to inary World Technology State 0 State 1 Relay logic Circuit Open Circuit Closed CMOS logic 0.0-1. 2.0-3. Transistor transistor logic (TTL) 0.0-0.8 volts 2.0-5. Fiber Optics Light off Light on Dynamic RM Discharged capacitorcharged capacitor Nonvolatile memory (erasable) Trapped electrons No trapped electrons Programmable ROM Fuse blown Fuse intact ubble memory No magnetic bubble ubble present Magnetic disk No flux reversal Flux reversal Compact disc No pit Pit Combinational vs. Sequential Digital Circuits! Simple model of a digital system is a unit with inputs and outputs: inputs system outputs! Combinational means memory-less Digital circuit is combinational if its output values only depend on its inputs CS 150 - Spring 2007 Lecture #1: Introduction - 23 CS 150 - Spring 2007 Lecture #1: Introduction - 24

Combinational Logic Symbols! Common combinational logic systems have standard symbols called logic gates uffer, NOT Sequential Logic! Sequential systems Exhibit behaviors (output values) that depend on current as well as previous inputs! Time response of real circuits are sequential Outputs do not change instantaneously after an input change Why not, and why is it then sequential? ND, NND OR, NOR Easy to implement with CMOS transistors (the switches we have available and use most)! Fundamental abstraction of digital design is to reason (mostly) about steady-state behaviors Examine outputs only after sufficient time has elapsed for the system to make its required changes and settle down CS 150 - Spring 2007 Lecture #1: Introduction - 25 CS 150 - Spring 2007 Lecture #1: Introduction - 26 Synchronous Sequential Digital Systems Distinction: Combinational vs. Sequential Logic! Combinational outputs depend only on current inputs fter sufficient time has elapsed! Sequential circuits have memory Even after waiting for transient activity to finish! Steady-state abstraction: most designers use it when constructing sequential circuits Memory of system is its state Changes in system state only allowed at specific times controlled by external periodic signal (the clock) Clock period is time between state changes sufficiently long so that system reaches steady-state before next state change! Combinational: Input, Wait for clock edge Observe C Wait for another clock edge Observe C again: will stay the same! Sequential: Input, Wait for clock edge Observe C Wait for another clock edge Observe C again: may be different Clock C CS 150 - Spring 2007 Lecture #1: Introduction - 27 CS 150 - Spring 2007 Lecture #1: Introduction - 28 Example: Combinational Design! Calendar subsystem: number of days in a month (to control watch display) Used in controlling the display of a wrist-watch LCD screen Inputs: month, leap year flag Outputs: number of days Implementation in Software integer number_of_days (month, leap_year_flag) { switch (month) { case 1: return (31); case 2: if (leap_year_flag == 1) then return (29) else return (28); case 3: return (31);... case 12: return (31); default: return (0); } } CS 150 - Spring 2007 Lecture #1: Introduction - 29 CS 150 - Spring 2007 Lecture #1: Introduction - 30

Implementation as a Combinational Digital System! Encoding: How many bits for each input/output? inary number for month Four wires for 28, 29, 30, and 31! ehavior: Combinational Truth table specification month leap d28 d29 d30 d31 CS 150 - Spring 2007 Lecture #1: Introduction - 31 month leap d28 d29 d30 d31 0000 0001 0 0 0 1 0010 0 1 0 0 0 0010 1 0 1 0 0 0011 0 0 0 1 0100 0 0 1 0 0101 0 0 0 1 0110 0 0 1 0 0111 0 0 0 1 1000 0 0 0 1 1001 0 0 1 0 1010 0 0 0 1 1011 0 0 1 0 1100 0 0 0 1 1101 111 Combinational Example (cont d)! Truth-table to logic to switches to gates d28 = 1 when month=0010 and leap=0 d28 = m8' m4' m2 m1' leap' symbol for or d31 = 1 when month=0001 or month=0011 or... month=1100 d31 = (m8' m4' m2' m1) + (m8' m4' m2 m1) +... (m8 m4 m2' m1') d31 = can we simplify more? CS 150 - Spring 2007 Lecture #1: Introduction - 32 symbol for and month leap d28 d29 d30 d31 0001 0 0 0 1 0010 0 1 0 0 0 0010 1 0 1 0 0 0011 0 0 0 1 0100 0 0 1 0... 1100 0 0 0 1 1101 111 0000 symbol for not Combinational Example (cont d)! d28 = m8' m4' m2 m1' leap! d29 = m8' m4' m2 m1' leap! d30 = (m8' m4 m2' m1') + (m8' m4 m2 m1') + (m8 m4' m2' m1) + (m8 m4' m2 m1)! d31 = (m8' m4' m2' m1) + (m8' m4' m2 m1) + (m8' m4 m2' m1) + (m8' m4 m2 m1) + (m8 m4' m2' m4') + (m8 m4' m2 m1') + (m8 m4 m2' m1') Combinational Example (cont d)! d28 = m8' m4' m2 m1' leap! d29 = m8' m4' m2 m1' leap! d30 = (m8' m4 m2' m1') + (m8' m4 m2 m1') + (m8 m4' m2' m1) + (m8 m4' m2 m1)! d31 = (m8' m4' m2' m1) + (m8' m4' m2 m1) + (m8' m4 m2' m1) + (m8' m4 m2 m1) + (m8 m4' m2' m4') + (m8 m4' m2 m1') + (m8 m4 m2' m1') CS 150 - Spring 2007 Lecture #1: Introduction - 33 CS 150 - Spring 2007 Lecture #1: Introduction - 34 Example: Sequential Design! Door combination lock: Punch in 3 values in sequence and the door opens; if there is an error the lock must be ; once the door opens the lock must be Inputs: sequence of input values, Outputs: door open/close Memory: must remember combination or always have it available as an input Implementation in Software integer combination_lock ( ) { integer v1, v2, v3; integer error = 0; static integer c[3] = 3, 4, 2; while (!new_value( )); v1 = read_value( ); if (v1!= c[1]) then error = 1; while (!new_value( )); v2 = read_value( ); if (v2!= c[2]) then error = 1; while (!new_value( )); v3 = read_value( ); if (v2!= c[3]) then error = 1; } if (error == 1) then return(0); else return (1); CS 150 - Spring 2007 Lecture #1: Introduction - 35 CS 150 - Spring 2007 Lecture #1: Introduction - 36

Implementation as a Sequential Digital System! Encoding: How many bits per input value? How many values in sequence? How do we know a new input value is entered? How do we represent the states of the system?! ehavior: Clock wire tells us when it s ok to look at inputs (i.e., they have settled after change) Sequential: sequence of values must be entered Sequential: remember if an error occurred Finite-state specification clock new value state open/ bstract Control! Finite state diagram States: 5 states # Represent point in execution of machine # Each state has outputs Transitions: 6 from state to state, 5 self transitions, 1 global # Changes of state occur when clock says it s ok # ased on value of inputs Inputs:, new, results of comparisons Output: open/ C1!=value C2!=value C3!=value S1 S2 S3 OPEN C1=value C2=value C3=value open ERR CS 150 - Spring 2007 Lecture #1: Introduction - 37 CS 150 - Spring 2007 Lecture #1: Introduction - 38 Datapath vs. Control Finite State Machine! Internal structure Data-path # Storage for combination # Comparators Control # Finite state machine controller # Control for data-path # State changes controlled by clock value comparator C1 C2 C3 multiplexer mux control new controller clock! Finite-state machine Refine state diagram to include internal structure mux=c1 ERR not not not S1 S2 S3 OPEN open mux=c2 mux=c3 open/ CS 150 - Spring 2007 Lecture #1: Introduction - 39 CS 150 - Spring 2007 Lecture #1: Introduction - 40 Finite State Machine Encoding! Finite State Machine Generate state table (much like a truth-table) next new state state mux open/ 1 S1 C1 0 0 S1 S1 C1 0 1 0 S1 ERR 0 1 1 S1 S2 C2 0 0 S2 S2 C2 0 1 0 S2 ERR 0 1 1 S2 S3 C3 0 0 S3 S3 C3 0 1 0 S3 ERR 0 1 1 S3 OPEN open 0 OPEN OPEN open 0 ERR ERR CS 150 - Spring 2007 Lecture #1: Introduction - 41 not not not S1 S2 S3 OPEN mux=c1 mux=c2 mux=c3 open ERR! Encode state table State can be: S1, S2, S3, OPEN, or ERR # needs at least 3 bits to encode: 000, 001, 010, 011, 100 # and as many as 5: 00001, 00010, 00100, 01000, 10000 # choose 4 bits: 0001, 0010, 0100, 1000, 0000 Output mux can be: C1, C2, or C3 # needs 2 to 3 bits to encode # choose 3 bits: 001, 010, 100 Output open/ can be: open or # needs 1 or 2 bits to encode # choose 1 bits: 1, 0 CS 150 - Spring 2007 Lecture #1: Introduction - 42

Encoding! Encode state table State can be: S1, S2, S3, OPEN, or ERR # Choose 4 bits: 0001, 0010, 0100, 1000, 0000 Output mux can be: C1, C2, or C3 # Choose 3 bits: 001, 010, 100 Output open/ can be: open or # Choose 1 bits: 1, 0 next new state state mux open/ 1 0001 001 0 0 0 0001 0001 001 0 0 1 0 0001 0000 0 0 1 1 0001 0010 010 0 0 0 0010 0010 010 0 0 1 0 0010 0000 0 0 1 1 0010 0100 100 0 0 0 0100 0100 100 0 0 1 0 0100 0000 0 0 1 1 0100 1000 1 0 1000 1000 1 0 0000 0000 0 CS 150 - Spring 2007 Lecture #1: Introduction - 43 good choice of encoding! mux is identical to last 3 bits of state open/ is identical to first bit of state Controller Implementation! Controller Implementation mux control new controller open/ clock mux control Special circuit element, called a register, for remembering inputs when told to by clock open/ CS 150 - Spring 2007 Lecture #1: Introduction - 44 new comb. logic state clock Design Hierarchy code registers datapath multiplexer comparator system state registers control combinational logic Summary! What the entire course is about Converting solutions to problems into combinational and sequential networks effectively organizing the design hierarchically Doing so with a modern set of design tools that lets us handle large designs effectively Taking advantage of optimization opportunities! Now let s do it again this time we'll take the rest of the semester! register logic switching networks CS 150 - Spring 2007 Lecture #1: Introduction - 45 CS 150 - Spring 2007 Lecture #1: Introduction - 46