+ All Categories
Home > Documents > Design of a bit-slice microcomputer

Design of a bit-slice microcomputer

Date post: 20-Sep-2016
Category:
Upload: dr
View: 217 times
Download: 4 times
Share this document with a friend
8
Design of a bit-slice microcomputer D.F. Neale, Ph.D., C.Eng., M.I.E.E., A.T. Clark, B.Sc, and Prof. D.R. Wilson, M.Sc. Tech., Ph.D., C.Eng., M.I.E.E., F.I.E.R.E., Mem. I.E.E.E. Indexing terms: Digital computers and computation, Microcomputers, Microprogramming Abstract: The fact that the synthesis of a microcomputer, to achieve the specific requirements for real-time operation, can be achieved through bit-slice technology is utilised as a design factor. The paper presents the design of a 3 MHz clock frequency microprogrammable microcomputer based on the Intel 3000 series of microprocessors. The requirements of real-time signal processing are included in the computer specification, as are facilities to incorporate incircuit emulation for software development. The paper discusses the microprogramming technique and illustrates the flexibility of the microcode through the jump-function facility. The paper evaluates the performance to achieve a worst-case cycle time of 383 ns without pipelining and carry look ahead as opposed to a worse case of 149 ns with pipelining and carry look ahead. A 3 MHz clock frequency was easily achieved without pipelining. 1 Introduction The design of a small microcomputer suitable for signal processing and associated control algorithms is obviously restricted by the capability of the chosen components. The design freedom is essentially concentrated into the use of the bus structure and the instruction set of the microprocessors. Both of these factors enjoy increased flexibility when bit-slice technology is employed with the associated option of micro- programming [1—4]. Tao [5] employed a second-order filter to establish a bench-mark test for a variety of microprocessors using software multiplication. The results varied from an estimated 600/us for the 8-bit NMOS Intel 8048 to 23 jus for a 16-bit bipolar bit-slice microcomputer based on AMD 2900 series. Neuvo [6], with a peripheral multiplier, has similarly reported a second-order processing speed of 5/us on an AMD 2900 based system, with a computation time T approximated by T = 8.5Nr + 5r where T = clock period, in this case 230 ns N — the order of the filter Alternative implementations, both with and without peripheral multipliers, have reported essentially similar processing speeds [7—10] to those quoted above. The authors selected Intel 3000 series components [11,12] circa \916lll as the basis of a microcomputer suitable for signal processing associated with control systems on the basis of the arguments subsequently published in the literature [13—15]. The reasons can be summarised as follows: (a) The ability to select the word size appropriate to the perceived computation requirements of the objective. (b) The advantage of computation time offered by bipolar technology at the time of hardware selection. (c) The flexibility to develop a microinstruction code through microprogramming. The two major components of the Intel 3000 series are the microprogram control unit (MCU) and the central processing element (CPE). The CPE is a 2-bit processing module. Virtually any number of CPEs may be connected to imple- ment a data processing section of any word length. As the CPEs are wired together, all registers, arithmetic and logic circuits, and data paths expand accordingly. However, the seven-function inputs to each CPE are connected in parallel Paper 1294E, first received 7th January and in revised form 26th November 1980 The authors are with The Polytechnic of Central London, School of Engineering and Science, 115 Cavendish Street, London WlM 8JS, England to form a single 7-bit CPE function bus from the micro- program memory for the entire array. The function bus controls the internal operation of the CPE array by selecting the operands and the operation to be performed during a machine cycle. The ALU under the control of the function bus decoder performs over 40 Boolean and arithmetic functions including 2 s complement arithmetic and logical AND, OR, NOT and exclusive-NOR. Three buses (M, I and K-bus) provide the CPE array input data paths. Within the CPE array, eleven scratch pad registers, an accumulator register and a MAR provide data storage. Two internal multiplexers select operands for the ALU from data in the registers and on the input buses. Results of ALU operations can be stored in the registers and/or the accumulator. The ALU provides a data path to the MAR, and the data in the MAR and the accumu- lator can be gated on to the output buses A and D. The CPE provides independent carry input, carry output, shift input and shift output providing for shift left and right operations. Also incrementing, decrementing, bit-testing and zero- detection facilities are contained within the CPE. The MCU issues addresses to the microprogram memory and fetches micro-instructions. This control function uses the contents of the microprogram memory (micro-instructions) to drive the CPE, external circuits and selects the next micro- instruction. The MCU provides the following independently controllable function facilities: (i) Jump functions: A mechanism for controlling the sequence in which the micro-instructions are accessed from the microprogram memory. (ii) Flag input functions: A mechanism for saving the state of the flag input which is usually connected to the carry/shift output of the CPE array. (iii) Flag output functions: A mechanism for controlling the state of the flag output which is normally connected to the carry/shift input to the CPE array. Other attractive features of the Intel 3000 series are: (a) The multiple independent data and address buses that eliminate time multiplexing and the need for external latches. (b) The three-state output buffers with high fanout that make bus drivers unnecessary except in the largest system. (c) The separate output enable logic that permits bidirec- tional buses to be formed simply by connecting inputs and outputs together. The major application objective of the microcomputer system has been that the system should be cable of implementing self- adaptive configurations, based on defined filter design criteria [16—22]. The specification of the unit to achieve this function was interpreted as follows: 8K microprogram memory controlled via the MCU 4K program memory for macro instructions and CPE data overflow IEE PROC, Vol. 128, Pt. E, No. 3, MAY 1981 0143-7062/81/030095 + 08 $01.50/0 95
Transcript
Page 1: Design of a bit-slice microcomputer

