Arithmetic Operations

Size: px
Start display at page:

Download "Arithmetic Operations"

Transcription

1 Arithmetic Operations Dongbing Gu School of Computer Science and Electronic Engineering University of Essex UK Spring 2013 D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

2 Outline 1 Introduction 2 Number Representations 3 Arithmetic Operations 4 Multiplication 5 Division 6 Square Root D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

3 Introduction Number representation techniques: signed/unsigned integers, two s complement, fixed point and floating point; Arithmetic operation structures: Addition/Subtraction, Multiplication, Division and Square Root; Complex arithmetic operations; FPGA specific arithmetic: Examples of implementing addition and multiplication in a Xilinx Virtex-II Pro FPGA are given. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

4 Integer Number Representations Number representation is a fundamental issue in embedded systems. A number representation is limited with finite precision. The representation must be sufficiently accurate to handle the real world input and outputs of the system. The representation must also be efficient in terms of its implementation in hardware. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

5 Unsigned Integers - Positive Values Only Unsigned integers can be used to represent non-negative numbers. For example using 8 bits we can represent from 0 to 255: Integer Value Binary Representation D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

6 2 s Complement A more sensible number system for +ve to ve numbers is 2 s complement which has only one representation of 0 (zero): Positive Numbers Integer Binary Invert all bits and ADD 1 Negative Numbers Integer Binary The 9th bit generated for 0 can be ignored. Note that -128 can be represented but +128 cannot D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

7 Non-Integer Values What about non-integer values? In DSP systems, we often want to represent signals such as this sine wave: 2 s complement is not much use, e.g. using just two bits gives values - 2, -1, 0, 1 we end up with a large quantization error: Clearly what we need is a representation that can cope with non-integer values. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

8 Fixed-point Binary Numbers We can now define what is known as a fixed-point number: a number with a fixed position for the binary point. Bits on the left of the binary point are termed integer bits, and bits on the right of the binary point are termed fractional bits, for example: aaa.bbbbb 3 integer bits, 5 fractional bits This number behaves in a similar way to signed integers: D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

9 Fixed-point Quantization Consider again the number format: aaa.bbbbb 3 integer bits, 5 fractional bits Numbers between -4 and can be represented, in steps of As there are 8 bits, there are 2 8 = 256 different values. Revisiting our sine wave example, using this fixed-point format: Looks much better. We must always take into account the quantization when using fixed point - it will be +/- 1/2 of the LSB (least significant bit). D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

10 Truncation In binary, truncation is the process of simply removing bits. This is usually done in a constrained way to convert from a larger to a smaller binary wordlength; Usually truncation is performed on least significant bits (LSBs): The net effect is that we lose precision. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

11 Rounding Rounding is a more accurate, but more complicated technique that requires an addition operation than the truncation. This process is equivalent to the technique for decimal rounding, i.e. to go from 7.89 to one decimal place is accomplished by adding 0.05 then truncating to 7.9. Note that rounding is not free it requires one extra full adder. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

12 Addition A couple of examples of integer arithmetic: The most important point to note is that when a binary addition is performed, the interpretation of the binary strings as either unsigned integers or 2 s complement integers is valid - the additions are correct either way. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

13 Overflow An example of an addition which overflows: The result requires 9 bits from two 8-bit operands. If the ninth bit isn t present, the result becomes = 31, which is incorrect. Overflow has occurred. It is often not acceptable to allow the output width to grow as in the example above. For example, a filter with 128 unit weights has 128 consecutive additions and therefore potentially requires 7 extra bits at the output. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

14 Negative overflow We can get negative overflows as well: In this case, we lose the 9th bit (red) and the result wraps round to positive values: = 47. The solution to overflow, both negative and positive, is to ensure that the results of operations will not exceed a certain pre-defined number of bits. For example, with 8 bit operands, we might allow 16 bits, regardless of how many consecutive additions we perform. This can be difficult to achieve in practice, so overflow is a problem. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

15 Saturation One method to reduce the effects of overflow is to use a technique known as saturation: When overflow is detected, the result is set to the largest possible value. Generally available in DSP processors - could be done on FPGA but requires additional logic. Very useful technique for dealing with the potential for overflow in, e.g., adaptive filtering algorithms. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

16 Xilinx Virtex-II Pro addition D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

17 Fixed point addition First some examples of decimal non-integer addition: Now in fixed point binary (4 bits integer, 3 bits fractional): Note that for large operands, an extra bit may be required. Care must be taken to interpret the binary point - it must stay in the same location w.r.t. the LSB - this means a change of location w.r.t. the MSB. Subtraction follows the same binary arithmetic as for integers. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

18 Multiplication in decimal Starting with an example in decimal: Note that we do = 1070 and then add to it the result of = 856 right-shifted by one column. For each additional column in the second operand, we shift the multiplication of that column with the first operand by another place. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

19 Structure for multiplication This example shows a four-bit multiplication: The AND gate connected to a and b performs the selection for each bit. The diagonal structure of the multiplier effectively inserts zeros in the appropriate columns and shifts the operands right. Note that this structure is not for signed 2 s complement (needs modified)! D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

20 Xilinx Virtex-II Pro Slice multiplication D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

21 Xilinx Virtex-II Pro multiplication As we can do one bit of a multiply in a slice, we can do an N-bit by 2-bit multiply in N/2 slices. In the example above, we have 4-bit by 2-bit in 2 slices. Perhaps the most important thing to note is that this is very complicated! Tools are designed to automate the process of connecting the components within a slice in order to perform efficient operations. But it is important to note that the tools aren t infinitely clever, and sometimes we need to bear in mind the structure of the FPGA in order to generate an efficient design. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

