Calculator Lab Exercises Bruce Wile, IBM Design Automation Conference Sunday, June 9, 2002.

Slides:



Advertisements
Similar presentations
CPU Structure and Function
Advertisements

Computer Organization, Bus Structure
Part 4: combinational devices
PIPELINE AND VECTOR PROCESSING
Microprocessors.
Computer Organization and Architecture
Reliable Data Processor in VLSI
Calculator 3: Transformation to an ALU! Design specs.
1 Register Transfer &  -operations Computer Organization Computer Architectures Lab REGISTER TRANSFER AND MICROOPERATIONS Register Transfer Language Register.
Chapter 9 Computer Design Basics. 9-2 Datapaths Reminding A digital system (or a simple computer) contains datapath unit and control unit. Datapath: A.
Computer Organization and Architecture
Computer Organization and Architecture
Calculator Lab Exercises Bruce Wile, IBM Design Automation Conference Sunday, June 9, 2002.
ECE 331 – Digital System Design Flip-Flops and Registers (Lecture #18) The slides included herein were taken from the materials accompanying Fundamentals.
Calculator Design n Calculator has 4 functions: è Add è Subtract è Shift left è Shift right n Calculator can handle 4 requests in parallel è All 4 requestors.
Chapter 16 Control Unit Implemntation. A Basic Computer Model.
Lab 1 Calculator Overview CSE Functional Verification SUNY New Paltz.
Pipelining By Toan Nguyen.
Computer Organization and Architecture
Group 5 Alain J. Percial Paula A. Ortiz Francis X. Ruiz.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
Introduction to Computing Systems from bits & gates to C & beyond The Von Neumann Model Basic components Instruction processing.
Fall EE 333 Lillevik 333f06-l7 University of Portland School of Engineering Computer Organization Lecture 7 ALU design MIPS data path.
Cis303a_chapt04.ppt Chapter 4 Processor Technology and Architecture Internal Components CPU Operation (internal components) Control Unit Move data and.
Speeding up of pipeline segments © Fr Dr Jaison Mulerikkal CMI.
Computer Architecture Lecture 2 System Buses. Program Concept Hardwired systems are inflexible General purpose hardware can do different tasks, given.
Simulating a Verilog Description module bigtest;. calc1_top D1(out_data1, out_data2, out_data3, out_data4, out_resp1, out_resp2, out_resp3, out_resp4,
Principles of Linear Pipelining
A four function ALU A 00 ADD B MUX SUB 11 Result AND OR
Chapter One Introduction to Pipelined Processors
Computer Organization CDA 3103 Dr. Hassan Foroosh Dept. of Computer Science UCF © Copyright Hassan Foroosh 2002.
EKT 221 : Chapter 4 Computer Design Basics
PPI-8255.
MIPS ALU. Building from the adder to ALU ALU – Arithmetic Logic Unit, does the major calculations in the computer, including – Add – And – Or – Sub –
Overview von Neumann Architecture Computer component Computer function
GROUP 2 CHAPTER 16 CONTROL UNIT Group Members ๏ Evelio L. Hernandez ๏ Ashwin Soerdien ๏ Andrew Keiper ๏ Hermes Andino.
Different Microprocessors Tamanna Haque Nipa Lecturer Dept. of Computer Science Stamford University Bangladesh.
Fundamentals of Programming Languages-II
PART 4: (1/2) Central Processing Unit (CPU) Basics CHAPTER 12: P ROCESSOR S TRUCTURE AND F UNCTION.
Simple ALU How to perform this C language integer operation in the computer C=A+B; ? The arithmetic/logic unit (ALU) of a processor performs integer arithmetic.
Chapter 10 Control Unit Operation “Controls the operation of the processor”
Elements of Datapath for the fetch and increment The first element we need: a memory unit to store the instructions of a program and supply instructions.
CSE431 L06 Basic MIPS Pipelining.1Irwin, PSU, 2005 MIPS Pipeline Datapath Modifications  What do we need to add/modify in our MIPS datapath? l State registers.
MICROPROCESSOR DETAILS 1 Updated April 2011 ©Paul R. Godin prgodin gmail.com.
MIPS ALU. Exercise – Design a selector? I need a circuit that takes two input bits, a and b, and a selector bit s. The function is that if s=0, f=a. if.
Calculator Overview Functional Verification. Calculator Design n Calculator has 4 functions: Add Subtract Shift left Shift right n Calculator can handle.
CONDITION EVALUATE CPSR Flags. Hazard Checking Logic Checks to see if Rd (destination register) is read from in next 2 commands.
Implementing Combinational
Combinational Circuits
Class Exercise 1B.
CHAPTER 18 Circuits for Arithmetic Operations
Basic Processor Structure/design
Computer Science 210 Computer Organization
Prof. Sirer CS 316 Cornell University
CS/COE0447 Computer Organization & Assembly Language
Computer Science 210 Computer Organization
Computer Architecture
The Processor Lecture 3.2: Building a Datapath with Control
Computer Architecture
Combinational Circuits
CHAPTER 18 Circuits for Arithmetic Operations
MIPS ALU.
Presentation transcript:

Calculator Lab Exercises Bruce Wile, IBM Design Automation Conference Sunday, June 9, 2002

Calc Resources Web site contains: Design source (VHDL and Verilog*) Design Specifications Bug lists and bug disables *Verilog has minimal usage and may contain other bugs

Calc Lab Overview Series of 3 lab exercises Each grows in complexity and builds upon previous design “ Built-in ” bugs give active verification experience Labs were created by IBM for the purpose of verification education Used internal to IBM and at Universities Calc1 in 1994; Calc2 & Calc3 in 2000

Calc1 Function Calculator has 4 functions: Add Subtract Shift left Shift right Calculator can handle 4 requests in parallel All 4 requestors use separate input signals All requestors have equal priority

Calc1 I/O c_clk out_resp2 req1_data_in req1_cmd_in out_data1 req4_cmd_in req3_cmd_in req2_cmd_in req4_data_in req3_data_in req2_data_in reset out_data4 out_data3 out_data2 out_resp4 out_resp3 out_resp1 calc_top (Design Under Test)

Calc1 Port Timing

Calc1 Sample Bugs Adder (bit 18) gives wrong answer Must exercise all bits in adder Overflow not detected Must try edge conditions

Calc2 Function Same commands as Calc1 Each port can now have up to 4 outstanding commands in the system Up to 16 total commands Out-of-order response may occur Depends on backlog in adder and shifter Requires 2 bit “ tag ” identifier for each port

Calc2 Port Timings req1_cmd_in req1_data_in req1_tag_in req_resp1 req_data1 req_tag1

Calc2 Sample Bugs Add and shift commands from same port collide at output Window condition on shared resource Shift command gets lost Buffer overrun “ Garbage ” on the tag bus when not in use All outputs must be monitored all the time

Calc3 Function Design now has 16 internal data registers Arithmetic operands no longer sent by requestor Operand data is read internally from registers Two new commands added to access registers Fetch from register x; Store to register x Two new branch commands Successful branch causes next command from port to be skipped Each requester can still send in up to 4 commands 2 bit tag on request Using same tag simultaneously is not supported

Calc3 Function (Pg 2) Each port requestor is sending an instruction stream Data doesn ’ t accompany command anymore Example: Commands from Port 1: ADD R1, R2 R3 SHL R3, R4 R5 All ordering rules are in the spec.

Priority Dispatch Access Adder ALU Input Stage Array write and output stage Array write and output stage Shifter ALU Input Stage resp1 resp4 resp3 resp2 cmd_in1 cmd_in4 cmd_in3 cmd_in2 Registers Flow Calc3 High Level Diagram

Calc3 Overall Block Diagram

Calc3 Sample Bugs Priority simultaneously dispatches an add and shift command that both write to the same register Window conditions in control logic causes data collision Branch follower writes results to register even when command should be skipped Specification not followed External response correct, but internal data corruption

Lab Exercise Notes Use specifications strategically Give students enough of the spec to get started … but not necessarily the whole spec Require a testplan for calc2 and 3 Testplans evoke spec clarifications New lab exercises encouraged!