Design of a bit-slice microcomputerD.F. Neale, Ph.D., C.Eng., M.I.E.E., A.T. Clark, B.Sc, and

Prof. D.R. Wilson, M.Sc. Tech., Ph.D., C.Eng., M.I.E.E., F.I.E.R.E., Mem. I.E.E.E.

Indexing terms: Digital computers and computation, Microcomputers, Microprogramming

Abstract: The fact that the synthesis of a microcomputer, to achieve the specific requirements for real-timeoperation, can be achieved through bit-slice technology is utilised as a design factor. The paper presents thedesign of a 3 MHz clock frequency microprogrammable microcomputer based on the Intel 3000 series ofmicroprocessors. The requirements of real-time signal processing are included in the computer specification,as are facilities to incorporate incircuit emulation for software development. The paper discusses themicroprogramming technique and illustrates the flexibility of the microcode through the jump-functionfacility. The paper evaluates the performance to achieve a worst-case cycle time of 383 ns withoutpipelining and carry look ahead as opposed to a worse case of 149 ns with pipelining and carry look ahead.A 3 MHz clock frequency was easily achieved without pipelining.

1 Introduction

The design of a small microcomputer suitable for signalprocessing and associated control algorithms is obviouslyrestricted by the capability of the chosen components. Thedesign freedom is essentially concentrated into the use of thebus structure and the instruction set of the microprocessors.Both of these factors enjoy increased flexibility when bit-slicetechnology is employed with the associated option of micro-programming [1—4]. Tao [5] employed a second-order filterto establish a bench-mark test for a variety of microprocessorsusing software multiplication. The results varied from anestimated 600/us for the 8-bit NMOS Intel 8048 to 23 jus fora 16-bit bipolar bit-slice microcomputer based on AMD 2900series. Neuvo [6], with a peripheral multiplier, has similarlyreported a second-order processing speed of 5/us on an AMD2900 based system, with a computation time T approximatedby

T = 8.5Nr + 5r

where

T = clock period, in this case 230 ns

N — the order of the filter

Alternative implementations, both with and without peripheralmultipliers, have reported essentially similar processing speeds[7—10] to those quoted above.

The authors selected Intel 3000 series components [11,12]circa \916lll as the basis of a microcomputer suitable forsignal processing associated with control systems on the basisof the arguments subsequently published in the literature[13—15]. The reasons can be summarised as follows:

(a) The ability to select the word size appropriate to theperceived computation requirements of the objective.

(b) The advantage of computation time offered by bipolartechnology at the time of hardware selection.

(c) The flexibility to develop a microinstruction codethrough microprogramming.The two major components of the Intel 3000 series are themicroprogram control unit (MCU) and the central processingelement (CPE). The CPE is a 2-bit processing module.Virtually any number of CPEs may be connected to imple-ment a data processing section of any word length. As theCPEs are wired together, all registers, arithmetic and logiccircuits, and data paths expand accordingly. However, theseven-function inputs to each CPE are connected in parallel

Paper 1294E, first received 7th January and in revised form 26thNovember 1980The authors are with The Polytechnic of Central London, School ofEngineering and Science, 115 Cavendish Street, London WlM 8JS,England

to form a single 7-bit CPE function bus from the micro-program memory for the entire array. The function buscontrols the internal operation of the CPE array by selectingthe operands and the operation to be performed during amachine cycle. The ALU under the control of the functionbus decoder performs over 40 Boolean and arithmeticfunctions including 2 s complement arithmetic and logicalAND, OR, NOT and exclusive-NOR. Three buses (M, I andK-bus) provide the CPE array input data paths. Within the CPEarray, eleven scratch pad registers, an accumulator register anda MAR provide data storage. Two internal multiplexers selectoperands for the ALU from data in the registers and on theinput buses. Results of ALU operations can be stored in theregisters and/or the accumulator. The ALU provides a datapath to the MAR, and the data in the MAR and the accumu-lator can be gated on to the output buses A and D. The CPEprovides independent carry input, carry output, shift inputand shift output providing for shift left and right operations.Also incrementing, decrementing, bit-testing and zero-detection facilities are contained within the CPE.

The MCU issues addresses to the microprogram memoryand fetches micro-instructions. This control function uses thecontents of the microprogram memory (micro-instructions) todrive the CPE, external circuits and selects the next micro-instruction. The MCU provides the following independentlycontrollable function facilities:

