Manual Example How to manually convert high-level code into circuit

Slides:



Advertisements
Similar presentations
Lab 4 Design a processor to implement the Fibonacci sequence
Advertisements

Computing Machinery Chapter 7: Register Transfers.
TOPIC : Finite State Machine(FSM) and Flow Tables UNIT 1 : Modeling Module 1.4 : Modeling Sequential circuits.
Computer ArchitectureFall 2007 © October 1st, 2007 Majd F. Sakr CS-447– Computer Architecture.
1 COMP541 Datapaths II Montek Singh Mar 22, 2007.
Midterm Wednesday Chapter 1-3: Number /character representation and conversion Number arithmetic Combinational logic elements and design (DeMorgan’s Law)
Lec 17 Nov 2 Chapter 4 – CPU design data path design control logic design single-cycle CPU performance limitations of single cycle CPU multi-cycle CPU.
Computer ArchitectureFall 2008 © September 17th, 2008 Majd F. Sakr CS-447– Computer Architecture.
Dale & Lewis Chapter 5 Computing components. Let’s design a computer Generic CPU with registers −Program counter (PC) – 5 bits (size of addresses) −Instruction.
Princess Sumaya Univ. Computer Engineering Dept. Chapter 4: IT Students.
Computer Design Basics
Digital Logic Structures: Chapter 3 COMP 2610 Dr. James Money COMP
Introduction to Sequential Logic Design Finite State-Machine Design.
1/8/ Data Path Design & Control Copyright Joanne DeGroat, ECE, OSU1 Processor Data Paths - ALU and Registers Incorporating the ALU into a.
High-Level Synthesis: Creating Custom Circuits from High-Level Code Greg Stitt ECE Department University of Florida.
A four function ALU A 00 ADD B MUX SUB 11 Result AND OR
Computer Science 210 Computer Organization Control Circuits Decoders and Multiplexers.
Computer Architecture Lecture 9 MIPS ALU and Data Paths Ralph Grishman Oct NYU.
1 CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL DEPARTMENT OF ELECTRONICS & COMMUNICATIONS MICRO CODED CONTROLLER - PROF. RAKESH K. JHA.
CPU Overview Computer Organization II 1 February 2009 © McQuain & Ribbens Introduction CPU performance factors – Instruction count n Determined.
CDA 4253 FPGA System Design RTL Design Methodology 1 Hao Zheng Comp Sci & Eng USF.
The System Bus. Conceptual CPU Block Diagram Datapath Regs Buses ALU Control Unit Bus Interface IR etc. PC etc. Control Signals Status Signals PSR System.
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.
3.13 How many output lines will a five-input decoder have?
EEE2243 Digital System Design Chapter 7: RTL Design by Muhazam Mustapha, March 2011.
Chapter 4 From: Dr. Iyad F. Jafar Basic MIPS Architecture: Multi-Cycle Datapath and Control.
High-Level Synthesis Creating Custom Circuits from High-Level Code Hao Zheng Comp Sci & Eng University of South Florida.

Exam-like questions.
Demodulation PWM Signal
Class Exercise 1B.
Digital Electronics Multiplexer
Multiplexer.
More Devices: Control (Making Choices)
Swamynathan.S.M AP/ECE/SNSCT
High-Level Synthesis: Creating Custom Circuits from High-Level Code
Combinational Logic Circuits
Morgan Kaufmann Publishers The Processor
Combinational Functions and Circuits
Morgan Kaufmann Publishers
High-Level Synthesis: Creating Custom Circuits from High-Level Code
Digital Electronics Multiplexer
High-Level Synthesis Creating Custom Circuits from High-Level Code
Pipelining Example Cycle 1 b[0] b[1] b[2] + +
Computer Science 210 Computer Organization
Instructors: Randy H. Katz David A. Patterson
CS/COE0447 Computer Organization & Assembly Language
High-Level Synthesis: Creating Custom Circuits from High-Level Code
High-Level Synthesis: Creating Custom Circuits from High-Level Code
High-Level Synthesis: Creating Custom Circuits from High-Level Code
Design of the Control Unit for One-cycle Instruction Execution
High-Level Synthesis: Creating Custom Circuits from High-Level Code
Processor Data Paths -ALU and Registers
High-Level Synthesis: Creating Custom Circuits from High-Level Code
Rocky K. C. Chang 6 November 2017
High-Level Synthesis: Creating Custom Circuits from High-Level Code
Number Systems and Circuits for Addition
L25 – Datapath ALU.
22 October 3 classes before 2nd exam! Control 1/16/2019
April 3 Fun with MUXes Implementing arbitrary logical functions
Fundamental Concepts Processor fetches one instruction at a time and perform the operation specified. Instructions are fetched from successive memory locations.
Multiple function unit design
Controllers and Datapaths
Digital System Design Combinational Logic
RTL Design Methodology
Levels in Processor Design
Control sequence to add two registers
Alternative datapath (book): Multiple Cycle Datapath
COMS 361 Computer Organization
CSE140: System Design Xinyuan Wang 05/31/2019.
Presentation transcript:

Manual Example How to manually convert high-level code into circuit Steps 1) Build FSM for controller 2) Build datapath based on FSM acc = 0; for (i=0; i < 128; i++) acc += a[i];

Manual Example Build a FSM (controller) Decompose code into states acc = 0; for (i=0; i < 128; i++) acc += a[i]; acc=0, i = 0 if (i < 128) load a[i] Done acc += a[i] i++

Manual Example Build a datapath Allocate resources for each state + + acc=0, i = 0 if (i < 128) load a[i] Done i acc a[i] addr 1 128 1 acc += a[i] + + < + i++ acc = 0; for (i=0; i < 128; i++) acc += a[i];

Manual Example Build a datapath Determine register inputs + + < + In from memory acc=0, i = 0 &a if (i < 128) 2x1 2x1 2x1 load a[i] Done i acc a[i] addr 1 128 1 acc += a[i] + < + + i++ acc = 0; for (i=0; i < 128; i++) acc += a[i];

Manual Example Build a datapath Add outputs + + + < In from memory acc=0, i = 0 &a if (i < 128) 2x1 2x1 2x1 load a[i] Done i acc a[i] addr 1 128 1 acc += a[i] + + < + i++ acc = 0; for (i=0; i < 128; i++) acc += a[i]; acc Memory address

Manual Example Build a datapath Add control signals + + + < In from memory acc=0, i = 0 &a if (i < 128) 2x1 2x1 2x1 load a[i] Done i acc a[i] addr 1 128 1 acc += a[i] + + < + i++ acc = 0; for (i=0; i < 128; i++) acc += a[i]; acc Memory address

Manual Example Combine controller+datapath Controller + + + < In from memory Controller &a 2x1 2x1 2x1 i acc a[i] addr 1 128 1 + + < + acc = 0; for (i=0; i < 128; i++) acc += a[i]; Done Memory Read acc Memory address

Manual Example Alternatives Use one adder (plus muxes) < + In from memory &a 2x1 2x1 2x1 i acc a[i] addr 1 128 < MUX MUX + acc Memory address