UNIVERSAL PROGRAMMABLE COUNTER/TIMER AND ADDRESS REGISTER MODULE

Abstract: Universal programmable modules provide timing and/or address register functions for a broad family of test instruments; such as counter timers, arbitrary function generators, and real time digitizers. The computer programmable apparatus (20) can be used as an accumulator, a time base generator or a memory address register. A clock input (50) receives a clock input signal. A computer input (32), which may include a bidirectional data bus (30), receives inputs from a computer. A processor (24) processes at least one of the clock input signal and the input from the computer to produce at least one output (56, 58, 78). A control circuit (50) controls the processor in accordance with further input from the computer to determine the output produced. An output selector (28), which may include a multiplexer (40) for directly addressing memory, selects at least one output to be used externally of the apparatus.

Description: UNIVERSAL PROGRAMMABLE COUNTER/TIMER AND ADDRESS REGISTER MODULE The present invention relates to universal program¬ mable modules for providing timing and/or address regis¬ ter functions for a broad family of test instruments. More particularly, the invention relates to a microcom¬ puter programmable time base generator for counter tim¬ ers, arbitrary function generators, real time digiti¬ zers, and pin electronics stimulus response generators; and to an address register module useful for regulating the flow of data into and out of an instrument memory. Electronic instruments designed for use in auto¬ matic test equipment must have precise and accurate time base generators and accumulators. Further in order to assure some degree of flexibility in test procedures such time base generators must be programmable in a va¬ riety of modes so as to be useful in instruments such as counter timers, arbitrary function generators and real time digitizers. In addition, it is necessary for such instruments to interact with a computer or microcomputer which directs instrument operation and acquires data generated by the instrument. Conventional instrument time base generators and computer memory interfaces require extensive logic cir¬ cuits to perform the complex functions required for the instrument to operate and to be properly interfaced to the microcomputer. Such logic circuits generally re¬ quire the use of many integrated circuits. Design costs are high for each specialized circuit. Hardware costs are also high. A great deal of circuit board area is required for such circuits, further increasing costs. Power consumption tends to be high, thus generating ex¬ cessive heat levels. Reliability is often not as high as would be desirable and trouble shooting is difficult and time consuming. In accordance with the invention, a programmable apparatus useful as a counter/timer, time base gener¬ ator, and memory address control or register is pro¬ vided. The apparatus includes a clock input means for receiving a clock input signal and a computer input means for providing input from a computer. A processing means processes at least one of the clock input signal and the input from the computer to produce at least one output. A control means controls the processing means in accordance with further input from the computer to determine the output produced. An output selecting means selects at least one output to be provided for use externally of the apparatus. The output selecting means, which includes at least one multiplexer, selects at least one output in response to additional input from the computer. The multiplexer has circuits useful for directly addressing a memory. The processing means includes a counter responsive to the clock input signal. Means for preloading the counter in accordance with the input from the computer are also provided. A register stores the count in the counter. The computer input means includes a bidirectional data means for receiving and transmitting data. It also includes an input data buffer for storing data to be loaded into the counter. In addition, the computer in¬ put means includes a command buffer or register for storing the further input from the computer. The registers and the counter provide outputs to the output selecting means. If the frequency of the clock is high, a prograπ- mable prescaler may be provided to divide the frequency to one suitable for use by the counter. The prescaler is programmable in accordance with input from the com¬ puter. In order that the invention may be readily carried into effect, it will now be described with reference to the accompanying drawings, wherein FIG. 1 is a block diagram of a universal programmable counter/timer an address register module according to the invention; FIG. 2A is a schematic diagram of a portion of the output multiplexer of FIG. 1; FIG. 2B % is a schematic diagram of an additional portion of the output multiplexer of FIG. 1; FIG. 2C -is a schematic diagram of yet another portion of the output multiplexer of FIG. 1; FIG. 2D is a schematic diagram of the remaining portion of the output multiplexer of FIG. 1; FIG. 3 is a schematic diagram of the command buffer of FIG. 1; FIG. 4 is a schematic diagram of the input data buffer of FIG. 1; FIG. 5 is a schematic diagram of the primary counter of FIG. 1; FIG. 6 is a schematic diagram of the pointer latch and external trigger countrol of FIG. 1; FIG. 7A is a schematic diagram of a portion of the prescaler and control of FIG. 1; FIG. 7B is a schematic diagram of the remainder of the prescaler and control of FIG. 1; FIG. 8 is a schematic diagram of the input controls portion of the input and clock control of FIG. 1; FIG. 9 is a schematic diagram of the clock controls portion of the input and clock control of FIG. 1; FIG. 10 is a block diagram of a counter utilizing three of the modules of FIG. 1; FIG. 11 is a block diagram of an arbitrary function generator utilizing three of the modules of FIG. 1; FIG. 12 is a block diagram of a real time digitizer utilizing three of the modules of FIG. 1; and FIG. 13 is a block diagram of a digital word generator utilizing two the modules of FIG. 1. The apparatus of the present invention is prefer¬ ably constructed by depositing two layers of metalliza¬ tion on a gate array of the type commonly available from semiconductor manufacturers such as Applied Micro Cir- cuits Corporation of San Diego, California. The result¬ ing semiconductor chip may be packaged as a 100 pin grid array. While occupying an area of only 1.25 inches by 1.25 inches on a circuit board and having a height of approximately 0.2 inches, such design and packaging per¬ mits the module of the present invention, in applica¬ tions where the circuitry thereon is fully utilized, to replace approximately 60 to 70 conventional SSI/MSI in¬ tegrated circuits. As an aid to understanding the drawings, it is noted that inputs or outputs of circuits having pin designation symbols in the form of a five sided figure are shown in bold print if lead out externally of apparatus 20 and are not in bold print when used internally. As a further aid to understanding FIGS. 1 to 9, the following table designates the symbols used to represent the various buses of the apparatus of the invention. BUS DESIGNATION address bus 22 ADDR internal data bus 36 DBUS programming bus 45 MBUS load bus 55 LBUS count bus 60 CBUS latch bus 64 PBUS status bus 72 SBUS The following symbols used in FIGS. 1 to 9 and their meanings are set forth below: E/E ECL to ECL operation T/E TTL to ECL operation S Output cell FF flip flop H high speed gate 1.2, r.sec delay of gate 1.3, etc. All references in FIGS. 1 to 9 to ground imply a connection to ECL logic zero. 0 Referring to the block diagram of FIG. 1, in order for the apparatus 20 of the present invention to be com¬ patible with a microcomputer (not shown), interconnec- c tions are provided for various functions. An address function provided by data on a 12 bit address bus 22 permits the microcomputer to designate a certain portion of memory for use with apparatus 20. The data on ad- 0 dress bus 22 is provided to input and clock control 24 and to a 8:1 multiplexer 26 of output multiplexer 28 (FIGS. 2A, 2B, 2C and 2D). The three least significant bits (binary 0, 1 and 2) of address bus 22 are used to designate which of three internal registers of apparatus 20 are to be loaded or read, as more fully described below. Data from the microcomputer memory designated may be supplied to apparatus 20, or data from apparatus 20 may be provided to the memory by means of a bidirec¬ tional tristate data bus 30 which may be of a conven¬ tional 8 bit type, or of 16 bits or more for greater precision. A tristate bidirectional receiver/driver circuit 32 (FIGS. 2A, 2B, 2C and 2D) terminates the end of bus 30 associated with apparatus 20. Data from the output of multiplexer 26 may be provided to the input of receiver/driver circuit 32 by internal bus 34. This data is then placed on bidirectional data bus 30 to be provided to the microcomputer. Data appearing on bus 30 is routed to the 8 bits of internal data bus 36 to be distributed to selected registers of apparatus 20. The direction of operation of receiver/driver circuit 32 is determined by a control signal from input and clock con- trol 24 provided on bus 38. Bus 38 also provides con¬ trol signals to 8:1 multiplexer 26 and 2:1 multiplexer 40 (FIGS. 2A, 2B, 2C and 2D) of output multiplexer 28. Data on internal data bus 36 is provided to command buffer 42, input data buffer 44 and control register 46 of prescaler and control 48 (FIGS. 7A, 7B) . Also necessary for interconnection of apparatus 20 to the microcomputer is a control bus 50 which provides inputs to input and clock control 24 for a chip select function, a clear function for an unconditional clear for initialization of registers and counters when power is turned on, read and write functions, and other func- tions as more fully described below. It is also neces¬ sary that timing functions on apparatus 20 be synchro¬ nized by an external clock (not shown). To this end, an ECL compatible input terminal is provided for a 100 MHz clock signal supplied as an input to prescaler 49 of prescaler and control 48 and a TTL input terminal is provided for lower frequencies as more fully described below. Prescaler 49 is programmed to provide various time bases by signals on a programming bus 45 from con¬ trol register 46 in accordance with command signals from input and clock control 24 appearing on bus 52. Bus 52 also supplies command signals from input and clock con¬ trol 24 to command buffer 42, input data buffer 44, and a primary counter 54. Pulses from prescaler 49 are con¬ ducted to input and clock control 24 by line 51. Data from apparatus 20 is provided directly to the memory of the microcomputer (without the need to do a block transfer of data) by means of a 12 bit ECL output bus 56 or a 12 bit TTL output bus 58, with the data thereon provided by outputs of 2:1 multiplexer 40. Mul¬ tiplexer 40 can provide, on buses 56 and 58, data from a first group of its inputs connected to address bus 22 or from a second group of its inputs connected to a count bus 60 having data thereon corresponding to the count of primary counter 54. Primary counter 54 may be preloaded with data from input data buffer 44 carried by load bus 55. Any one of eight different inputs to 8:1 multi- plexer 26 can be placed on bidirectional data bus 30 by way of bus 34 to the tristate receiver/driver circuit 32 under the direction of control signals on bus 38. The first two inputs of 8:1 multiplexer 26 are connected to ,_ the same buses as the inputs of 2:1 multiplexer 40; that is count bus 60 and address bus 22. A third input to multiplexer 26 is provided by the output of a pointer latch 62 by way of a latch bus 64. Pointer latch 62 (FIG. 6) stores the count from primar}- * counter 54 provided by count bus 60 when directed to do so by a signal on line 66 from external trigger control 68. This signal on line 66 is synchronized to clock by a clock pulse provided to external trigger control 68 on line 70 from input and clock control 24. A fourth input to multiplexer 26 is the data on a status bus 72 originating at command buffer 42. The data on status bus 72 is also supplied to input and clock control 24. This data is representative of the state of certain selected signals, some of which are not necessary to the operation of apparatus 20, but serve to facilitate a determination, made by automatic test equipment, as to whether apparatus 20 is functioning properly. Another input to multiplexer 26 is provided by a counter state bus 74 which originates at primary counter l 54 and provides data indicative of the state of counter 54. Counter state bus 74 also provides an input to in¬ put and clock control 24. Bus 74 is also lead out ex- 5 ternally of apparatus 20 to a series of pins represented by 76 to provide the signals on bus 74 directly. An additional input to multiplexer 26 is data from programming bus 45 as noted above, and as more fully 0 described below. A clock pulse output line 78 provides clock pulses and other outputs from input and clock control 24 exter¬ nally of apparatus 20 as more fully described below. 5 Reference is made to FIGS. 2A, 2B, 2C and 2D for the details of output multiplexer 28 of FIG. 1. Each bit of address bus 22 is terminated in one of receivers 0 80A to 80L. The output of each receiver 80A to 80L is supplied to a respective driver 81A to 81L. The output of each driver 81A to 81L is supplied to a respective first input of respective multiplexers 40A to 40L which 5 together constitute 2:1 multiplexer 40 (FIG. 1). The respective second inputs of multiplexers 40A to 40L are connected to corresponding bits of count bus 60. The selector input S of each of multiplexers 40A to 40L is 0 connected to a line corresponding to bit 3A of status bus 72 (SBUS3). Thus, the state of said bit of status bus 72 determines whether the contents of address bus 22 or that of county bus 60 is provided by the collective outputs of multiplexers 40A to 40L. The inputs of respective. ECL drivers 82A to 82L are each provided with the respective output of respective multiplexers 40A to 40L. The outputs of drivers 82A to 5 82L collectively constitute the bits of ECL output bus 56. The respective inverted outputs of multiplexer 40A to 40L are provided to respective inverters 84A to 84L, which in turn provide inputs for TTL drivers 86A to 86L. The outputs of drivers 86A to 86L collectively consti¬ tute the bits of TTL output bus 58. A respective inverter/driver 88A, 88C (FIG. 2A) and 88E (FIG. 2B) is provided for each of the three least 5 significant bits of address bus 22. The outputs of inverter/drivers 88A, 88C and 88E are designated as IAO IA1 and IA2. An additional inverter/driver 88E' (FIG. Ω 2B) is connected to the inverted output of input buffer 80E thus providing an output IA2N (or A2; that is, the logical opposite of A2). Outputs IAO, IA1, IA2 and IA2N are used internally for register selection as noted 5 above, and as more fully described below. A series of 16 4:1 multiplexers 26A to 26H and 26A 1 to 26H' (FIGS. 2A, 2B, 2C and 2D) collectively consti¬ tute 8:1 multiplexer 26 (FIG. 1). Multiplexers 26A to ° 26H and 26A' to 26H' each have four data inputs 10, II, 12 and 13. The presence of logic high or low on data select inputs SO and SI determines which of the four inputs 10, II, 12 and 13 is presented at data output Y. 5 Such output is not presented until an appropriate enable signal is present at enable input EN. 1 Multiplexers 26A to 26H and 26A 1 to 26H' operate in pairs, thus permitting one of two eight bit bytes to be presented on bidirectional tristate data bus 30. More .- specifically, the enable inputs of a first group of mul¬ tiplexers 26A to 26H are connected so as to assume the logic states of IA2. On the other hand, the enable in¬ puts of a second group of multiplexers 26A' to 26H' are 0 connected to IA2N. Thus either the first group is en¬ abled, or the second group is enabled, but never both groups. Further, the data outputs Y of each pair of multiplexers 26A and 26A' , 26B and 26B', etc. are con- ■ > nected to a respective OR gate 90A to 90H. It will be noted that OR gates 90A to 90F are simple wire OR gates, thus enhancing speed of operation. The respective out¬ puts of OR gates 90A to 90H are connected to respective 0 inputs of input buffers 92A to 92H of respective receiver/driver 32A to 32K which collectively constitute receiver/driver circuit 32. _ The outputs of buffers 92A to 9211 are connected to respective drivers 94A to 94H of receiver/drivers 32A to 32H. Drivers 94A to 94H each have a control input. When an output enable signal 0UTEN is applied to the 0 control inputs, drivers 94A to 94H present data on bidi- rection tristate data bus 30. The outputs of drivers 94A to 94H are also supplied to respective receivers 96A to 96H of receiver/drivers 5 32. The outputs of receivers 96A to 96H are in turn supplied to the inputs of respective drivers 98A to 98H. The outputs of drivers 98A to 98H provide the 8 tits of data on internal data bus 36. When drivers 94A to 94H are enabled by OUTEN the data supplied to bidirectional tristate bus 30 and internal data bus 36 is that from OR gates 90A to 90H originating at the output of the first group of multiplexers 26A to 26H or the data originating at the output of the second group of multiplexers 26A' to 26H'. When drivers 94A to 94H are not enabled by OUTEN, the tristate output of drivers 94A to 94H are in an open condition. Data on bidirectional tristate data bus 30 then appears at the inputs of receivers 9SA to 96H, and also as the above mentioned 8 bits of dsta on internal data bus 36. The outputs of drivers S1A to 81L, which represent the 12 bits of address bus 22, and are applied to the 10 input of one of multiplexers 26A to 26M and 26A 1 to 26M' . With reference to FIG. 2A, the least significant bit, or zero bit, A0 is applied to the 10 input of tnul- tiplexer 26A. The least significant bits of coust bus 60, latch bus 64 and status bus 72 are applied to inputs II, 12 and 13, respectively of multiplexer 26A. The eighth bit, A8 of address bus 22 is applied to irqpfut 10 of multiplexer 26A' by driver 8IB. The eighth bits of count bus 80, latch bus 64 and status bus 72 are applied to input II, 12, and 13, respectively, of multiplexer 26A'. The second least significant bit, or 1 bit, Al of address register 22 is applied to the 10 input of srulti- plexer 26B by driver 81C. Corresponding bits of count bus 60, latch bus 64 and status bus 72 are applied to inputs II, 12 and 13, respectively of multiplexer 26B. The ninth bit of address bus 22 is applied to the input of multiplexer 26B' by driver 81D. Corresponding bits of count bus 60, latch bus 64 and status bus 72 are ap¬ plied to inputs II, 12 and 13, respectively of multi¬ plexer 26B 1 . Select inputs SO of multiplexer 26A, 26A', 26B and 26B' are connected to the output of driver 81A while select inputs SI of multiplexer 26A, 26A', 26B and 26B' are connected to the output of driver 81C. Thus, the logic values of bits AO and Al of address bus 22 deter¬ mine which input to multiplexer 26A, 26A' , 26B and 26B' is present at the respective Y outputs. The outputs of multiplexers 26A to 26H and 26A' to 26H 1 are each determined in accordance with the follow¬ ing table: S Seelleecctt I Innppuuttss Output SO SI Y 0 0 10 0 1 II 1 0 12 1 1 13 Thus, the values of bits AO and Al select which corresponding bit's logic value of four buses (address bus 20, count bus 60, latch bus 64 or status bus 72) is presented at the output of multiplexers 26A, 26A* , 26B and 26B 1 . However, logic values of IA2 and IA2N deter¬ mine which byte the bit is actually selected from. For example, the logic value of either the least significant bit (0 bit) or the eighth bit of the selected bus is presented at the output of driver 94A to become the least significant bit of internal data bus 36 and the least significant bit of bidirectional tristate data bus 30 if OUTEN is at the appropriate logic level. In a similar manner, the logic value of the 1 bit or the 9 bit of the selected bus is presented at the output of driver 94B to become the value of the 1 bit of internal data bus 36 and of tristate data bus 30 if OUTEN is at the appropriate logic level. Referring to FIG. 2B, bits 2 of the same four buses are supplied as inputs to multiplexer 26C, while the 10 or A bits are supplied as inputs to multiplexer 26C. The three bits of the same buses are supplied as inputs to multiplexer 26D while the 11 or B bits are supplied to multiplexer 26D'. Select inputs SO of multiplexers 26C, 26C, 26D and 26D' are controlled by the value of IAO, while select inputs SI of said multiplexers are controlled by the value of IA1. Thus, the logic value of either the 2 or 10 bit appears as bit 2 of internal data bus 36 (and if required as bit 2 of bus 30). The logic value of either the third bit or the eleventh bit appears as bit 3 of internal data bus 36. Referring to FIG. 2C, the bit 4 inputs of address bus 22, count bus 60, latch bus 64 and status bus 72 are supplied to inputs 10, II, 12 and 13, respectively, of multiplexer 26E. The 0 bit of programming bus 45 is supplied to the 10 input to multiplexer 26E'. The 12 bit or C bit of count bus 60 is supplied to the II input of multiplexer 26E'. The output of a trigger flip-flop (FIG. 6) is supplied to the 12 input of multiplexer 26E', while the 13 input is connected to ground. The bit 5 lines of address bus 22, count bus 60, latch bus 64 and status bus 72 are connected to inputs 10, 12, 12 and 13, respectively, of multiplexer 26F. The 1 bit of programming bus 45 is supplied to the 10 input of multiplexer 26F' . Bit 13 or D of count bus 60 is supplied to the II input of multiplexer 26F'. The end of count output of a flip flop associated with pri¬ mary counter 54 (FIG. 5) is supplied to the 12 input of multiplexer 26F', while the 13 input is connected to ground. Select inputs SO of multiplexers 26E, 26E', 26F and 26F' are controlled by the logic value of IAO, while select inputs SI are controlled by the logic level of IA1. As noted above, logic values of IA2 and IA2N con¬ trol which output of multiplexers 26E and 2E 1 appears at the output of driver 94E and which output of multiplex¬ ers 26F and 26F' appears at the output of driver 94F. Referring to FIG. 2D, bit 6 of address bus 22, count bus 60, latch bus 64 and status bus 72 are sup¬ plied to the 10, II, 12 and 13 inputs, respectively, of multiplexer 26G. Bit 2 of programming bus 45 is sup- ■ j _ plied to the 10 input of multiplexer 26G 1 . Bit 15 or E of count bus 60 is supplied to the II input of multi¬ plexer 26G'. The logical inverse of the top count out- r- put of primary counter 54 (FIG. 5) is applied to the 12 input of flip flop 26G', while the 13 input is grounded. The bit 7 lines of address bus 22, count bus 60, latch bus 64 and status bus 72 are connected to the 10, 10 II, 12 and 13 inputs, respectively, of multiplexer 26H. Bit 3 of prograππing bus 45 is connected to input 10 of multiplexer 26H and bit 16 or F of count bus 60 is con¬ nected to the II input. The 12 input is connected to 15 J signal TCHTC1 (FIG. 5) from primary counter 54. Select lines SO of multiplexers 26G, 26G' , 26H and 26H 1 are controlled by the logic level of IAO, while select lines SI are controlled by the logic level of 20 IA1. Operation, based on the values of IA2 and IA2N is as described above. Referring to FIG. 3, command buffer 42 has a series p r of flip flops 100A to 100H which each receive respec¬ tively, at the D inputs thereof, data from respective bits 0 to 7 of internal data bus 36. Flip flops 100A to 100H are all reset by a signal RESET 4 from input and 30 clock control 24 (FIG. 8) and are clocked by a signal CPMODL from input and clock control 24 (FIG. 8) by way of gates 102A to 102H, respectively. The Q outputs of flip flops 100A to 100H are applied to status bus 72 as 35 bit 0 to bit 7. The QN (i.e. Q) outputs of flip flops 100A, 100B, 100E, 100F, 100G and 100H are also available for use throughout apparatus 20'. The QN output of flip flcp 100D is provided as an input to OR gate 104. The second and third inputs of gate 104 are grounded. The - > output of gate 104 is provided to the input of a driver 106 which generates the signal SBUS3B which is logically identical to SBUS3A. Two outputs are provided, instead of one, for additional fan out capability. 0 Command buffer 42 also has four flip flops 100A' to 100D 1 which each receive, respectively, at the D input thereof, data from respective bits 0 to 3 of internal data bus 36. Flip flops 100A' to 100H 1 are all reset by 5 a signal RESET 4 from input and clock control 24 (FIG. 8) and are clocked by a signal CPMODH from input and clock control 24 (FIG. 8) by way of gates 102A' to 0 102D* , respectively. The Q outputs of flip flops 100A' to 100D' are applied to status bus 72 as bit 8 to bit 11. The QN outputs are available as well. The signifi¬ cance of the CPMODL and CPMODH will be discussed below 5 with respect to FIG. 8. The programming of apparatus 20 is accomplished via status bus 72, because data thereon, used directly, and distributed by internal data bus 36, controls operation 0 of the various blocks of FIG. 1. The following table indicates how the various bits of status bus 72 are utilized. 5 STATUS BUS BIT UTILIZATION BIT FUNCTION FIG. NO. 0 On active low, load data from 9 computer (in input data buffer 44) into primary counter 54 1 Select prescaler terminal count or CPECL (less than 50 MHz) as primary time source 2 Select time base for CP1, CP2 9 and CP3. 0 = terminal count of primary counter 54, 1 = prescaler output 3 Select which one of the outputs of address bus 22 and count bus 60 appears on the H and K buses 2A-2D 4 Select external load pulse 5 (EXLD) to test counters or use internal terminal count for preset (PE inputs) 5 i slope selection 6 6 Select external trigger 6 7 On active low, load data from 9 external source into input data buffer 44 (used in conjunction with bit 4) 8 Test counter 54A 5 9 Test counter 54B 5 A Test counter 54C 5 B Test counter 54D 5 Referring to FIG. 4, input data buffer 44 is com¬ prised of eight pairs of flip flops 108A, 108A' to 108H, 108H 1 . Bits 0 to 7 of internal data bus 36 are con¬ nected, respectively, to the D inputs of said pairs of flip flops. Flip flops 108A to 108H are reset by a signal RESET 1, while flip flops 10SA' to 108H' are re¬ set by signal RESET 2 from input and clock control 24 (FIG. 8). Flip flops 108A to 108H are clocked by a sig- nal CPDATL (by way of gates 110A to 110H), while flip flops 108A' to 108H * are clocked by a signal CPDATH (by way of gates 110A' to 110H'), which originate in input and clock control 24 (FIG. 8) and are discussed more fully below. The Q outputs of flip flops 108A to 108H appear as bits 0 to 7 on load bus 55, while the Q outputs of flip flops 108A' to 108H' appear as bits 8 to F of load bus 55. Referring to FIG. 5, primary counter 54 is com¬ prised of four, four bit up counters 54A to 54D. Bits 0 to 3 of load bus 55 are connected respectively to the DO to D3 inputs of counter 54A. Bits 4 to 7 are connected to the corresponding inputs of counter 54B, bits 8 to 11 to those of counter 54C and bits 12 to 15 to those of counter 54D. Thus, counter 54 is a 16 bit up counter which can be preload with the data on load bus 55. The QON to Q3N outputs of counter 54A are the source of bits 0 to 3 of count bus 60. The QON to Q3N outputs of counter 54B are the source of bits 4 to 7 of count bus 60. The QON to Q3N outputs of counter 54C are the source of bits 8 to B, while the corresponding out¬ puts of counter 54D are the source of bits C to F of count bus 60. Counters 54A and 54B are clocked by signal CPC1, while counters 54C and 54D are clocked by signal CPC2, both from input and clock control 24 (FIG. 9). An external enable signal ENT (provided by a line of control bus 50) , which is active on logic low, is provided to an input of an ECL comparator 112. The out¬ put of comparator 112 is provided as an input to driver 114. The output of driver 114 is in turn provided as a first input to NAMD gate 116. A second input of NAND gate 116 is connected to the bit 9 line of status bus 72 (SBUS8). A third input of gate 116 is grounded. The output of gate 116 is connected to a first input of OR gate 118. The second input of OR gate 118 is connected to the output of a KAND gate 120. Two inputs of NAND gate 120 are grounded. The third input of gate 120 is connected to the logical opposite of SBUS8, SEUS8N. Thus, when SBUS8N is at logic low, or when SBUS8 and ENT are at logic low the output of gate 118 will be at a high logic level, thus providing an actuating signal to the count enable input CE of counter 54A. Counter 54A then counts upward in response to clock pulses CPC1, alloxtfing independent testing of counter 54A without an interaction with other counters. For example, EMT may cause counter 54A to count CPC1 pulses for a given time, after which a check is made by the microcomputer to de¬ termine whether the proper count is contained in counter 54A. , When counter 54A has a count of 15, the top count output TC thereof goes high and the TCN output, which is supplied to an input of NAND gate 122 goes low. A sec- t - ond input of gate 122 is connected to ground. The third input is connected to SBUS9, i.e., bit 10 of status bus 72. The output of NAND gate 122 is connected to one input of OR gate 124. The second input of OR gate 124 0 is connected to the output of NAND gate 126. Two inputs of NAND gate 126 are grounded, while a third input is connected to SBUS9N. The output of OR gate 124 is con¬ nected to the count enable input CE of counter 54B. 5 Thus, counter 54B counts pulses of CPCl when SBUS9N is at a logic low, or when the TCN output of coLinter 54A is low, indicating counter 54 is at full count and SBUS9 is low. This permits independent testing of counter 54B or 0 testing in conjunction with counter 54A. Bit 11 of status bus 72, SBUSA, is connected to one input of a NAND gate 128. The other two inputs are con¬ nected, respectively, to the TC outputs of counter 54A 5 and 54B. The output of NAND gate 128 is connected to one input of an OR gate 130. The other input of OR gate 130 is connected to the output of a NAND gate 132. Two 0 inputs of NAND gate 132 are grounded, while the third input is connected to SBUSAN. The output of OR gate 130 is connected to the count enable input of counter 54C. Thus, when SBUSAN is at logic low, or when the TCN out¬ 5 puts of gates 54A and 54B and SBUSA are all at logic low, counter 54C counts pulses of CPC2, and may be tested. The TCN outputs of counters 54A and 54B are also supplied to the first two inputs of NOR gate 134. The other two inputs of an EXCLUSIVE NOR gate 134 are grounded. The output of KOR gate 134 is connected to one input of NAND gate 136. A second input of NAND gate 136 is connected to the TCN output of counter 54C. The third input of NAND gate 136 is connected to SBUSB, the bit 12 line of status bus 72. The output of D gate 136 is connected to the input of OR gate 138. The other input of OR gate 138 is connected to the output of a NAND gate 140. Two inputs of NAND gate 140 are ground¬ ed, while a third input is connected to SBUSN. The out¬ put of OR gate 138 is connected to the count enable in- & put CE of counter 54D. Thus, counter 54D counts pulses of CPC2 when SBUSBN is low, or when the TCN output of counters 54A, 54B and 54C and SBUSB are all low. Coun- ter 5 D can thus be tested independently, or in conjunc¬ tion with counters 54A, 54B and 54C. The testing arrangement described above permits a full test of counter 54 with only 65 clock pulses. The Q1N, Q2N and Q3N outputs of counter 54A are connected, respectively, to the three inverting inputs of an ASD gate 142. The QON output of counter 54A is connected to one input of an OR gate 144. The other two inputs of gate 144 are connected to ground. Thus, the non-inverted output of gate 142 is high when counter 54A has a count therein of 14, or one less than its top count. The inverted output YN of gate 142 is connected to an input of inverting OR gate 146. The other three in¬ puts of gate 146 are connected to respective TCN outputs of counters 54B, 54C and 54D. The inverted output of TCNTLl of gate 146 is thus high when counter 54A is at count 14 and counters 54B, 54C and 54D are at count 15. TCNTLl is an internal pre-top count signal which is used to provide an indication to other components of appara¬ tus 20 that there is only one count to go before counter 54 is at a top count condition. TCNTLl is connected to one input of OR gate 148. The other input of OR gate 148 is grounded. The outputs of OR gate 148 are con¬ nected to the input of an output cell or driver 150, which provides a pre-top count output PR.ETC, externally of apparatus 20 when TCNTLl makes a transition from low to high. The TCN outputs of counters 54A to 54D are provided to respective inputs of inverting OR gates 152 and 154. The inverted output of gate 152, which is high only when all of counters 54A to 54D are at a top count of.15, is connected to an input of OR gate 156. The other input of OR gate 156 is grounded. The output of gate 156 is connected to a driver 158 which provides an output TCI externally of apparatus 20. The output of gate 152 is also connected to one input of OR gate 160. The other input of OR gate 160 is connected to ground. The in- verted output of OR gate 160 is connected to the input of driver 162 which provides a low output at TC2N when counter 54 is at top count. The output of gate 152 is also available as a sig¬ nal TCNT for use elsewhere in apparatus 20. Further, said output is applied as an output 10 to a 2:1 multi¬ plexer 164. The output of multiplexer 164 is connected to the D input of a flip flop 166. The Q output of flip flop 166 is connected to the II and select input SI of multiplexer 164. The clock input of flip flop 166 is connected to the output of an OR gate 168. One input of OR gate 168 is grounded, while another input is con¬ nected to CPC2. The Q output of flip flop 166 is high when reset, which causes multiplexer 166 to provide a logic high signal to input D of flip flop 166. A clock pulse applied by gate 168 which would tend to cause a change in state of output Q of flip flop 166, results in another logic high signal being supplied to the D input of flip flop 166 by way of multiplexer 164 whenever the output of gate 152 is high. It is only when the output of gate 152 is low, that a logic low signal is provided to the D input of flip flop 166 by way of multiplexer 164 upon application of a clock pulse CPC2 to gate 168. This causes the Q output of flip flop 166 to assume a low state, thus providing an end of count output EOCFF on the first clock pulse CPC2 after top count has been reached. ^ The output of flip flop 166 is also connected to one input of an OR gate 170. The other input of OR gate 170 is connected to ground. The inverted output of OR j- gate 170 is connected to an output cell or driver 172. When the Q output of flip flop 166 goes from high to low, an output EOC is provided externally of apparatus 20 when the end of count condition has occurred. 0 The output of OR gate 154 is connected to one input of a NAND gate 174. Another input of NAND gate 174 is connected to ground. The third input of NAND gate 174 is connected to the bit 5 line SEUS4 of status bus 72. 5 The output of NAND gate 174 is connected to one input of an OR gate 176. The other input or OR gate 176 is con¬ nected to the output of a NAND gate 178. A first input of NAND gate 178 is grounded and a second input is con¬ 0 nected to SBUS4N. The third input of NAND gate 178 is connected to a line EXLD originating in input and con¬ trol 24 (FIG. 9). c - The output of OR gate 176 is connected to the pre¬ load enable input of counters 54A to 54D. This output assumes a high state when counter 54 is at top count and SBUS4 is low, or when SBTJS4N and EXLD are both at logic 0 low. When either of these two enabling sets of condi¬ tions occur, data on load bus 55 is loaded into counters 54A to 54D. Appropriate clock pulses then cause counter 54 to count up from that count. 5 An input signal PΞSET 8 serves to reset counters 54A and 54B. Another input signal RESET 9 serves to reset counters 54C and 54D. These signals originate within input and clock control 24 (FIG. 8). Referring to FIG. 6, data from counter 54 corre- sponding to bits 0 to B of count bus 60 is provided to the D inputs of a series of flip flops 180A to 180L of pointer latch 62. The Q outputs of flip flops 180A to 180L are connected to bits 0 to B of latch bus 64. An external trigger is supplied by a line of control bus 50 to an ECL comparator 182 of external trigger control 68 (FIG. 6). The output of comparator 182 is in turn connected to a driver 184. The non- inverted output of driver 184 is connected to a first input of a NAND gate 186. A second input of NAND gate 186 is connected to SBUS5N. The third input of NAND gate 186 is connected to SBUS6N which serves as an ex¬ ternal trigger enable signal. The outputs of NAND gate 186 is connected to one input of an OR gate 188. The other input of OR gate 188 is connected to the output of a NAND gate 190. A first input of NAND gate 190 is connected to the inverted out¬ put of driver 184, a second input to SBUS5, and the third input to SBUS6N. The output of OR gate 188 goes high when SBUS6N, the non-inverted output of driver 184 and SBUS5N are all low. These conditions are indicative of triggering on the negative slope of the signal ap¬ plied to comparator 182. The output of OR gate 188 is also high when SBUS6N, SBUS5 and the inverted output of ECL comparator 184 are all low. These conditions are . indicative of triggering on the positive slope of the signal applied to comparator 182. The output of OR gate 188 is supplied to one input <- of OR gate 192. The other input thereof is grounded. The output of OR gate 192 clocks flip flop 194. The D input of flip flop 194 is connected to SBUS6. Thus when SBUS6N provides an enable external trigger signal by 0 being at logic low, SBUS6 provides a logic high signal which is asynchronously clocked to the Q output of flip flop 194 when the external signal applied to comparator 182 causes a change in the state thereof. 5 The Q output of flip flcp 194 is applied to the D input of flip flop 196. The clock input of flip flop 196 is connected to the output of an OR gate 198. A first input of OR gate 198 is grounded and the second 0 input is connected by line 70 (FIG. 1) to CPCl, the clock used by primary counter 54 and originating in in¬ put and clock control 24 (FIG. 9). Flip flop 196 is 5 thus synchronously clocked, on the pulse of CPCl occur¬ ring after the Q output of flip flop 194 goes high. The state of the Q output TRIGFF of flip flop 196 is thus indicative of an external trigger of selected slope hav- 0 i n g occurred and been synchronized to the pulse of CPCl immediately after the occurrence of said external trig¬ ger. The QN output of flip flop 196 is connected to an 5 input of an OR gate 198. The other two inputs of gate 198 are grounded. The output of gate 198 is connected to the input of a driver 200. Driver 200 has sufficient fan out capability so that the inverted output thereof, transmitted over line 66 (FIG. 1) , can drive the first input of each of a series of OR gates 202A to 202L. The second input of each of OR gates 2C2A to 202L is ground¬ ed. Thus outputs of OR gates 202A to 202L clock data on count bus 60 to latch bus 64, as noted above. A reset signal RESET 3 from input and clock control 24 (FIG. 8) resets flip flops 180A to 180L. It is difficult and often impossible to obtain per¬ formance characteristic which would provide a preset- table 16 bit counter capable of counting at 100 MHz with certain gate arrays. The use of prescaler 49, pro¬ grammed by control register 46, avoids this difficulty. Primary counter 54 may operate at a lower count rate, while prescaler 49 operates at 100 MHz. Preferring to FIG. 7A and FIG. 7B, control register 46 is comprised of four flip flops 204A to 204D having D inputs which are connected to bits 3 to 0, respectively, of internal data bus 36. Flip flops 204A to 204D are reset by a signal RESET 1 and are clocked by a signal CPPRE from input and control 24 (FIG. 8) by way of OR gates 206A to 206B. The Q outputs of flip flops 204A to 204D are the origin of bits 3 to 0, respectively, of programming bus 45. The QN outputs of flip flops 204A to 204D are provided, respectively, to the inputs of inverted OR gates 208A to 208D of prescaler 49. A four bit presettable binary counter, of a type well known in the art, is comprised of inverted OR gates 208A to 208D, 210A to 210D, 212A to 212C, 214A, 214B, wire OR gates 216A to 216D, and flip flops 218A to 218D. This ar- rangement is designed for high speed counting. Flip flops 218A to 218D are clocked by the 100 MHz system clock CP100 (FIG. 9) by way of CR gates 220A to 220D, respectively. The QN outputs of flip flops 204A to 204D of control register 46 provide preset inputs for flip flops 218A to 218D. Thus, prescaler 49 can generate time bases of predetermined width depending on the bina¬ ry number loaded into control register 46. Prescaler 49 functions as a divide by N counter, where N is the one's compliment of the bin?ry number in control register 46. The ON outputs of flip flops 218C and 218D, desig¬ nated as CNT1N and CNT0N (FIG. 7B) are each provided as an input to inverted OR gates 222 and 224 (FIG. 7A) . The QN outputs of flip flops 218A and 218B are also each provided as an input to inverted OR. gates 222 and 224. When the QN outputs of flip flops 218A to 218D are all low, prescaler 49 is at top count, and the inverted out¬ put of gate 222 is high, providing a signal COUNTN. The non-inverted output of gate 224 is low, providing a sig¬ nal LOADN (FIG. 7A) . COUNTN is supplied to one input of gate 210C and to one input of gate 210D. LOADN is sup¬ plied to a second input of gate 21OC and an input of gate 208D (FIG. 7B). COUNTN or LOADN are the outputs of prescaler 49 used as a tine base or clock. The occur¬ rence of COUNTN may be the event which causes loading of the number stored in control register 46 into prescaler 49. Flip flops 218A to 218D are reset by a signal RESET 6 from input and clock control 24 (FIG. 8). On the basis of a 100 MHz clock, prescaler 49 can produce pulses having time bases of 10 to 160 nsec in increments of 10 nsec. Time bases of 170, 180 and 190 nsec are not produced. However, the output of prescaler 49 may be provided to the input of primary counter 54 to produce time bases of from 20 to at least 20 milli¬ seconds (2 x 160 ns) in increments of 20 nsec, as described below. The input control section of input and clock con¬ trol 24 is shown in FIG 8. A base address specifying which of several input or output ports is to be opera- tively associated with the microcomputer at a given time is decoded therein, in a manner well known in the art. When the apparatus 20 of the present invention is se- lected, the microcomputer provides a logic low level by way of control bus 50 to external chip select input CSN. A receiver 226 converts from TTL to ECL and has an out¬ put connected to the input of a driver-228. The non- inverted output of driver 228 is connected to one input of an OR gate 230. The output of OR gate 230 is con¬ nected to the input of a tri-state enable driver 232. Driver 232 provides at its output the output enable sig¬ nal OUTEN used to enable drivers 94A to 94H (FIG. 2A, 2B, 2C and 2D). _ Control bus 50 also provides a read signal RDN to receiver 234 which in turn drives a driver 236. The output of driver 236 is connected to the second input of 5 OR gate 230. Thus, when RDN is at logic high, OUTEN will be high, and drivers 94A to 94H will be inhibited, as required for a write operation; that is writing data on bidirectional tristate data bus 30 from the microcom- 0 puter into a register of apparatus 20 by way of internal data bus 36. In a read operation; that is providing data to the microcomputer from one of the registers of apparatus 20, ^ RDN is at logic low, but a signal WRN, supplied by the microcomputer to a receiver 238 by a line of control bus 50, is at logic high. The output of receiver 238 is connected to the input of a driver 240. The output of 20 driver 240 is connected to one input of each of gates 242 and 244, which are both the logical equivalents of AND gates with inverting inputs and non-inverted and P _. inverted outputs, respectively. The output of driver 228 is connected to a second input of each of gates 242 and 244. A third input of each of gates 242 and 244 is connected to ground. The fourth input of gate 242 is 30 connected to internal address line IA2N. The fourth input of gate 242 is connected to internal address line IA2N. The non-inverted output of gate 242 is connected to the inverting enable input of a decoder 246. The 3 inverted output of gate 244 is connected to the enable input of decoder 248. Which output of each of decoders 246 and 248 assumes a logic high state is determined by internal address signals IAO and IA1 which are connected to the A and B inputs, respectively, of both of decoders 246 and 248. Assuming that chip select input CSN is at logic low, WRN is at logic low, and RDN is at logic high, the above described arrangement of gates 242 and 244 and decoders 246 and 248 produces outputs in accordance with supplied inputs to perform the operation as shown below. These operations are deemed write operations: WRITE OPERATION INPUTS OUTPUT PRODUCED A2 Al AO DECODER PIN TITLE OPERATION USED FOR 0 0 0 246 Yl CPDΛTL LOAD LOW BYTE DATA BUFFER 44 0 0 1 246 YO CPDATH LOAD HIGH BYTE DATA BUFFER 44 0 1 0 246 Y2 CPMODH LOAD HIGH BYTE COMMAND BUFFER 4 0 1 1 246 Y3 CPMODL LOAD LOW BYTE COMMAND BUFFER 4 1 0 0 248 YO CPPRE LOAD BITS CONTROL REG. 46 1 0 1 248 Yl CPBIT SOFTWARE ORDE FIG. 9 1 SELF TEST CLOCK PULSE 1 1 0 248 Y2 - RESET ALL REGISTERS 1 1 1 248 Y3 - RESET ALL NON¬ PROGRAMMABLE REGISTERS A microcomputer software ordered reset of all reg¬ isters is accomplished, as noted above, when the Y2 out¬ put of decoder 248 is applied to a first input of each of OR gates 250A to 250H. The output of each of OR gates 250A to 250H is connected to the input of a.re¬ spective driver 252A to 252H which produce, at the re¬ spective outputs thereof, RESET 1 to RESET 6, RESET 8 and RESET 9. A microcomputer software ordered reset of all non¬ programmable registers is accomplished, as noted above, when the Y3 output of decoder 248 is applied to a second input of each of OR gates 250C, 250F, 250G and 250H. The corresponding input of OR gates 250A, 250B, 250D and 25OE are grounded. Thus only RESET 3, RESET 6, RESET 8 and RESET 9 are driven to logic high, resetting, respec¬ tively, only pointer latch 62, prescaler 49 and primary counter 54. The registers having loaded values, i.e., input data buffer 44, control register 46, and command buffer 42 are not disturbed, and the values loaded therein are retained for use in subsequent operations. Assuming that CSN is at logic low, RDN is at logic low and WRN is at logic high, address bits AO, Al and A2, also used internally as IAO, II and IA2, control multiplexer 26 to load data from, address bus 22, count bus 60, latch bus 64 and status bus 72 on to internal data bus 36. These operations, shown below, are deemed to be read operations. READ OPERATIONS INPUTS TO MULT IPLEXER 26 DATA TO INTERNAL DATA BUS 36 A2 Al AO BUS BYTE 0 0 0 ADDRESS BUS 22 LOW 0 0 1 COUNT BUS 60 LOW 0 1 0 LATCH BUS 64 LOW 0 1 1 STATUS BUS 72 LOW 1 0 0 ADDRESS BUS 22 HIGH 1 C 1 COUNT BUS 60 HIGH 1 1 0 L-_TCH BUS 64 HIGH 1 1 1 STATUS BUS 72 HIGH It is desirable to clear all registers when power is initially applied to apparatus 20, or the microcom¬ puter associated therewith. An external clear input CLEAR, is provided, on a line of control bus 50, to a receiver 254. The output of receiver 254 is connected to a driver 256. The inverted output of driver 256 is connected to the third input of OR. gates 250A to 250H, thus providing a reset of all registers when CLEAR is at logic low. Referring to FIG. 9, an ECL clock CPECL or its log¬ ical opposite CPECLN are supplied to the clock control portion of input and clock control 24 by lines of con¬ trol bus 50. A receiver 258 processes CPECL and sup¬ plies an output to the non-inverting input of a driver 260. A receiver 262 process CPECLN and supplies a sig¬ nal to the inverting input of driver 260. The inverted output of driver 260 is connected to the B input of a NAND gate 264. The A input of NAND gate 264 is con¬ nected to SBUS1. The output of NAND gate 264 is con- nected to the input of a driver 266. The 100 MHz ECL clock appears at the output of driver 266 and produces the output CPiOO used as an input for prescaler 49 (FIGS. 7A and 7B) only if SBUS1 is at a high logic level. The output EOCFF of end of count flip flop .166 (FIG. 5) is provided to the A input of an A_ND gate 268. EOCFF is also provided to a first input of an OR gate 270. The second input of OR gate 270 is grounded. The inverted output of OR gate 270 is connected to the input of an output cell or driver 272, which provides an out¬ put EOCN external of apparatus 20. The B input of AND gate 268 is connected to SBUS4. A logic high output is produced by gate 268 only when counters 54A to 54D of primary counter 54 are at an end of count condition. The output of AND gate 268 is con¬ nected to a first input of an AND gate 274 having three inverting inputs. A second input of gate 274 is con¬ nected to SBUS1N. The third input of gate 274 is con- nected to the inverted output of an AND gate 276. Both inputs of AND gate 276 are connected to the top count output COUNTN of prescaler 49. Thus, gate 274 will pro¬ vide a logic high output to OR gate 278 only when pre¬ scaler 49 is not in a top count condition, the output of AND gate 268 is low, and SBUS1N is low. This last con- 1 dition results in prescaler 49 being used to provide a clock input for primary counter 54. The second input of OR. gate 278 is connected to the - output of an AND gate 280 having three inverting inputs. A first input thereof is grounded. A second input is connected to the inverted output of driver 260. The third input is connected to SBUS1. ° The output of OR gate 278 is connected to one input of each of OR gates 282 and 284. A second input of each of OR gates 282 and 284 is connected to the output of an OR gate 286. One input of OR gate 286 is driven by a 5 TTL to ECL receiver, which receives a TTL clock pulse CPTTL, of a frequency under 50 MHz, along a line of con¬ trol bus 50. The third inputs of OR gates 282 and 284 are connected to the CPBIT output of decoder 248 (FIG. 8). The output of gates 282 and 284 are connected to the inputs of respective drivers 290 and 292, which gen- 5 erate, respectively clock signals CPCl and CPC2 used by primary counter 54 (FIG. 5). The inputs to gates 268, 276, 280, 278 and 274 de¬ termine whether the input clock goes to primary counter 0 54 or prescaler 49. When SBUS1N is low, the top count of prescaler 49 appears as the input for primary counter 54. Gates 282 and 284 permit a selection of one clock 5 from the group consisting of the clock provided as above, CPTTL or CPBIT. 1 In applications where it is necessary to generate a time base, the top count TCNT of primary counter 54 may be used. TCNT is provided to the 10 input of a nulti- 5 plexer 294. The II input is connected to CPCl. The select input SI of multiplexer 294 is connected to SBUS 2. When SBUS2 is low, TCNT appears at the output of multiplexer 294. When SBUS2 is high, the output of ° prescaler 49 or the 100 MHz clock signal appears at the output of multiplexer 294, the selection being made as previously described. The non-inverted output of multi¬ plexer 294 is converted to an output cell or driver 296. 5 T,he output of driver 296 is available externally of ap¬ paratus 20 as an ECL nominal clock output CPOUT 1. The inverted output of multiplexer 294 is provided to one input of OR gate 298. The second input of OR gate 298 is grounded. The output of OR gate 298 clocks a flip flop 300. The QN output of flip flop 300 is con¬ nected to the D input thereof. Thus flip flop 300 pro- 5 duces a symmetrical output waveform at half the fre¬ quency of CP0UT1, which is generally not symmetrical. Flip flop 300 is reset by RESET 8. The Q output of flip flop 300 is connected to a ° first input of OR gate 302. The second input thereof is grounded. The inverted output of OR gate 302 is sup¬ plied to an output cell or driver 304 which provides an ECL symmetric clock output CP0UT2 externally of appara- 5 tus 20. The QN output of flip flop 300 is connected to a first input of an OR gate 306. The second input thereof is grounded. The output of OR gate 306 drives a TTL output cell 308 which provides TTL symmetric clock out¬ put CPOUT 3 externally of apparatus 20. Control bus 50 has an additional two lines LOAD 1 and LOAD 2 which are used to supply signals directing the preloading of counter 54. LOAD 1 is a TTL signal supplied to a TTL to ECL receiver 310. The output of receiver 310 is supplied to one input of an OR gate 312. The other input of OR gate 312 is grounded. The invert- ing output of OR gate 312 is supplied to an input of a gate 314 which serves as an AND gate with inverting in¬ puts and an inverted output. LOAD 2 is an ECL signal which is connected to the input of an ECL comparator 316.' The output of compara¬ tor 316 is connected to the input of a driver 318. The inverted output of driver 318 is connected to another 5 input of gate 314. The remaining inputs of gate 314 are grounded. The inverted output of gate 314 is connected to a first input of NAND gate 320. A second input of NAND ° gate 320 is connected to SBUS7N. The third input there¬ of is grounded. The output of NAND gate 320 is connect¬ ed to a first input of OR gate 322. A second input of OR gate 322 is connected to the output of NAND gate 324. 5 Two inputs of NAND gate 324 are grounded, while the third is connected to SBUSON. The inverted output EXLD of OR gate 322 is used to cause primary counter 54 to preload data from input data buffer 44 on load bus 55. i- This occurs when SBUSON is at logic low, or when one of LOAD 1 or LOAD 2 and SBUS7N are at logic low. It is thus apparent that apparatus 20 nay be pro¬ grammed by appropriate lcgic signals from a microcom- 0 puter to provide time base signals, to serve as a coun¬ ter, or to directly address memory . Further, count and address data from apparatus 20 may readily be acquired by the microcomputer. ^5 Referring to Fig. 10, three modules 20A, 20B and 20C constructed according to the invention are used in a counter/timer 326. A 100 MHz clock is provided to module 20A to provide an appropriate time base, when 0 module 20A is programmed by a microcomputer. The tine base output of module 20A is connected to a first input of a gate 328. A second input of gate 328 is connected to the output of a conventional selector 330 of the type generally used in a counter/ imer. A first input of se¬ lector 330 is connected to the output of a comparator 332A which is fed by a driver 334A. A second input of 0 comparator 332A is connected to a first reference volt¬ age VREF1. Conparator 332A should have some hysteresis. A signal representative of a first event is applied to an input CHA of a microcomputer programmable atten- 5 uator 336A. The output of attenuator 336A is connected to the input of driver 334A. The arrangement and opera- tion of comparator 332A, driver 334A and attenuator 336A, are well known in the art. A comparator 332B, a driver 334B and an attenuator 336B provide another channel for an input CHB. Compara¬ tor 332B is provided with a reference voltage VREF2. The output of comparator 332B is connected to selector 330. The output of gate 328 is connected to a module 20B constructed according to the invention, which serves as a count accumulator for counts gated through gate 328. If the count will be large enough to fill primary counter 54 and cause an overflow, a second module 20C is provided to count the top count output of nodule 20B. Count data from modules 20B and 20C is provided to the microcomputer. When modules 20B and 20C are both used, a counter/tiner with a 32 bit accunulator is produced. FIG. 11 illustrates how three modules 20D, 20E and 20F of the present invention can be utilized to provide a nicroconputer controlled arbitrary function generator 338. A stable frequency source such as a 100 MHz clock is connected to the input of module 20D which is pro¬ grammed by the microconputer to act as a time base gen- erator. The tining output of nodule 20D is supplied to nodule 20E which is configured as a burst counter and programmed to provide a signal to module 20D when the required predeternined nunber of repetitions of the ar- bitrary function have been generated. The output of nodule 20D is also supplied to module 20F which is pro- granmed as a nenory address control. Module 20F con¬ trols a stinulus nenory 340 loaded with computer sup¬ plied stinulus data for making up the arbitrary func- tion. When an external trigger is supplied to nodule 20F, a base address 342 in stimulus nenory 340 is accessed. Base address 342 has a bit which is used to provide a unique indication that base address 342 has been ac¬ cessed. For exanple, this bit nay be of logic value "1" while the corresponding bits in other addresses in stin¬ ulus * nenory 3 0 are a logic zero. When this logic one bit is detected, a synchronization signal indicating the start of the arbitrary function is produced by a buffer 344. Module 20F steps through the locations in stinulus nenory 340 providing the data in each location sequen¬ tially to a digital to analog converter 346 upon succes¬ sive pulses of the tine base generator (nodule 20D) to the nenory address control (nodule 20F). The output of digital to analog converter 346 is supplied to a buffer 348 which has sufficient output drive capability to pro¬ vide a signal to be used for test or other purposes. When the function produced by the data in stimulus nem- ory 340 has been repeated the nunber of tines programmed into the burst counter (nodule 20E) , operation ceases until a nicroconputer reset has occurred and a new trig¬ ger signal is received by nodule 20F. FIG. 12 illustrates the manner in which three nod¬ ules according to the present invention nay be intercon- nected to provide a digitizer 350 for storing a digital representation of an analog signal. A clock, preferably of 100 MHz, is provided to the input of a first module 20G configured as a tine base generator. The time base output CPOUT thereof is supplied to a second nodule 20H used as a memory address control. CPOUT is also sup¬ plied to a third nodule 201 which serves as a sanples to go counter. An input signal to be digitized is provided to an input terninal having a standard 50 ohm terminating re¬ sistor 352, connected therefrom to ground. A program- nable attenuator 354 adjusts the level of the signal so that it is suitable as an input for a buffer 356. A sample and hold circuit 358 sanples the output of buffer 3 and periodically holds the value thereof for conver¬ sion by an analog to digital converter 360. The output of analog to digital converter 360 is provided as a dig¬ ital input to a circular nenory file 362. A synchronization pulse is provided as an input to a buffer 364. The output thereof is provided to a driv¬ er 366 having hysteresis so as to prevent undesirable nultiple triggering. The output of driver 366 is pro- vided to the nenory address control (nodule 20H) and the samples to go counter (nodule 201) . Module 20H is programmed by the nicrocomputer so that the count bus 60 thereof has data thereon, from prinary counter 54, corresponding to the address in nen¬ ory 362 being accessed by nodule 20H. When a synchroni- 1 zation signal is received, this value is stored in pointer latch 62 and provides a reference corresponding to a location in memory 362. The output of driver 366 5 is also supplied to the ENT input of the sanples to go counter (nodule 201) to serve as a count enable signal. The samples to go counter (nodule 201) is programmed by the nicroconputer to count a predetermined nunber of tine base signals fron nodule 20G, corresponding to a like nunber of locations in memory 362. After the pre- deternined nunber has been reached, nodule 201 provides an end of count EOC pulse to nodule 201!, preventing ad- 15 ditional locations in memory 362 fron being addressed, and therefor holding the data desired in digital for in menory 362. r_ Q It will be understood that the value programmed into the sanples to go counter (module 201) by the nicroconputer can be used to provide storage of the analog signal being digitized for a period of time 25 before or after the occurrence of the synchronization pulse, as circular nenory 362 is constantly updated with new data written over the oldest data therein, at a rate determined by the tine base provided to nodule 20H by 30 module 20G. An additional module (not shown) according to the invention may be used to provide a time delay, after the occurrence of a synchronization pulse, before the exter- 35 nal trigger and count enable signals are supplied to nodules 20H and 201, respectively. Referring to FIG. 13, a digital word generator 368 is constructed using a tine base generator module 20J and a memory address control module 20K according to the invention. The output of a stable oscillator, prefer¬ ably of 100 MHz, is provided to nodule 20J. In accord¬ ance with the output of nodule 20J, nodule 20K is used to address a stinulus nenory 370, a response nenory 372, a tristate control memory 374 and an expected response nemory 376. Stimulus nemory 370 may be an N bit by M bit mem¬ ory, where N is the nunber of bits or outputs presented at any given tine, and K is the number of different out¬ puts to be presented. Upon being accessed by nodule 20K, the data in one of the M locations of nenory 370 is provided to an N bit driver 378 and placed on a bidirec¬ tional tristate data bus 380 when an appropriate enable signal is received fron tristate control nenory 374. Data bus 380 provides the data thereon to a unit under test (not shown) . Data returns from the unit under test on bus 380 (or a separate bus 382, is as ap¬ propriate if a switch 384 is open) and is provided to a receiver 386. The output of receiver 386 provides the returning data to response nemory 372 which is under the control of nodule 20K. A digital conparator 388 com¬ pares the data being provided to response memory 372 with data from the corresponding address location in expected response nenory 376. If the response fron the unit under test does not correspond to the expected re- sponse, comparator 388 provides an output which nay be used, for exanple, to stop the test. Conparator 388 nay also be configured with appropriate circuitry for indi- eating that one of the bits of data returned from the unit under test is neither logic high or logic low, but is at a level sonewhere between. From the above, it is apparent that the apparatus of the present invention has widespread applicability in a broad range of test instruments as a time base gener¬ ator, an events accumulator, or as a memory address con¬ trol. Although shown and describe in what is believed to be the most practical and preferred enbodinent, it is apparent that departures fron the specific design de¬ scribed and shown will suggest thenselves to those skilled in the art and nay be nade without departing fron the spirit and scope of the invention. I, there¬ fore, do not wish to restrict nyself to the particular constructions described and illustrated, but desire to avail nyself of all nodifications that may fall within the scope of the appended clains.