(i) Jump functions: A mechanism for controlling thesequence in which the micro-instructions are accessed from themicroprogram memory.

(ii) Flag input functions: A mechanism for saving the stateof the flag input which is usually connected to the carry/shiftoutput of the CPE array.

(iii) Flag output functions: A mechanism for controlling thestate of the flag output which is normally connected to thecarry/shift input to the CPE array.

Other attractive features of the Intel 3000 series are:(a) The multiple independent data and address buses that

eliminate time multiplexing and the need for external latches.(b) The three-state output buffers with high fanout that

make bus drivers unnecessary except in the largest system.(c) The separate output enable logic that permits bidirec-

tional buses to be formed simply by connecting inputs andoutputs together.The major application objective of the microcomputer systemhas been that the system should be cable of implementing self-adaptive configurations, based on defined filter design criteria[16—22]. The specification of the unit to achieve thisfunction was interpreted as follows:

8K microprogram memory controlled via the MCU4K program memory for macro instructions and CPE data

overflow

IEE PROC, Vol. 128, Pt. E, No. 3, MAY 1981 0143-7062/81/030095 + 08 $01.50/0 95

Page 2: Design of a bit-slice microcomputer

Eight 2-bit slice CPEs arranged to provide a 16-bit word3 MHz clockControl panel interface through bidirectional bus driversCompatibility with the microcomputer development system

(MDS).In the first instance the hardware configuration is reviewedthat implements this specification.

MI12-MI15 the K-bus (K0-K3) which provides the maskingfacilities for the CPE array.

MI16-MI22 the micro-function bus (F0-F6) to the CPE array.Other output lines are not displayed on the control panel.

The two read/write lines RWMU and RWML, from themicroprogram memory represent the upper (most significant)four chips and lower (least significant) four chips, respectively.

DM-bus fromfront panelswitches

A-bus to frontpanel lampsand switches

function bus7 „

AK-bus

rprogr^Laddre

MA-bus tofront panellamps and

switches

micro-program -^Caddress - I —

k jumpfunction

bus o 2

CPE array

8 A-bus

16M-bus

16 D-bus

microprogramoutput lines(see fig. 3)

hardware multipliercontrol bus

161-bus

ready signal MI 30

i Itiming

status

resetADC

\zhardwaremultiplier

V

1

programmemory

16- W -i

X \D-bus to frontpanel lamps and

switches

MI 31

74373flip-flops

Fig. 1 Microcomputer system

2 Hardware system design

2.1 MCU and microprogram memory

Fig. 1 illustrates the layout of the processor in block formwith its associated bus structure, and Fig. 2 shows the micro-program memory output. Eight 256 x 4 (3621) PROMelements are used to form the microprogram memory. Theaddress inputs are paralleled through the chips and connectedto the microprogram memory addresses of the MCU. In thisconfiguration an 8-bit microprogram address is used from theMCU (MA0-MA7) where the row address is specified by theupper 4 bits (MA4-MA7) and the column address by the lower4 bit (MA0-MA3). The matrix can therefore contain up to16 row addresses and 16 column addresses giving a total of256 micro-instruction addresses. The DM-bus to the3621 PROMs comes from the data input switches SA0-SA15on the control panel of the computer. The microprogrammemory display (MI0-MI23) on the control panel comes fromthe first 24 output lines of the 3621 chips after passingthrough 24 inverters and 24-330 f2 resistors. This displayrepresents the following:MI0-MI6 the address control functions (AC0-AC6) which

provide the jump functions to the MCU.MI7W indicates macro write in the control logic.

These lines are used in the logic control circuits to operate thecontrol panel. The microprogram address lines (MA0-MA7)which are passed through two 4-bit parallel, inverting bidirec-tional bus drivers are displayed on the front panel. Switchinputs on the control panel provide for the microprogram tobe addressed from the control panel. When this takes place,theMCU microprogram address lines (MA0-MA7) must bedisabled (line EN) and the bidirectional bus from the busdriver must be set in the correct direction (line DCEM); alsothe bus driver must be selected (line CSM).

The remaining lines from the MCU represent the following:SX0-SX3 and PX4-PX7 provide the secondary and primaryinstruction buses from the program memory.Fl, F0 provide the flag logic input and output to and from theCPE array, respectively.The lines (PR0-PR3, ERA, ISE, LD) are not internally con-nected.CLK is the clock to the MCU (and CPE array) and is describedin the control logic section.

2.2 CPE array

Eight CPE (3002) chips connected together form the desired16-bit word length. The buses represent the following:

96 IEE PROC, Vol. 128, Pt. E, No. 3, MAY 1981

Page 3: Design of a bit-slice microcomputer