22 ROM-based multipliers Consider a ROM multiplier with 8 bit inputs: 65,536 8-bit locations are required. If input B is constant and B=k only 256 locations are accessed. This constitutes a Constant Coefficient Multiplier (KCM). D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

23 2 s complement multiplication For one negative and one positive operand just remember to sign extend the negative operand. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

24 2s complement multiplication For both operands negative, subtract the last partial product. We use the trick of inverting (negating and adding 1) the last partial product and adding it rather than subtracting. Of course, if both operands are positive, just use the unsigned technique! D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

25 Fixed Point multiplication Fixed point multiplication is no more awkward than integer multiplication. Again we just need to remember to interpret the position of the binary point correctly D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

26 On-chip multipliers Many Xilinx FPGAs have various numbers of on-chip multipliers (from 4 to more than 500). These are in hardware on the ASIC, not actually in the user FPGA area, and therefore are permanently available, and they use no slices. They also consume less power than a slice-based equivalent. A and B are 18-bit input operands, and P is the 36-bit product. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

27 Division A binary division example is given below. Note that each stage computes an addition or subtraction of the divisor A. The quotient is made up of the carry bits from each addition/subtraction. If the quotient bit is a 0, the next computation is an addition, and if it is a 1, the divisor is subtracted. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

28 Division 6 bit non-restoring division array: Note that each cell can perform either addition or subtraction as shown in an earlier slide either S in + B in or S in B in can be selected. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

29 The Problem With Division An important aspect of division is to note that the quotient is generated MSB first - unlike multiplication or addition/subtraction! This has implications for the rest of the system. It is unlikely that the quotient can be passed on to the next stage until all the bits are computed - hence slowing down the system! Also, an N by N array has another problem - ripple through adders. Note that we must wait for N full adder delays before the next row can begin its calculations. Unlike multiplication there is no way around this, and as result division is always slower than multiply even when performed on a parallel array - a N by N multiply will run faster than a N by N divide! D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

30 Pipelining The Division Array The division array shown earlier can be pipelined to increase throughput. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

31 Square Root 6 bit non-restoring square root array: D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

32 Square Root - An Alternative Approach Unfortunately the square root algorithm suffers from the same problems as division although not to the same extent. These are: The result is generated MSB first. Each row has to wait longer and longer for the data it needs from the previous row. A solution is to use memory to store the pre-computed square root values. The input is then used as an address to look up the answer. This can be fast but if the input wordlength is large this approach quickly becomes unfeasible. Another approach is to use memory to look up a partial solution and then use an iterative approach like the Newton-Raphson algorithm to find the final solution. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

33 Square Root and Divide - Pythagoras The main appearance of square roots and divides is in advanced adaptive algorithms such as QR using given rotations. For these techniques we often find equations of the form: cos(θ) = x x 2 + y 2 and sin(θ) = y x 2 + y 2 So in fact we actually have to perform two squares, a divide and a square root. (Note that squaring is simpler than multiply!). There are a number of iterative techniques that can be used to calculate square root. (However these routines invariably require multiplies and divides and do not converge in a fixed time.) D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

34 Conclusions Number representation techniques have been presented. Different methods, their advantages and disadvantages have been introduced; Basic and advanced operations and their implementation in hardware were reviewed; Special attention has been paid to highly effective implementation of addition and multiplication in Xilinx Virtex-II Pro FPGAs; A current generation of DSP algorithms and architectures (QR, least squares, MIMOs) require square root and divide calculations - hence knowledge and support of how to derive these is very important. D. Gu (Univ. of Essex) Arithmetic Operations Spring / 34

Binary Division. Decimal Division. Hardware for Binary Division. Simple 16-bit Divider Circuit

Binary Division. Decimal Division. Hardware for Binary Division. Simple 16-bit Divider Circuit Decimal Division Remember 4th grade long division? 43 // quotient 12 521 // divisor dividend -480 41-36 5 // remainder Shift divisor left (multiply by 10) until MSB lines up with dividend s Repeat until

More information

Fixed-Point Arithmetic

Fixed-Point Arithmetic Fixed-Point Arithmetic Fixed-Point Notation A K-bit fixed-point number can be interpreted as either: an integer (i.e., 20645) a fractional number (i.e., 0.75) 2 1 Integer Fixed-Point Representation N-bit

More information

Computer Organization and Architecture

Computer Organization and Architecture Computer Organization and Architecture Chapter 9 Computer Arithmetic Arithmetic & Logic Unit Performs arithmetic and logic operations on data everything that we think of as computing. Everything else in

More information

Chapter 4. Computer Arithmetic

Chapter 4. Computer Arithmetic Chapter 4 Computer Arithmetic 4.1 Number Systems A number system uses a specific radix (base). Radices that are power of 2 are widely used in digital systems. These radices include binary (base 2), quaternary

More information

Data Representation Binary Numbers

Data Representation Binary Numbers Data Representation Binary Numbers Integer Conversion Between Decimal and Binary Bases Task accomplished by Repeated division of decimal number by 2 (integer part of decimal number) Repeated multiplication

More information

Integer multiplication

Integer multiplication Integer multiplication Suppose we have two unsigned integers, A and B, and we wish to compute their product. Let A be the multiplicand and B the multiplier: A n 1... A 1 A 0 multiplicand B n 1... B 1 B

More information

By the end of the lecture, you should be able to:

