Patent GB-1198263-A (GB)
Title: Improvements in or relating to Digital Differential Analysers
Inventor: HARRIS ROBERT HERBERT
IPC: G06F7/64
Filed: 1967-06-06
Abstract: 1,198,263. Digital differential analyser. NATIONAL RESEARCH DEVELOPMENT CORP. 6 June, 1968 [6 June, 1967], No. 26155/67. Heading G4A. A digital differential analyser for calculating a function of an independent variable comprises input means providing a digital representation of a sample value of the independent variable and a digital representation of an increment therein, storage means temporarily storing a digital representation of a previously calculated value of the function, computing means connected to the input and storage means to form a digital representation of the sum of the first n terms of a Taylor series expansion of the function with the substitution therein of the increment and the previously calculated value, thereby forming a new representation of an approximation to the value of the function corresponding to the sampled value of the variable and means for replacing the representation of the previously calculated value in the storage means by the new representation formed by the computing means wherein n is an odd integer greater than unity. An angle digitizer measures the angular position of a shaft. Each revolution of the shaft is divided into 2<SP>13</SP> angular increments and the output of the digitizer represents a count of the increments in binary notation. The value is compared with the contents of a # register which represents the value of the angle # in the same terms and is continually updated as a new increment # is used in the calculations. The # values used however are binary subdivisions for radian and represent 2<SP>-7</SP> or 2<SP>-11</SP> radians. The analyser calculates the values of sin # and cos # according to the iterative forms Xn + = Xn+# (Yn - ¢ #Xn) Yn + = Yn- # (Xn+1-¢#Yn) where Xn = sin (#+n #) Yn = cos (#+n #) and in this example # = 0. In Fig. 3 the values sin # = sin n # and cos # = cos n # are stored in the sine and cosine registers 1, 11 respectively. Each register is 24 bits long and has taps at its twelfth and sixteenth stages. During a calculation a sine or cosine value is multiplied by # = 2<SP>-7</SP> or 2<SP>-11</SP> depending on whether a comparison between the # register and angle digitizer determines a fine F or coarse C increment is required. Since the sine or cosine value is multiplied by # or 2<SP>-8</SP> or 2<SP>-12</SP> an output from the taps at the sixteenth and twelfth stages in the order of least significant digit first creates the multiplication. Initially a sine value is fed through the appropriate AND gates 30 or 31 and 9 to an adder/subtractor 4 via a sign preserver 36. Also fed to the adder is the whole content of the cosine register to produce the term Yn - ¢ #Xn. This is then stored in an auxiliary register 8 which is seventeen stages long and has outputs at its thirteenth and seventeenth stages. Since the contents of this register are always multiplied by 2<SP>-7</SP> or 2<SP>-11</SP> the lower significant places can be lost and the taps represent multiplication by the required values. The contents are fed via the sign digit preserver and AND gates 32 or 33 and 10 to the adder/ subtractor to be added to the sin # value stored in register 1. A similar operation is used to produce the cosine values. The most significant digit in the sine or cosine register is a sign digit, the next digit, if a "1" represents plus one in the positive representation and minus one in the negative representation. The remaining digits are always positive and represent successive halvings of 1. Thus ¥ = 0011 and twenty zero digits whereas -¥ = -1 + “ = 1101 and twenty zero digits. When multiplying by 2<SP>-7</SP> or 2<SP>-11</SP> the sign digits are shifted into positions having numerical significance. This is immaterial for positive number but significant for negative numbers. To counteract the effect produced a sign digit preserver is used which is put into a repeating position just before the sign digit arrives so as to repeat a "1" for a negative number, e.g. for -¥ 1101 followed by eight zeros for a positive fine increment, eight zeros followed by 1011 are received by the sign preserver. The last "1" is then repeated twelve times to give the required 24-digit number, the number resulting being equal to - ¥ 2<SP>-12</SP> as required for ¢ # where # = 2<SP>-11.</SP> The digit sign preserver, the adder and the sequence controller are shown in Fig. 5. Circles and AND gates and the number in the circle represents the number of "1"s required to enable the gate. Timing signals are shown in Fig. 3. Clock pulses feed counter 22 producing signals p1-p4, each cycle of which increases counter 23 producing pulses p1-p25 each cycle of which increases counter 24 producing pulses A1-A4 giving one iteration period of four-word periods, each word period including twenty-five four-bit digit periods. The sign digit preserver 36 has a flip-flop 63 controlling an AND gate 64 passing signals from the sine, cosine and auxiliary registers. The flip-flop is reset to enable the AND gate at the end of each word period. A flip-flop 60 is set just before the presence of a sign digit by the P13 or P17 for a ¢ # correction or a P12 or P16 pulses for a # correction. This allows the sign digit to pass AND gate 63 to set flip-flop 65 but prevents flip-flop 65 from being reset and thus retains the "1" The values entered in flip-flop 65 are stored in a Y flip-flop 72 for entry to the adder/subtractor 4. Data used in the adder subtractor are inputs X, Y and a carry or borrow K. The unit uses AND gates as shown to derive the following logical combinations Carry = XY+KX+KY Borrow = x<SP>Y</SP>+x<SP>K</SP>+KY Sum or difference = Carry (X+Y+K)+ XYK.