ED and EA are the data and address enable lines which areparalleled through the CPE array.F0-F6 provide the microfunction bus from the microprogrammemory; these are also paralleled through the array.The D-bus (D0-D15) provides the data bus to the programmemory and the A-bus (A0-A7) provides the address of theD-bus data to the program memory.TheM-bus(M0-M15)is the data bus from the program memoryto the CPE array.The I-bus is the input bus from an external device, this bus isdiscussed more fully later.The K-bus (K0-K3) is the mask bus and is provided by themicroprogram memory either set to all zero or all ones. Placingthe K-bus in the all one or all zero state in most cases willselect or deselect the accumulator in the operation.

microprogram output lines

I M131-M10 1

F-bushardwaremultiplier

bus

K-bus

ITT3|2|i|0

FC-bus

3 2 10

AC-bus

Z 6 5 4 3 2 1 0\ \^1 H G E D C B A

Fig. 2 Microprogram memory output lines

2.3 Program memory

The program memory consists of four 256 x 4 (3621) PROMs,which provides the macro-instructions to the MCU as alreadydescribed. In addition a small amount of RAM memory will beprovided to cater for any data overflow from the CPE array.

The address bus (A0-A7) and the data bus (D0-D15) fromthe CPE array are passed through bus drivers (the 3226 chips)so that the data and addresses can be displayed on the controlpanel. The program memory can also be accessed from thecontrol panel via switches. The A-bus must pass throughinverters before passing into the program memory as theprogram memory operates its address lines under the oppositelogic from the CPE array. The read/write (RWP) lines selectthe mode of operation for front panel access to the program

memory. The data output bus (M-bus) from the programmemory goes to the CPE array. The 8 most significant bitsof this bus (M8-M15) are also sent to the MCU. These linesconstitute the secondary and primary instruction buses for theMCU.

2.4 Microprocessor clock and con trol logic

The control logic provides the necessary circuits, Fig. 3, forclocking the microprocessor and for running the micropro-cessor from the control panel. A VCO provides the monostablewith a square-wave input of period 320 ns. The monostable'stiming circuit (external resistor and capacitor) triggers themonostable every 320 ns on the falling edge of the VCO inputsquare wave producing a pulse width of 90 ns. The monstable'soutput provides the microcomputer system's clock and isapplied to the MCU and CPE array clock inputs as illustratedin Fig. 3. In addition, a variable capacitor (4-40 pF) has beenapplied to the VCO across the 120 pF timing capacitor to allowthe clock period to be tuned to an exact frequency. The'match' cable applied to one of the inputs of NAND gate 11 isthe control line from the ICE-30 module (see Section 2.6).When the ICE-30 is active the MCU and CPE array clocks arestopped and held in the high state.

With S6 and Si as shown, the microprocessor will berunning under the internal control of the MCU. To single stepthe microprocessor from the front panel Si is closed forcingthe VCO output high. The monostable can be triggered fromthe control panel producing a single pulse which will step themicroprocessor by one cycle. This single step procedure can berepeated continually.

If RAM were installed in the system's memory (as may bethe case for portions of the program memory) it could bedesirable to write to the memories. Therefore, the logiccontrol in Fig. 3 is designed so it can write as well as read fromthe memories via the control panel.

2.5 Microprocessor and interface board

The system consists of two boards, the microprocessor andinterface boards. The microprocessor board contains the MCU,8 CPEs arrayed together, the 8-microprogram and 4-programmemory sockets plus the two inverter chips for the program

LED,GND

variable capacitor(4-40pf)

to MCU and CPEclock inputs

S2 '• program/GND I m'croprogram

address

GND

Fig. 3 Microprocessor clock and control logic

IEEPROC, Vol. 128, Pt. E, No. 3, MA Y1981 97

Page 4: Design of a bit-slice microcomputer

Table 1 : Significant delay paths

(a) With pipelining and carry look-ahead

tPLRtxftxc*ss*wp

(b)

*co

Delay pathClk t to pipeline register outputsFunction inputs to look-ahead inputsLook-ahead circuit delayData set up time L, C, (3002 inputs)Clock pulse width

T cycle =

Without pipelining and carry look-ahead

Delay pathClk t to MA, F0 outputs (3001)

tROM Pr°9- rnemory access time*cf7xtcc

t S l

Function in to CO outputRipple carry through 7 slicesFlag input set up timeClock pulse width

T cycle =

Delay, ns1752202733

149 ns

455065

1751533

383 ns

memory address lines. The interface board contains all thenecessary components for the interfacing facilities for signalprocessing applications, i.e. ADC, DAC, hardware multiplier.Three 50-way cables pass information between the twoboards, and two other 50-way cables pass information betweenthe two boards, and two other 50-way cable assembliesprovide access to and from the control panel. An additional50-way edge connector is provided on the interface board forexternal input/output facilities connected to the CPE arrayoutput (D-bus) and input (I-bus) buses, respectively.

2£ Software development

