A Balanced Ternary Multiplication Circuit Using Recharged Semi-Floating Gate Devices Henning Gundersen and Yngvar Berg Department of Informatics, Microelectronic Systems Group, University of Oslo Blindern, NO-0316, Oslo, Norway Email: henningg@ifi.uio.no Abstract— This paper presents a multiplier circuit using Bal- anced Ternary (BT) Notation. The multiplier can multiply both negative and positive numbers, which is one of the advantage able properties of the balanced ternary numbering systems. By using balanced ternary notation, it is possible to take advantage of carry free multiplication, which is exploited in designing a fast multiplier circuit. The circuit is implemented with Recharged Semi-Floating Gate (RSFG) devices. The circuit operates at 1 GHz clock frequency at a supply voltage of only 1.0 Volt. The circuit is simulated by using Cadence R Analog Design Environment, with CMOS090 process parameters, a 90nm General Purpose Bulk CMOS Process from STMicroelectronics with 7 metal layers. I. I NTRODUCTION Nowadays almost all multiplication done with computers are binary multiplications. Multiplying two positive numbers in a binary numbering system is trivial, but if we want to deal with negative numbers, it is not that trivial. When doing multiplication with negative numbers you usually need a sign bit and you have to use the 2’ complement. That is why I suggest using balanced ternary numbering system instead, to make a solution to the sign problem. The so-called ’Brousentsov’s Ternary Principle’ of computer design was first realized in the Setun computer [1] and this computer used a ’ternary-symmetrical number system’, which is another name for the balanced ternary notation. There has also been some other attempts to implement arithmetic applications which use the ternary numbering system, but they lack commercial success [2] [3]. A. The Balanced Ternary Number Systems ’Ternary numbering systems is the most efficient of all integer bases’ as Brian Hayes claims in his article Third Base [4]. Balanced ternary notation is a number system which use base 3 representation. Balanced ternary notation is ’Perhaps the prettiest number system of all’ as Donald Knuth said in his book, The Art of Computer Programming [5]. In the balanced ternary the digits are also powers of 3, as in ordinary ternary numbers, but they are ’balanced’ since they are symmetrical about zero. A given example of a balanced ternary number is the decimal number 23. It is written in balanced ternary notation as: 10 1 1. This numeral is interpreted as: 1x3 3 +0x3 2 - 1x3 1 - 1x3 0 , or 27 + 0 - 3 - 1, in decimal notation. The balanced ternary number system has also some advantage able properties: a) ’Ternary inversion’ [1] is easy, change 1 with 1, and vica versa. If we use the example -23, the result will be 1011 in balanced ternary notation. b) The sign of a number is given by its most significant nonzero ’trit 1 c) The operation of rounding to the nearest integer is identical to truncation. d) Addition and subtraction are essentially the same operation: just apply the rules of ’ternary inversion’ to one of the numbers, and afterwards doing an adding operation. B. Balanced Ternary Arithmetic In 1840 Thomas Fowler, a self-taught English mathemati- cian invented a ternary mechanical calculating machine which used balanced ternary notation. All details on the calulating machine was lost, until recently. A research project which began in 1997 have managed to get all the information which is needed to create a historical replica [6]. Fowler used the terms -, 0 and + for a negative, a zero and a positive number. We will use the terms 1, 0 and 1. Arithmetic in balanced ternary notation is almost the same as any other alternative base, except it can handle negative and positive numbers. This means that it can be both negative and positive carry to adjacent digits. 1 decimal 1 + 1 decimal 1 = 1 1 decimal 2 Examples of positive carry in balanced teranary addition. 1 1 decimal 2 + 1 1 decimal 2 = 1 1 decimal 4 Examples of negative carry in balanced teranary addition. 1 One trit has 3 values, the values are ( 1, 0, 1), it is analogous to bit in the binary world (0 , 1).