By the end of the lecture, you should be able to: Extra Lecture: Number Systems Objectives - To understand: Base of number systems: decimal, binary, octal and hexadecimal Textual information stored as ASCII Binary addition/subtraction, multiplication

More information

Quiz for Chapter 3 Arithmetic for Computers 3.10

Quiz for Chapter 3 Arithmetic for Computers 3.10 Date: Quiz for Chapter 3 Arithmetic for Computers 3.10 Not all questions are of equal difficulty. Please review the entire quiz first and then budget your time carefully. Name: Course: Solutions in RED

More information

COMPUTER ARCHITECTURE IT0205

COMPUTER ARCHITECTURE IT0205 COMPUTER ARCHITECTURE IT0205 M.Thenmozhi/Kayalvizhi Jayavel/M.B.Panbu Asst.Prof.(Sr.G)/Asst.Prof.(Sr.G)/Asst.Prof.(O.G) Department of IT SRM University, Kattankulathur 1 Disclaimer The contents of the

More information

Here 4 is the least significant digit (LSD) and 2 is the most significant digit (MSD).

Here 4 is the least significant digit (LSD) and 2 is the most significant digit (MSD). Number System Introduction Number systems provide the basis for all operations in information processing systems. In a number system the information is divided into a group of symbols; for example, 26

More information

Introduction to Xilinx System Generator Part II. Evan Everett and Michael Wu ELEC 433 - Spring 2013

Introduction to Xilinx System Generator Part II. Evan Everett and Michael Wu ELEC 433 - Spring 2013 Introduction to Xilinx System Generator Part II Evan Everett and Michael Wu ELEC 433 - Spring 2013 Outline Introduction to FPGAs and Xilinx System Generator System Generator basics Fixed point data representation

More information

Digital Logic. The Binary System is a way of writing numbers using only the digits 0 and 1. This is the method used by the (digital) computer.

Digital Logic. The Binary System is a way of writing numbers using only the digits 0 and 1. This is the method used by the (digital) computer. Digital Logic 1 Data Representations 1.1 The Binary System The Binary System is a way of writing numbers using only the digits 0 and 1. This is the method used by the (digital) computer. The system we

More information

Lecture 8: Binary Multiplication & Division

Lecture 8: Binary Multiplication & Division Lecture 8: Binary Multiplication & Division Today s topics: Addition/Subtraction Multiplication Division Reminder: get started early on assignment 3 1 2 s Complement Signed Numbers two = 0 ten 0001 two

More information

Fixed-point Representation of Numbers

Fixed-point Representation of Numbers Fixed-point Representation of Numbers Fixed Point Representation of Numbers Sign-and-magnitude representation Two s complement representation Two s complement binary arithmetic Excess code representation

More information

Chapter 6 Digital Arithmetic: Operations & Circuits

Chapter 6 Digital Arithmetic: Operations & Circuits Chapter 6 Digital Arithmetic: Operations & Circuits Chapter 6 Objectives Selected areas covered in this chapter: Binary addition, subtraction, multiplication, division. Differences between binary addition

More information

Binary Representation and Computer Arithmetic

Binary Representation and Computer Arithmetic Binary Representation and Computer Arithmetic The decimal system of counting and keeping track of items was first created by Hindu mathematicians in India in A.D. 4. Since it involved the use of fingers

More information

Integer Numbers. Digital Signal Processor Data Path. Characteristics of Two Complements Representation. Integer Three Bit Representation 000

Integer Numbers. Digital Signal Processor Data Path. Characteristics of Two Complements Representation. Integer Three Bit Representation 000 Integer Numbers Twos Complement Representation Digital Signal Processor Data Path Ingo Sander Ingo@imit.kth.se B=b N-1 b N-2...b 1 b 0 where b i {0,1} b N-1 b N-2... b 1 b 0 Sign Bit Decimal Value D(B)=-b

More information

1 Number System (Lecture 1 and 2 supplement)

1 Number System (Lecture 1 and 2 supplement) 1 Number System (Lecture 1 and 2 supplement) By Dr. Taek Kwon Many different number systems perhaps from the prehistoric era have been developed and evolved. Among them, binary number system is one of

More information

Introduction Number Systems and Conversion

Introduction Number Systems and Conversion UNIT 1 Introduction Number Systems and Conversion Objectives 1. Introduction The first part of this unit introduces the material to be studied later. In addition to getting an overview of the material

More information

Decimal-to-Binary Conversion. Computer & Microprocessor Architecture HCA103. Repeated Division-by-2 Method. Repeated Multiplication-by-2 Method

Decimal-to-Binary Conversion. Computer & Microprocessor Architecture HCA103. Repeated Division-by-2 Method. Repeated Multiplication-by-2 Method Decimal-to-Binary Conversion Computer & Microprocessor Architecture HCA103 Computer Arithmetic Algorithm 1 Step 1: Break the number in two parts: Whole number and fraction part. Step 2: Repeated Division-by-2

More information

D r = d p-1 d p-2.. d 1 d 0.d -1 d -2. D -n. EECC341 - Shaaban

D r = d p-1 d p-2.. d 1 d 0.d -1 d -2. D -n. EECC341 - Shaaban Positional Number Systems A number system consists of an order set of symbols (digits) with relations defined for +,-,*, / The radix (or base) of the number system is the total number of digits allowed

More information

This Unit: Floating Point Arithmetic. CIS 371 Computer Organization and Design. Readings. Floating Point (FP) Numbers