For software development, the hardware has been designed tohave compatible buses to an ICE-30 module. The ICE-30consists of a single printed-circuit board and a cable assemblywhich contains an MCU (3001) compatible 40-pin connector.By inserting the board into the bus inside a basic MDS theMCU chip in the user's system may be emulated. On the ICE30 board there is an MCU (3001) chip, which simplifies theemulation of the user system's MCU, and a multiplexer, break-point, and single-step logic circuits. High speed, bipolar RAMis also provided to save addresses and logic signals for tracepurposes. The function of the ICE-30 module is controlled bythe host MDS CPU. The commands issued to the ICE-30 boardare processes by the ICE-30 software driver operating underthe host MDS CPU. The processed command is then trans-ferred to the ICE-30 module for action by way of a memoryread/write to one of two control blocks.

In addition to the ICE-30, three ROM simulator boards areincorporated in the MDS. Two of these boards are designed tosimulate the microprogram memory PROM elements and thethird to simulate the program memory PROM elements. This isachieved by removing all the memory PROMs and inserting theplugs from the ROM simulator boards into the PROMs'sockets. The ROM simulator boards contain compatible RAMto the PROMs; thus the memories can be simulated in RAMwithin the MDS.

2.7 Evaluation of performance

Fig. 4 indicates the relevant delay paths for a basic system(solid lines) and a system with pipelining and carry look-ahead(dotted lines). The worst case delay times are listed in Table 1for both cases.

From Table l(c) it is seen that the fastest cycle time corre-sponds to a clock frequency of 7 MHz. This compares with aclock frequency of 2.6 MHz for the basic system.

The cycle times calculated in Table 1 are for worst-case

parameters. For the system described in this paper a clockfrequency of 3 MHz was easily achieved.

3 Application examples

3.1 The jump function facility

The MCU defines the microprogram memory addressingscheme which contains 11 conditional and unconditionaljump functions. The system has a 7-bit jump field which drivesthe jump-function bus to the MCU. This jump-function bus(AC0-AC6) is shown in Figs. 1 and 2. Each of the MCUs11 jump functions is represented by a unique coding of thejump field. From two to five bits of the field select the jumpfunction while the remaining bits supply part of the desti-nation address. During each micro-instruction cycle the MCUexecutes the jump function specified by the micro-instructioncurrently being accessed from the microprogram memory. Inexecuting this jump function, the MCU formulates the addressthat will be used to access the microprogram memory for thenext micro-instruction in the microprogram sequence. In thisway, the microprogram controls its own sequencing. Theconditional jump functions provide a test facility by allowingselected information maintained by the MCU (i.e. in the C andZ flags, PR-latch etc.) to influence program sequencing. If themicroprogram memory is considered as a matrix consisting of16 rows and 16 columns (providing a total of 256 micro-instruction locations), then the location of the micro-instruction is obtained by its row and column address withinthe matrix. The 8-bit microprogram memory address bus(MA0—MA7) which the MCU transmits to the microprogrammemory specifies the row address in the higher order four bitsand the column address in the low-order four bits.

Fig. 4 Arithmetic delay paths

For example, from any row and column location, it ispossible to jump unconditionally to any other location in thatrow (using one jump instruction) or any other location in thatcolumn (using another jump instruction). For a given locationin the microprogram memory matrix and for a MCU jumpfunction there is a fixed subset of microprogram addresses thatmay be selected as the next address. Fig. 5 shows the 11jump functions with the AC-bus coding together with themicroprogram next address (MA-bus) that these jump func-tions provide. The MCU flag control functions are also shownin Fig. 5.

To illustrate this addressing technique, consider the firstthree jump functions defined in Fig. 5, i.e. JCC, JZR and JCR.If it is assumed that the present microprogram address is:

row address column addressMA-bus lines 7 6 5 4 3 2 1 0Data on MA-bus 0 0 0 0 0 0 0 0

98 IEEPROC, Vol. 128, Pt. E, No. 3, MA Y 1981

Page 5: Design of a bit-slice microcomputer

then a simple example of these three jump functions is:

Jump AC-bus FIA-bus

3CR 011 fi110

rou column

0000 0000

-13CC 001 101101

3ZR 010 11101

3CC 001 101001

3CR 011 fOOOT