Claims: WHAT IS CLAIMED IS: 1. A computer programmable apparatus comprising: a clock input means for receiving a clock input signal; a computer input means for providing input from said computer; a processing means for processing at least one of said clock input signal and said input from said computer to produce at least one output; a control means for controlling said processing means in accordance with further input from said computer to determine the output produced; and an output selecting means for selecting said at least one output to be used externally of said apparatus. 2. The apparatus of Claim 1, wherein said output selecting means selects said at least one output in response to additional input from said computer. 3. The apparatus of Claims 1 or 2, wherein said processing means comprises: a counter (54) for counting pulses of said clock input signal; and means (55) for preloading said counter with a value in accordance with said input from said computer. 4. The apparatus of Claims 1-3/ wherein said computer input means includes a bidirectional data means (30) for receiving and transmitting data; an input data buffer (44) and said processing means includes a counter (54)/ said input data buffer (44) being for storing data to be loaded into said counter (54) ; and a command buffer (42)/ said command buffer (44) being for storage said further input from said computer. 5. The apparatus of any one of the preceding claims/ wherein said output selecting means includes at least one multiplexer/ said multiplexer having output circuit means for directly addressing a memory. 6. The apparatus of any one of the preceding claims/ wherein said processing means includes a counter (54) responsive to said clock input signal/ a register (62) for storing the count in said counter/ said register (62) providing an output to said output selecting means/ and said counter (54) providing an output to said output selecting means. 7. The apparatus of Claim 6 further comprising external input means (68) for causing said register (62) to store said count in said counter (54) upon application of a signal to said external input means (68). 8- A computer programmable apparatus comprising: a clock input means for receiving a clock input signal; a computer input means for providing input from said computer/ said computer input means including: an address input (22) for providing to said apparatus an address supplied by said computer; and a control input means (50) for providing to said apparatus control inputs supplied by said computer; a data transmission means (30) for inputting data to said apparatus and outputting data from said apparatus; and processing means for processing at least one of said clock input signal/ said address and said data in accordance with said control inputs to provide at least one output signal. 9, The apparatus of Claim 8/ wherein said processing means includes a command buffer (42) for receiving and storing data from said data transmission means/ said data being programming data for programming said processing means; and an input data buffer (44) for receiving and storing data from said data transmission means. 10. The apparatus of Claim 9, wherein said data buffer (44) comprises a first group of flip flops clocked in response to a first control input and a second group of flip flops clocked in response to a second control input. 11. The apparatus of any one of Claims 8-10/ wherein said processing means comprises a counter (54) for counting pulses of said clock input signal; said data stored by said input buffer being used to preload said counter; and a latch (62) for storing the value of a count in said counter. 12. The apparatus of any one of Claims 8-11/ further comprising an output selector means for selecting one of said at least one output signal produced by said processing means for output by said data transmission means. 13. The apparatus of any one of Claims 8-12/ further comprising: an internal data bus (36) for transmitting internally of said apparatus data being transmitted by said data transmission means; and loading means for preloading said data stored in said input data buffer into said counter means. 14. The apparatus of Claims 11-13/ wherein said counter means comprises a prescaler (49) for receiving and frequency dividing said clock signal to produce a divided clock signal, and a primary counter (54) for counting said divided clock signal. 15. The apparatus of Claims 13 or 14/ wherein said loading means pre-loads said primary counter with data in said data buffer. 16. The apparatus of Claims 14 or 15/ further comprising a control register (46) for receiving and storing counter control data on said internal data bus (36)/ additional loading means for supplying said counter control data to said prescaler; and means for supplying said control data as an input to said output selector means for transmission on said data transmission means.

Inventors: LEBEL JOSEPH A, LEBEL, JOSEPH, A.
Applicants: GRUMMAN AEROSPACE CORP, GRUMMAN AEROSPACE CORPORATION
Application year: 1987
Main classification: G06F9
IPC codes: G01R31, G06F1, G06F11, G06F13