This Unit: Floating Point Arithmetic. CIS 371 Computer Organization and Design. Readings. Floating Point (FP) Numbers This Unit: Floating Point Arithmetic CIS 371 Computer Organization and Design Unit 7: Floating Point App App App System software Mem CPU I/O Formats Precision and range IEEE 754 standard Operations Addition

More information

A New Non-Restoring Square Root Algorithm and Its VLSI Implementations

A New Non-Restoring Square Root Algorithm and Its VLSI Implementations International Conference on Computer Design (ICCD 96), October 7 9, 996, Austin, Texas, USA A New Non-Restoring Square Root Algorithm and Its VLSI Implementations Yamin Li and Wanming Chu Computer Architecture

More information

Lecture 7: Signed Numbers & Arithmetic Circuits. BCD (Binary Coded Decimal) Points Addressed in this Lecture

Lecture 7: Signed Numbers & Arithmetic Circuits. BCD (Binary Coded Decimal) Points Addressed in this Lecture Points ddressed in this Lecture Lecture 7: Signed Numbers rithmetic Circuits Professor Peter Cheung Department of EEE, Imperial College London (Floyd 2.5-2.7, 6.1-6.7) (Tocci 6.1-6.11, 9.1-9.2, 9.4) Representing

More information

Lecture 2. Binary and Hexadecimal Numbers

Lecture 2. Binary and Hexadecimal Numbers Lecture 2 Binary and Hexadecimal Numbers Purpose: Review binary and hexadecimal number representations Convert directly from one base to another base Review addition and subtraction in binary representations

More information

Computer Science 281 Binary and Hexadecimal Review

Computer Science 281 Binary and Hexadecimal Review Computer Science 281 Binary and Hexadecimal Review 1 The Binary Number System Computers store everything, both instructions and data, by using many, many transistors, each of which can be in one of two

More information

198:211 Computer Architecture

198:211 Computer Architecture 198:211 Computer Architecture Topics: Lecture 8 & 9 Fall 2012 Integer Arithmetic Chapter 2.3 Overflow Integer Multiplication and Division Integer Arithmetic In a computer, all numbers are represented with

More information

Binary Adders: Half Adders and Full Adders

Binary Adders: Half Adders and Full Adders Binary Adders: Half Adders and Full Adders In this set of slides, we present the two basic types of adders: 1. Half adders, and 2. Full adders. Each type of adder functions to add two binary bits. In order

More information

Number Representation

Number Representation Number Representation COMP375 Computer Organization and darchitecture t How do we represent data in a computer? At the lowest level, a computer is an electronic machine. works by controlling the flow of

More information

CPE 323 Data Types and Number Representations

CPE 323 Data Types and Number Representations CPE 323 Data Types and Number Representations Aleksandar Milenkovic Numeral Systems: Decimal, binary, hexadecimal, and octal We ordinarily represent numbers using decimal numeral system that has 10 as

More information

Integer Numbers. The Number Bases of Integers Textbook Chapter 3

Integer Numbers. The Number Bases of Integers Textbook Chapter 3 Integer Numbers The Number Bases of Integers Textbook Chapter 3 Number Systems Unary, or marks: /////// = 7 /////// + ////// = ///////////// Grouping lead to Roman Numerals: VII + V = VVII = XII Better:

More information

Arithmetic Processing. Basic Fixed Point NRS. Number Representation. Digit Values. Rule of Interpretation CS/EE 5830/6830 VLSI ARCHITECTURE

Arithmetic Processing. Basic Fixed Point NRS. Number Representation. Digit Values. Rule of Interpretation CS/EE 5830/6830 VLSI ARCHITECTURE CS/EE 5830/6830 VLSI ARCHITECTURE Chapter 1 Basic Number Representations and Arithmetic Algorithms Arithmetic Processing AP = (operands, operation, results, conditions, singularities) Operands are: Set

More information

Floating Point Numbers. Question. Learning Outcomes. Number Representation - recap. Do you have your laptop here?

Floating Point Numbers. Question. Learning Outcomes. Number Representation - recap. Do you have your laptop here? Question Floating Point Numbers 6.626068 x 10-34 Do you have your laptop here? A yes B no C what s a laptop D where is here? E none of the above Eddie Edwards eedwards@doc.ic.ac.uk https://www.doc.ic.ac.uk/~eedwards/compsys

More information

Numeral System and Its Importance ROOM: B405

Numeral System and Its Importance ROOM: B405 Numeral System and Its Importance HONG@IS.NAIST.JP ROOM: B405 Contents Number System Introduction Number systems used by human Number systems used by computer Number System Conversion Signed Number Representation

More information

TECH. Arithmetic & Logic Unit. CH09 Computer Arithmetic. Number Systems. ALU Inputs and Outputs. Binary Number System

TECH. Arithmetic & Logic Unit. CH09 Computer Arithmetic. Number Systems. ALU Inputs and Outputs. Binary Number System CH09 Computer Arithmetic CPU combines of ALU and Control Unit, this chapter discusses ALU The Arithmetic and Logic Unit (ALU) Number Systems Integer Representation Integer Arithmetic Floating-Point Representation

More information

CHAPTER THREE. 3.1 Binary Addition. Binary Math and Signed Representations

CHAPTER THREE. 3.1 Binary Addition. Binary Math and Signed Representations CHAPTER THREE Binary Math and Signed Representations Representing numbers with bits is one thing. Doing something with them is an entirely different matter. This chapter discusses some of the basic mathematical

More information

Logic and Computer Design Fundamentals Adders and Multiplication