3ZR 010 [0000I

0000 (11011i

|oiool 1101-I- __0100 booil

oooo booo| HThe microprogram memory locations for this program may

be represented as illustrated below (in hexadecimal notation):

addresses

Icolumn0

3 FT

4

- -

a-_

*—.

1ii

j

ii+ - -ii

ij —

,\ 20_i

II

,

1

f

11

1

11

1

1

1

"\

ii

1|

+•

2I1

11

i1 _11

111

J, _11

I

1r

311

J.1i

iii

i

i

ii

. J_.ii

— ! -

4 511

1I

- - , - -

11i

L_

1

1_ _ T . -

11

1

1

11

|1

1

— 1 -

t

|

1

11

11

11

t1

1

1

6I1

_4

i111

T1

J.1

1r

ii1i

- - 4 -

7 8i

1

1

1

1

1'T11I

1

[

I

1Ii

1

~ri

iiIi

i~~r

iii

_ T _

9 Ai1

Lii

— i

i•

ii

riiii

1Ii

j .

Bi i

I1

T1

i

11i

_i

I1

I

!

{_i

Ci

1

Ii

1

111

1 ^\_11i _

11

_ _ _ J _i

u L

14 . 16

-

* ' f-t-—'_ J _

ii

I

~ r~

1

- J1

-

Jl v—

2D-

rI

i

p1fi

1 - •

1—i — —

I

i

1i

T ~ ~

Address control function summary

Mnemonic

JCCJZRJCRJCE

JFLJCFJZF

JPRJLLJRLJPX

Symbol

Description

Jump in current columnJump to zero rowJump in current rowJump in column/enable

Jump/test F-latchJump/test C-flagJump/test Z-flag

Jump/test PR-latchesJump/test left PR bitsJump/test right PR bitsJump/test PX-bus

Meaning

Function

AC6

0001

111

1111

5

0111

000

1111

4

d 4

011

011

0011

3

d 3

d 3

d ,0

d3

01

0111

2

Q _

Q

d2

d2Q

Q _

d 2

10

1

d,d,d,

d,d,d,

d ,d ,d ,d ,

0

d n

d n

d n

d 0

dn

dnd 0

d n

d 0

d 0

Next

MA8

d 4

0m8

m8

mg

m8

m8

m8

m8

m8

m8

*

row

7

d 3

0m 7

m7

d 3

m7

m7

m7

m 7

m 7

m 7

6

d 7

0m6

d 2

d 7

dT

d 2

d7

d 71m 6

5

d,0m5

d,

d id,d,

did ,d ,d ,

4

d n0m4

d0

d0

dnd0

dnd n

d n

do

Next column

MA3

m3

d ,

m3

m3

m3

m 3

p3

01x7

2

m2

d2

d2m2

000

P211X 6

1

m,d,d,m,

111

PiP I

P Ix s

0

mn

dn

m0

fcz

PoPiPn

d n Data on address control line nm n Data on microprogram address register bit npn Data in PR-latch bit nxn Data on PX-bus line n (active LOW)f, c, z Contents of F-latch, C-flag, or Z-flag, respectively

* MA8 not connected

Fig. 5 MCU jump instructions and input/output flag control Junctions

IEE PROC, Vol. 128, Pt. E, No. 3, MA Y1981 99

Page 6: Design of a bit-slice microcomputer

Flag control function summary

Type

Flaginput

Type

Flagoutput

Mnemonic

sczSTZSTCHCZ

Mnemonic

FFOFFCFFZFF1

Description

Set C-flag and Z-flag to fSet Z-flag to fSet C-flag to fHold C-flag and Z-flag

Description

Force FO to 0Force FO to C-flagForce FO to Z-flagForce FO to 1

FC,

0011

FC3

0011

0

0101

2

0101

Fig. 5 (continued)

3.2 Multiplication routines

The time required to perform the multiplication of two 16-bitnumbers in 2s complement form will depend upon the formatof the numbers. If binary notation of the values is consideredthe program will require an extra operation every time a ' 1 ' ispresent in the multiplier, hence the computing time will vary.Fig. 6 lists the microcode and Fig. 7 the flow chart of a 16 x16 fixed point software multiplication routine implementedon the microcomputer. The maximum time required for thisprogram will not exceed 66JUS. The full CPE instruction set isillustrated in Fig. 8.

To perform a 12x12 multiplication via the hardwaremultiplier (MPY), eight instructions are required (as shownbelow) and takes approximately 2.5 jus.

CLR Ro clear register Ro

LMI Ro load MAR with Ro, increment Ro

LCM AC load AC with M-bus data, clock X-input to MPYLMI Ro load MAR with Ro, increment Ro

LCM AC load AC with M-bus data, clock Y-input to MPYLDI AC load AC with I-bus data, clock MSP of MPYSDR Rj load Rt with ACLDI AC load AC with I-bus data, clock LSP of MPY

Eight microprogram operations are also required to perform asoftware addition routine on the microcomputer. The total

time required to execute this program is the same as the 12 x12 multiplication routine using the hardware multiplierprogram outlined above.

4 Conclusions

The advantage of the microprogram technique has beenreviewed and software development considered in the contextof the hardware capability of the computer's configuration.The design of the microprocessor provides a realisable com-puter system with the following specifications:

8 K of microprogrammable memory controlled via the MCU4K of program memory for macro-instructions and CPEdata overflow8 two-bit slice central-processing elements arrayed togetherprovide the required 16-bit word length3 MHz clock frequencyBidirectional bus drivers to provide access to and from themicroprocessor's front panelHardware organisation compatibility for operation via theMDS and associated software development packages, i.e.ICE-30 and ROM simulator boards

The microcomputer system that has been designed does notutilise a carry look-ahead generator or a pipeline register,hence the worst case-delay time for this system is 383 ns.

Comment Program memory

58X X

To 16-bit numbers to be CDmultiplied together GH

Number of bits to be multiplied F FStarting address 00

IF LSBof AC = 1. C-flag = 1IF LSB of AC = 0, C-f lag = 0

C-flag = 1

C-flag = 0

| F T * 0 , F = 1 IF T = 0, F = 0F = 1F = 0

59XX

ABEF

EF00

X X

0001

0203

CPE array coding

controbus

I mnemonicfunctions

CLR Ro

CLR R,

CLR R4

LMI R4

LCM ACSDR R2

LMI R4

LCM ACSDR R3

LMI R4

LCM TILR R2

SRA ACSDR R2

ILR R3

ADR Ro

ILR Ro

SRA ACSDR Ro

ILR R,SRA ACSDR R,DCA TT Z A TIMOPILR R,ILR Ro

K-bus

FF

FFF0FF0FFFF0

F0FF0FF000FFF

F-bus3 2

FFOFFO

FFOFF1FFOFF1FF1FFOFF1FFOFFOFFOFFOFF1

FFOFFOFFOFFOFF1FFOFFCFF1FFOFFOFFOFFOFFO

1 0

HCZHCZ

HCZHCZHCZHCZHCZHCZHCZHCZHCZHCZSCZHCZ

HCZHCZHCZSCZHCZHCZHCZHCZHCZHCZHCZHCZHCZ

MCU jumpinstructions

JCRJCR

JCRJCRJCRJCRJCRJCRJCRJCRJCRJCRJCRJCF

JCRJCRJCRJCRJCRJCRJCRJCRJCRJFLJZRJCRJZR

Microprogram memory

57XX

2020

202020202020202020202020

20202020202020202020202020

55XX

4041

44147B22147B23147A02OF22

033000OF2001OF211E5E650100

53XX

F3F3

F3FFF3OFFFF3OFF3F3F3FOOF

F303F3FOOFF3F7OF0303F3F3F3

51XX

3132

333435363738393A3B3C3D51

3C3A30313233343536422B3120

XX

0001

0203040506070809OAOBOCOD

1B1C1A10111213141516232221

Fig. 6 Microcode for 16 X 16 multiplication

100 IEEPROC, Vol. 128, Pt. E, No. 3, MA Y1981

Page 7: Design of a bit-slice microcomputer

which allows a maximum clock frequency of 2.61 MHz. Thecycle times calculated are for worst case parameters. It wasfound that for the programs described a clock frequency of3 MHz was easily achieved.

clear Rn.R1.R4

1load MAR with R̂increment R,

1load AC withMt>us data

tload R2with AC

Iload MAR withR, increment R,I* 4

1load AC withM-bus data

Iload R3 with AC

*load MAR with R j

\load T withM-bus data

1load AC with R2

1shift AC rightone bit positionset C&Z flags

tload R2 with AC r-

L5B 1

\ = /

load AC with RQ I

Ishift AC rightone bit positionset C&Z flags

load AC with R3

Iadd AC and RQ

answer in RQ

load Rowith AC

load AC with R^

shift AC rightone bit positionforce FO to C flag

load R1 with AC

subtract 1from T

no / \

yyes

load AC with R^

*load AC with RQ

Fig. 7 16 X 16 multiplication flow chart

All-zero and all-one k-bus micro-functions

The architecture of the microcomputer has been extendedto include facilities for analog input/output appropriate totypical transducers in an instrumentation system. In addition,a hardware multiplier has been incorporated which eliminatesthe need for time consuming complex software subroutines toperform multiplication. This is illustrated by the multipli-cation routine using the hardware multiplier which requiresthe same time as a software addition routine of 2.5 jus. Thefixed point software multiplication routine takes 66/us.

The CPE instruction set allows complex signal processingalgorithms to be readily implemented which, coupled withbipolar technology and the hardware multiplier, allows signifi-cant reductions in data computation times over other micro-processor systems.

5 Reference*1 HOOLEY, D.: 'Bit slice technique minimises microcontroller cost/

complexity', Comput. Design, October 1979, pp. 105-1132 CONWAY, J.C.: 'Hardware approaches to microprogramming with

bipolar microprocessors', ibid., August 1978, pp. 83—913 AGRAWLA, A.K., and RAUSCHER, T.G.: 'Foundations of micro-

programming, architecture, software and applications' (AcademicPress, 1976)

4 RAUSCHE|t, T.G., and ADAMS/, P.M.: 'Microprogramming: atutorial and survey of recent developments. IEEE Trans., 1980,C29, pp. 2-20

5 TAO, T., YEHOSH, D., and MARTINEZ, R.: Applications of micro-processors in control problems. Proceedings of International Con-ference of Digital Signal Proa, August 1978, pp. 8—145

6 NEUVO, Y., ROPPONEN.JC., and SIMULA, O.: 'A fast micropro-grammed digital filter design"'. IEEE Proc. Int. Conf. Acoust. SpeechSig. Prbc, 1977, pp. 523-526

7 ZEMAN, J., and NAGLE, H.T.: 'A high speed microprogrammabledigital signal processor employing distributed arithmetic', IEEETrans., 1980, C29, pp. 134-144

8 MINTZER, L.: 'A microprogrammable signal processor', IEEE Proc.Int. Conf. Acoust. Speech Sig. Proc, 1977, pp. 494-497

9 LOWE, E.: 'A 16 bit microcomputer for missile guidance and con-trol applications'. Proceedings of International Conference onDigital Signal Proc, August 1978, pp. 8-16

10 CUMMINGS, G.A., and MILLER, G.S.: 'Application of a bipolarmicroprocessor chip set to control systems', JACC, 1977, pp. 40-45

K-bus = 00 Micro-function

Rn + Cl - Rn, ACM + C I - A TATL-RO ATH-ATL LI-ATt

Rn-MAR Rn + CI-Rn

M-MAR M + CI-ATAT + Cl - AT

(See CSA above)

Rn + Cl - Rn

(See ACM above)AT + Cl - AT

CI-CO 0 - R n

CI-CO 0 - A T(See CLA above)

(See CLR above)(See CLA above(See CLA above)

Cl —CO R n ^ R nC I - C O M - AT(See IMOP above)

Cl —CO R^ - *R n

CI-CO Iv f -ATCI-CO A T - A T

Mnemonic

ILRACM

[ SRA

LMILMMCIA

CSRCSA

INR

INA

CLRCLA

NOPLMF

CMRLCMCMA

K-bus = 11 Microfunction

AC + Rn + Cl - Rn, ACM + AC + C l - A T(See Appendix B)

11 - M A R11 - M A RAT - 1 + Cl - AT

1 - 1 + C l - A T

AC + Rn + Cl — Rn

(See AMA above)I + AT + Cl - AT

Cl V ( R n A A C ) - C OCIV (MA A C ) - C OCIV (AT A I ) - C O

Cl V R n - C OCl V M - COCIV AT-CO

CIV AC-COCl V AC - COCl V I - CO

CIV(Rn AC)-COCIV(M AC)-COCIV (AT I ) -CO

R n - 1 + C I - R n

M - 1 + Cl - AT

> N m . i

Rn A A C - R n

M A AC - ATAT A 1 - AT

Mn- AT°A T - A T

R n V A C - R nM V A C - A T1 V AT - AT

R n e A C - R n

M e AC - ATI i A T - AT

Mnemonic

ALRAMA

DSMLDMDCA

SDRSDALDI

ADR

AIA

ANRANMANI

TZRLTMTZA

ORRORMORI

XNRXNMXNI

NOTE:1. 2's complement arithmetic adds 111

Fig. 8 CPE instruction set

11 t o p e r f o r m s u b t r a c t i o n o f 0 0 0 . . . 0 1 .

IEE PROC, Vol. 128, Pt. E, No. 3, MA Y1981 101

Page 8: Design of a bit-slice microcomputer

11 Series 3000 mioprogramming manual. Intel Corporation, Santa 17 BRAFMAtf, J.P., SZEZUPAK, J., and MITRA, S.K. An approach toQara.CA 95051 the implementation of digital filters using microprocessors. IEEE

12 Series 3000 reference manual. Intel Corporation, Santa Clara, CA Trans., 1978, ASSP 26, pp. 442-44695051 18 WHITE, R., and NAGLE, H.T.: Digital filter realisations using a

13 HOWARD, J.A., MITRA, S.K., and HUGHES, W.R.: 'A flexible special purpose stored program computer'. IEEE Trans., 1972,architecture for single multiplier accumulator implementation of AU20, pp. 289-294IIR and FIR digital filters', JACC, 1979, pp. 173-177 19 PELED, A.: 'On the hardware implementationof digital signal

14 MACKAY, J.D., and SILVERMAN, H.F.: 'A 16-bit microprocessor processors', IEEE Trans., 1976, ASSP 24, pp. 78-86based digital filter architecture'. IEEE Proc. Int. Conf. Acoust. 20 OPPENHEIM, A.V., (Ed.):'Applications of digital signal processing'Speech Sig. Proc, 1978, pp. 812-815 (Prentice Hall, 1978)

15 PFISTER, B.F., and HORVA"TH, S.: 'Microprocessor based real 21 HIRANO, K., NISHIMURA, S., and MITRA, S.K.:'Design of digitaltime speech processor', ibid, 1979, pp. 872-875 notch filters', IEEE Trans., 1974, Com 22, pp. 964-970

16 JACKSON, L.B., KAISER, J.F., and MCDONALD, H.S.: 'An 22 TREICHLER, J.R., LARIMORE, M.G., and JOHNSON, C.R.:approach to the implementation of digital filters'. IEEE Trans., 'Simple adaptive IIR filtering', IEEE Proc. Int. Conf. Acoust.Electroacoustics, pp. 413-421 Speech Sig. Proc, 1978, pp. 118-121

1 0 2 IEEPROC, Vol. 128, Pt. E, No. 3, MAY 1981


Recommended