outline

advertisement

Design, Analysis and Comparison of Arithmetic Circuits in different number representations

Avinash Lingamneni (S01120127)

Kirthi Krishna Muntimadugu (S01120128)

Motivation

A particular quantity can be expressed in many forms. These forms are the different number representations. For example, the quantity “four” can be expressed in decimal as ‘4’ or in binary as ‘100’ etc. These different representations allow one to operate on these numbers efficiently under different conditions. For example, the obvious choice of a decimal number system for human interaction is due to the fact that we have 10 fingers. If there was some alien being that had 3 fingers then it would have used a ternary system.

Abstract

In this project we hope to describe the various number representations that are used to implement circuits for different operations in VLSI. We will compare the number systems based on their advantages and disadvantages in various fields. These advantages and disadvantages will be described based on the parameters used in circuit design such as the number of gates, critical path delay (logic depth) etc. which essentially translate to the space complexity and the time complexity in algorithmic analysis. These comparisons would be based on the following set of operations:-

(i) Primary arithmetic operations a.

Addition b.

Multiplication

(ii) Specialized Applications (Applications in which one of the number representations is optimal)

Description of the Number Systems

1.

Binary Number System:

The binary numeral system, or base-2 number system, is a numeral system that represents numeric values using two symbols, usually 0 and 1. Owing to its straightforward implementation in digital electronic circuitry using logic gates, the binary system is used internally by all modern computers.

2.

Residue Number System(RNS):

A residue number system is defined by a set of N integer constants, {m1, m2, m3, ... , mN }, referred to as the moduli. Let M be the least common multiple of all the mi.

Any arbitrary integer X smaller than M can be represented in the defined residue number system as a set of N smaller integers

{x1, x2, x3, ... , xN} with xi = X modulo mi representing the residue class of X to that modulus.

Practical applications

RNS have applications in the field of digital computer arithmetic. By decomposing in this a large integer into a set of smaller integers, a large calculation can be performed as a series of smaller calculations that can be performed independently and in parallel. Because of this, it's particularly popular in hardware implementations.

3.

Logarithmic Number System(LNS):

In LNS, a number, X, is represented by the logarithm, x, of its absolute value as follows:

X  {s,x = log b

(|X|)}, where s is a bit denoting the sign of X (s = 0 if X > 0 and s = 1 if X < 0).

Practical applications

LNS is commonly used as part of Hidden Markov models, such as the Viterbi algorithm, with applications in speech recognition and DNA sequencing. A fabricated prototype of the processor, which has a 32-bit co-transformation based LNS Arithmetic Logic Unit (ALU), shows that LNS can have better than FP accuracy, with improved speed.

4.

Representation(RBR):

Redundant Binary

RBR is a numeral system that uses more bits than needed to represent a single binary digit so that most numbers have several representations. RBR is unlike usual binary numeral systems which use a single bit for each digit. In RBR, digits are pairs of bits, that is, for every place, RBR uses a pair of bits. The value represented by an RBR digit can be found using a translation table. This table indicates the mathematical value of each possible pair of bits. Most importantly, RBR allows addition without using a typical carry, but makes bitwise logical operation slower. A special case of this number system is the Signed Digit

Number system where each digit in the number can be from the following set = {-1, 0, 1}.

5.

Decimal(BCD):

Binary-Coded

BCD is an encoding for decimal numbers in which each digit is represented by its own binary sequence.

In BCD, a digit is usually represented by four bits which, in general, represent the values/digits/characters 0-9.

Its main virtue is that it allows easy conversion to decimal digits for printing or display and faster decimal calculations. Its drawbacks are the increased complexity of circuits needed to implement mathematical operations and a relatively inefficient encoding—it occupies more space than a pure binary representation.

Analysis

The analysis of the circuits for the operations mentioned in the Abstract will be based on preliminary results that are obtained from HSPICE simulations of the basic blocks (gates). These results will be obtained from standard published literature such as IEEE journals etc. Based on this basic data which will primarily consist of the delay, area and power consumption of these circuit components, a Cbased simulator for each one of the number systems will be build which will simulate the operation of the circuit for the entire input. For the sake of implementation, we will consider 16-bit unsigned inputs wherever possible.

The comparisons between the number systems with respect to the above state metrics will be shown in each of the above operations. The input data that will be used for these operations will be either obtained from a uniformly distributed data set or extracted from an audio file (to demonstrate the performance in practical data).

The comparisons will be based on the following metrics:

(i) Critical Path Delay of the circuit for every set of data

(ii) Average Power consumption of the circuit (based on the number of transitions each circuit component undergoes for a particular operation)

(iii) Area Occupied( based on the number of circuit components)

(iv) Additional Metrics (Such as range of operation, ease of circuit implementation, additional memory requirements etc.)

Download