Logic and Computer Design Fundamentals Adders and Multiplication Logic and Computer Design Fundamentals Adders and Multiplication 24 Pearson Education, Inc. Overview Iterative combinational circuits Binary adders Half and full adders Ripple carry and carry lookahead

More information

Arithmetic Circuits Addition, Subtraction, & Multiplication

Arithmetic Circuits Addition, Subtraction, & Multiplication Arithmetic Circuits Addition, Subtraction, & Multiplication The adder is another classic design example which we are obliged look at. Simple decimal arithmetic is something which we rarely give a second

More information

Binary Numbers Again. Binary Arithmetic, Subtraction. Binary, Decimal addition

Binary Numbers Again. Binary Arithmetic, Subtraction. Binary, Decimal addition Binary Numbers Again Recall than N binary digits (N bits) can represent unsigned integers from 0 to 2 N -1. 4 bits = 0 to 15 8 bits = 0 to 255 16 bits = 0 to 65535 Besides simply representation, we would

More information

Divide: Paper & Pencil. Computer Architecture ALU Design : Division and Floating Point. Divide algorithm. DIVIDE HARDWARE Version 1

Divide: Paper & Pencil. Computer Architecture ALU Design : Division and Floating Point. Divide algorithm. DIVIDE HARDWARE Version 1 Divide: Paper & Pencil Computer Architecture ALU Design : Division and Floating Point 1001 Quotient Divisor 1000 1001010 Dividend 1000 10 101 1010 1000 10 (or Modulo result) See how big a number can be

More information

Review of Number Systems Binary, Octal, and Hexadecimal Numbers and Two's Complement

Review of Number Systems Binary, Octal, and Hexadecimal Numbers and Two's Complement Review of Number Systems Binary, Octal, and Hexadecimal Numbers and Two's Complement Topic 1: Binary, Octal, and Hexadecimal Numbers The number system we generally use in our everyday lives is a decimal

More information

Fixed-Point Arithmetic in Impulse C

Fixed-Point Arithmetic in Impulse C Application Note Fixed-Point Arithmetic in Impulse C Ralph Bodenner, Senior Applications Engineer Impulse Accelerated Technologies, Inc. Copyright 2005 Impulse Accelerated Technologies, Inc. Overview This

More information

NUMBERING SYSTEMS C HAPTER 1.0 INTRODUCTION 1.1 A REVIEW OF THE DECIMAL SYSTEM 1.2 BINARY NUMBERING SYSTEM

NUMBERING SYSTEMS C HAPTER 1.0 INTRODUCTION 1.1 A REVIEW OF THE DECIMAL SYSTEM 1.2 BINARY NUMBERING SYSTEM 12 Digital Principles Switching Theory C HAPTER 1 NUMBERING SYSTEMS 1.0 INTRODUCTION Inside today s computers, data is represented as 1 s and 0 s. These 1 s and 0 s might be stored magnetically on a disk,

More information

Simulation & Synthesis Using VHDL

Simulation & Synthesis Using VHDL Floating Point Multipliers: Simulation & Synthesis Using VHDL By: Raj Kumar Singh - B.E. (Hons.) Electrical & Electronics Shivananda Reddy - B.E. (Hons.) Electrical & Electronics BITS, PILANI Outline Introduction

More information

Presented By: Ms. Poonam Anand

Presented By: Ms. Poonam Anand Presented By: Ms. Poonam Anand Know the different types of numbers Describe positional notation Convert numbers in other bases to base 10 Convert base 10 numbers into numbers of other bases Describe the

More information

Switching Circuits & Logic Design

Switching Circuits & Logic Design Switching Circuits & Logic Design Jie-Hong Roland Jiang 江介宏 Department of Electrical Engineering National Taiwan University Fall 2013 1 1 Number Systems and Conversion Babylonian number system (3100 B.C.)

More information

Arithmetic. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. See P&H 2.4 (signed), 2.5, 2.6, C.6, and Appendix C.

Arithmetic. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. See P&H 2.4 (signed), 2.5, 2.6, C.6, and Appendix C. Arithmetic Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University See P&H 2.4 (signed), 2.5, 2.6, C.6, and Appendix C.6 Goals for today Binary (Arithmetic) Operations One-bit and four-bit

More information

Today. Binary addition Representing negative numbers. Andrew H. Fagg: Embedded Real- Time Systems: Binary Arithmetic

Today. Binary addition Representing negative numbers. Andrew H. Fagg: Embedded Real- Time Systems: Binary Arithmetic Today Binary addition Representing negative numbers 2 Binary Addition Consider the following binary numbers: 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 1 How do we add these numbers? 3 Binary Addition 0 0 1 0 0 1 1

More information

CDA 3200 Digital Systems. Instructor: Dr. Janusz Zalewski Developed by: Dr. Dahai Guo Spring 2012

CDA 3200 Digital Systems. Instructor: Dr. Janusz Zalewski Developed by: Dr. Dahai Guo Spring 2012 CDA 3200 Digital Systems Instructor: Dr. Janusz Zalewski Developed by: Dr. Dahai Guo Spring 2012 Outline Data Representation Binary Codes Why 6-3-1-1 and Excess-3? Data Representation (1/2) Each numbering

More information

Bits, Data Types, and Operations. University of Texas at Austin CS310H - Computer Organization Spring 2010 Don Fussell

Bits, Data Types, and Operations. University of Texas at Austin CS310H - Computer Organization Spring 2010 Don Fussell Bits, Data Types, and Operations University of Texas at Austin CS3H - Computer Organization Spring 2 Don Fussell How do we represent data in a computer? At the lowest level, a computer is an electronic

More information

Chapter 4. Arithmetic for Computers

Chapter 4. Arithmetic for Computers Chapter 4 Arithmetic for Computers Arithmetic Where we've been: Performance (seconds, cycles, instructions) What's up ahead: Implementing the Architecture operation a b 32 32 ALU 32 result 2 Constructing

More information

Design of the ALU Adder, Logic, and the Control Unit

Design of the ALU Adder, Logic, and the Control Unit Design of the ALU Adder, Logic, and the Control Unit This lecture will finish our look at the CPU and ALU of the computer. Remember: 1. The ALU performs the arithmetic and logic operations. 2. The control

More information

The string of digits 101101 in the binary number system represents the quantity

The string of digits 101101 in the binary number system represents the quantity Data Representation Section 3.1 Data Types Registers contain either data or control information Control information is a bit or group of bits used to specify the sequence of command signals needed for

More information

Numbers represented using groups of bits (1s and 0s) are said to be BINARY NUMBERS. Binary numbers are said to be in base 2.

Numbers represented using groups of bits (1s and 0s) are said to be BINARY NUMBERS. Binary numbers are said to be in base 2. DATA REPRESENTATION All data used by computers is in code form, based on the two digits 0 and 1. This is so, in order to reflect the two-state components of which these digital systems are made. Numbers

More information

Integer and Real Numbers Representation in Microprocessor Techniques

Integer and Real Numbers Representation in Microprocessor Techniques Brno University of Technology Integer and Real Numbers Representation in Microprocessor Techniques Microprocessor Techniques and Embedded Systems Lecture 1 Dr. Tomas Fryza 30-Sep-2011 Contents Numerical

More information

This 3-digit ASCII string could also be calculated as n = (Data[2]-0x30) +10*((Data[1]-0x30)+10*(Data[0]-0x30));

This 3-digit ASCII string could also be calculated as n = (Data[2]-0x30) +10*((Data[1]-0x30)+10*(Data[0]-0x30)); Introduction to Embedded Microcomputer Systems Lecture 5.1 2.9. Conversions ASCII to binary n = 100*(Data[0]-0x30) + 10*(Data[1]-0x30) + (Data[2]-0x30); This 3-digit ASCII string could also be calculated

More information

COMPUTER ARCHITECTURE. ALU (2) - Integer Arithmetic

COMPUTER ARCHITECTURE. ALU (2) - Integer Arithmetic HUMBOLDT-UNIVERSITÄT ZU BERLIN INSTITUT FÜR INFORMATIK COMPUTER ARCHITECTURE Lecture 11 ALU (2) - Integer Arithmetic Sommersemester 21 Leitung: Prof. Dr. Miroslaw Malek www.informatik.hu-berlin.de/rok/ca

More information

Implementation of Modified Booth Algorithm (Radix 4) and its Comparison with Booth Algorithm (Radix-2)

Implementation of Modified Booth Algorithm (Radix 4) and its Comparison with Booth Algorithm (Radix-2) Advance in Electronic and Electric Engineering. ISSN 2231-1297, Volume 3, Number 6 (2013), pp. 683-690 Research India Publications http://www.ripublication.com/aeee.htm Implementation of Modified Booth

More information

Fixed-point Mathematics

Fixed-point Mathematics Appendix A Fixed-point Mathematics In this appendix, we will introduce the notation and operations that we use for fixed-point mathematics. For some platforms, e.g., low-cost mobile phones, fixed-point

More information

1 Basic Computing Concepts (4) Data Representations

1 Basic Computing Concepts (4) Data Representations 1 Basic Computing Concepts (4) Data Representations The Binary System The Binary System is a way of writing numbers using only the digits 0 and 1. This is the method used by the (digital) computer. The

More information

16-Tap, 8-Bit FIR Filter Applications Guide

16-Tap, 8-Bit FIR Filter Applications Guide 16-Tap, 8-Bit FIR Filter Applications Guide November 21, 1994 Application Note BY G GOSLIN & BRUCE NEWGARD Summary This application note describes the functionality and integration of a 16-Tap, 8-Bit Finite

More information

Number Systems and. Data Representation

Number Systems and. Data Representation Number Systems and Data Representation 1 Lecture Outline Number Systems Binary, Octal, Hexadecimal Representation of characters using codes Representation of Numbers Integer, Floating Point, Binary Coded

More information

Binary Numbering Systems

Binary Numbering Systems Binary Numbering Systems April 1997, ver. 1 Application Note 83 Introduction Binary numbering systems are used in virtually all digital systems, including digital signal processing (DSP), networking, and

More information

Digital Electronics. 1.0 Introduction to Number Systems. Module

Digital Electronics. 1.0 Introduction to Number Systems.  Module Module 1 www.learnabout-electronics.org Digital Electronics 1.0 Introduction to What you ll learn in Module 1 Section 1.0. Recognise different number systems and their uses. Section 1.1 in Electronics.

More information

BINARY-CODED DECIMAL (BCD)

BINARY-CODED DECIMAL (BCD) BINARY-CODED DECIMAL (BCD) Definition The binary-coded decimal (BCD) is an encoding for decimal numbers in which each digit is represented by its own binary sequence. Basics In computing and electronic

More information

Unit 2: Number Systems, Codes and Logic Functions

Unit 2: Number Systems, Codes and Logic Functions Unit 2: Number Systems, Codes and Logic Functions Introduction A digital computer manipulates discrete elements of data and that these elements are represented in the binary forms. Operands used for calculations

More information

Chapter II Binary Data Representation

Chapter II Binary Data Representation Chapter II Binary Data Representation The atomic unit of data in computer systems is the bit, which is actually an acronym that stands for BInary digit. It can hold only 2 values or states: 0 or 1, true

More information

Recall that in base 10, the digits of a number are just coefficients of powers of the base (10):

Recall that in base 10, the digits of a number are just coefficients of powers of the base (10): Binary Number System 1 Base 10 digits: 0 1 2 3 4 5 6 7 8 9 Base 2 digits: 0 1 Recall that in base 10, the digits of a number are just coefficients of powers of the base (10): 417 = 4 * 10 2 + 1 * 10 1

More information

1. Number Representation

1. Number Representation CSEE 3827: Fundamentals of Computer Systems, Spring 2011 1. Number Representation Prof. Martha Kim (martha@cs.columbia.edu) Web: http://www.cs.columbia.edu/~martha/courses/3827/sp11/ Contents (H&H 1.3-1.4,

More information

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Digital Computer Arithmetic ECE 666

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Digital Computer Arithmetic ECE 666 UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering Digital Computer Arithmetic ECE 666 Part 3 Sequential Algorithms for Multiplication and Division Israel Koren ECE666/Koren Part.3.1

More information

B.1 DIVISION FUNDAMENTALS

B.1 DIVISION FUNDAMENTALS Division Exceptions B B.1 DIVISION FUNDAMENTALS The ADSP-2100 family processors instruction set contains two instructions for implementing a non-restoring divide algorithm. These instructions take as their

More information

Verilog Review and Fixed Point Arithmetics. Overview

Verilog Review and Fixed Point Arithmetics. Overview Verilog Review and Fixed Point Arithmetics CSE4210 Winter 2012 Mokhtar Aboelaze based on slides by Dr. Shoab A. Khan Overview Floating and Fixed Point Arithmetic System Design Flow Requirements and Specifications

More information

Signed integers: 2 s complement. Sign extension. Using Signed Arithmetic in Verilog 42 = = Arithmetic Circuits & Multipliers

Signed integers: 2 s complement. Sign extension. Using Signed Arithmetic in Verilog 42 = = Arithmetic Circuits & Multipliers Signed integers: 2 s complement N bits -2 N- 2 N-2 2 3 2 2 2 2 Arithmetic Circuits & Multipliers Addition, subtraction Performance issues -- ripple carry -- carry bypass -- carry skip -- carry lookahead

More information

Lecture 2: Number System

Lecture 2: Number System Lecture 2: Number System Today s Topics Review binary and hexadecimal number representation Convert directly from one base to another base Review addition and subtraction in binary representation Determine

More information

An Efficient RNS to Binary Converter Using the Moduli Set {2n + 1, 2n, 2n 1}

An Efficient RNS to Binary Converter Using the Moduli Set {2n + 1, 2n, 2n 1} An Efficient RNS to Binary Converter Using the oduli Set {n + 1, n, n 1} Kazeem Alagbe Gbolagade 1,, ember, IEEE and Sorin Dan Cotofana 1, Senior ember IEEE, 1. Computer Engineering Laboratory, Delft University

More information

LMS is a simple but powerful algorithm and can be implemented to take advantage of the Lattice FPGA architecture.

LMS is a simple but powerful algorithm and can be implemented to take advantage of the Lattice FPGA architecture. February 2012 Introduction Reference Design RD1031 Adaptive algorithms have become a mainstay in DSP. They are used in wide ranging applications including wireless channel estimation, radar guidance systems,

More information

Fractions and the Real Numbers

Fractions and the Real Numbers Fractions and the Real Numbers Many interesting quantities are not normally integer-valued: - the mass of a rocket payload - the batting average of a baseball player - the average score on an assignment

More information

Chapter 2: Number Systems

Chapter 2: Number Systems Chapter 2: Number Systems Logic circuits are used to generate and transmit 1s and 0s to compute and convey information. This two-valued number system is called binary. As presented earlier, there are many

More information

Binary Number System. 16. Binary Numbers. Base 10 digits: 0 1 2 3 4 5 6 7 8 9. Base 2 digits: 0 1

Binary Number System. 16. Binary Numbers. Base 10 digits: 0 1 2 3 4 5 6 7 8 9. Base 2 digits: 0 1 Binary Number System 1 Base 10 digits: 0 1 2 3 4 5 6 7 8 9 Base 2 digits: 0 1 Recall that in base 10, the digits of a number are just coefficients of powers of the base (10): 417 = 4 * 10 2 + 1 * 10 1

More information

Data Storage 3.1. Foundations of Computer Science Cengage Learning

Data Storage 3.1. Foundations of Computer Science Cengage Learning 3 Data Storage 3.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: List five different data types used in a computer. Describe how

More information

Integer Multiplication and Division

Integer Multiplication and Division 6 Integer Multiplication and Division 6.1 Objectives After completing this lab, you will: Understand binary multiplication and division Understand the MIPS multiply and divide instructions Write MIPS programs

More information

CSc 28 Data representation. CSc 28 Fall

CSc 28 Data representation. CSc 28 Fall CSc 28 Data representation 1 Binary numbers Binary number is simply a number comprised of only 0's and 1's. Computers use binary numbers because it's easy for them to communicate using electrical current

More information

Square roots by subtraction

Square roots by subtraction Square roots by subtraction Frazer Jarvis When I was at school, my mathematics teacher showed me the following very strange method to work out square roots, using only subtraction, which is apparently

More information

Digital Arithmetic. Digital Arithmetic: Operations and Circuits Dr. Farahmand

Digital Arithmetic. Digital Arithmetic: Operations and Circuits Dr. Farahmand Digital Arithmetic Digital Arithmetic: Operations and Circuits Dr. Farahmand Binary Arithmetic Digital circuits are frequently used for arithmetic operations Fundamental arithmetic operations on binary

More information

Two s Complement Arithmetic

Two s Complement Arithmetic Two s Complement Arithmetic We now address the issue of representing integers as binary strings in a computer. There are four formats that have been used in the past; only one is of interest to us. The

More information

MT1 Number Systems. In general, the number a 3 a 2 a 1 a 0 in a base b number system represents the following number:

MT1 Number Systems. In general, the number a 3 a 2 a 1 a 0 in a base b number system represents the following number: MT1 Number Systems MT1.1 Introduction A number system is a well defined structured way of representing or expressing numbers as a combination of the elements of a finite set of mathematical symbols (i.e.,

More information

Floating Point Engine using VHDL

Floating Point Engine using VHDL Floating Point Engine using VHDL Najib Ghatte #1, Shilpa Patil #2, Deepak Bhoir #3 Fr. Conceicao Rodrigues College of Engineering Fr. Agnel Ashram, Bandstand, Bandra (W), Mumbai: 400 050, India Abstract

More information

Binary Multiplication. CMPE 325 Computer Architecture II. Implementing Multiplication. Multiplication. Solution #1. Solution #1: Operations

Binary Multiplication. CMPE 325 Computer Architecture II. Implementing Multiplication. Multiplication. Solution #1. Solution #1: Operations CMPE 5 Computer Architecture II Cem Ergün Eastern Mediterranean University Binary Multiplication At each step we multiply the multiplicand by a single digit from the multiplier. In binary, we multiply

More information

Computer is a binary digital system. Data. Unsigned Integers (cont.) Unsigned Integers. Binary (base two) system: Has two states: 0 and 1

Computer is a binary digital system. Data. Unsigned Integers (cont.) Unsigned Integers. Binary (base two) system: Has two states: 0 and 1 Computer Programming Programming Language Is telling the computer how to do something Wikipedia Definition: Applies specific programming languages to solve specific computational problems with solutions

More information

FPGA Fixed-Point Math Library User Guide

FPGA Fixed-Point Math Library User Guide Contents 1. Overview DISCLAIMER: National Instruments does not support the FPGA Fixed-Point Math Library. The library is an internal product, so you are using the library at your own risk. 2. Common Characteristics

More information

1 / 40. Data Representation. January 9 14, 2013

1 / 40. Data Representation. January 9 14, 2013 1 / 40 Data Representation January 9 14, 2013 Quick logistical notes In class exercises Bring paper and pencil (or laptop) to each lecture! Goals: break up lectures, keep you engaged chance to work through

More information

Solution for Homework 2

Solution for Homework 2 Solution for Homework 2 Problem 1 a. What is the minimum number of bits that are required to uniquely represent the characters of English alphabet? (Consider upper case characters alone) The number of

More information

CHAPTER 1 BINARY SYSTEM

CHAPTER 1 BINARY SYSTEM STUDENT COPY DIGITAL & MICROPROCESSORS 3 CHAPTER 1 BINARY SYSTEM Base Conversion: A number a n, a n 1 a 2, a 1 a 0 a 1 a 2 a 3 expressed in a base r system has coefficient multiplied by powers of r. n

More information

COMP 250 Fall 2012 lecture 2 binary representations Sept. 11, 2012

COMP 250 Fall 2012 lecture 2 binary representations Sept. 11, 2012 Binary numbers The reason humans represent numbers using decimal (the ten digits from 0,1,... 9) is that we have ten fingers. There is no other reason than that. There is nothing special otherwise about

More information

CHAPTER 2 Data Representation in Computer Systems

CHAPTER 2 Data Representation in Computer Systems CHAPTER 2 Data Representation in Computer Systems 2.1 Introduction 47 2.2 Positional Numbering Systems 48 2.3 Converting Between Bases 48 2.3.1 Converting Unsigned Whole Numbers 49 2.3.2 Converting Fractions

More information

198:211 Computer Architecture

198:211 Computer Architecture 198:211 Computer Architecture Topics: Lecture 8 (W5) Fall 2012 Data representation 2.1 and 2.2 of the book Floating point 2.4 of the book 1 Computer Architecture What do computers do? Manipulate stored

More information

A Short Introduction to Binary Numbers

A Short Introduction to Binary Numbers A Short Introduction to Binary Numbers Brian J. Shelburne Department of Mathematics and Computer Science Wittenberg University 0. Introduction The development of the computer was driven by the need to

More information

Floating-point computation

Floating-point computation Real values and floating point values Floating-point representation IEEE 754 standard representation rounding special values Floating-point computation 1 Real values Not all values can be represented exactly

More information

CSCI 230 Class Notes Binary Number Representations and Arithmetic

CSCI 230 Class Notes Binary Number Representations and Arithmetic CSCI 230 Class otes Binary umber Representations and Arithmetic Mihran Tuceryan with some modifications by Snehasis Mukhopadhyay Jan 22, 1999 1 Decimal otation What does it mean when we write 495? How

More information

Useful Number Systems

Useful Number Systems Useful Number Systems Decimal Base = 10 Digit Set = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Binary Base = 2 Digit Set = {0, 1} Octal Base = 8 = 2 3 Digit Set = {0, 1, 2, 3, 4, 5, 6, 7} Hexadecimal Base = 16 = 2

More information