Abstract:
A programmable interface to selectively couple the terminals of an electronic system to desired circuit locations within the system. By applying programming signals to the input terminals of the interface in a prescribed sequence, the interface is programmed so that subsequently applied control signals will be coupled to the desired circuit locations. The function served by each terminal thus depends on the programming sequence. Reprogramming can change the function of each of the terminals by coupling them to different circuit locations.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to means for coupling an electronic system to a source of control signals. 
     2. Prior Art 
     The present invention is concerned with coupling control signals to the appropriate point in an electronic system. The need for a system such as is disclosed herein can arise, for example, in the manufacture of LSI semiconductor chips. Manufacturers often make the same basic product for two or more customers, but because of customer interface requirements must make two or more products which differ only in the pin number assignments for the various control signals. A certain customer may, for example, request that a &#34;read&#34; signal be applied to pin 2 and a &#34;write&#34; signal to pin 5 whereas a second customer who wishes to purchase the identical product wishes &#34;read&#34; to be applied to pin 7 and &#34;write&#34; to pin 2. 
     According to prior art technology, in order to satisfy the two customers, the manufacturer would be obliged to make two different products differing only in the pin assignments. 
     Prior to the present invention there has been no means available to make internal control signal connections in an electronic system after manufacture is complete. 
     SUMMARY OF THE INVENTION 
     The programmable interface of the present invention allows an electronic system to be manufactured and tested prior to making a decision as to an allocation of which input terminals are to be used for the various control signals. The interface can be initially programmed to allocate the required control signals to predetermined input terminals for the purpose of testing, and later the interface can be reprogrammed, changing the terminal allocations to suit a particular application. 
     The invented interface includes a gated crossbar switch type of arrangement which provides multiple possible paths for control signals applied to the input terminals. Each column of the crossbar is coupled to an interface input terminal, and each row of the crossbar is coupled to an interface output (i.e., the controlled system input). Those intersections which are possible signal paths are connected by a gate which is controlled by an EEROM (electrically erasable read-on memory). By setting the appropriate EEROMs, control signals applied to the interface input terminals will be gated to the desired system inputs (crossbar outputs). 
     Programming to set the EEROMs is accomplished by applying programming pulses to the interface input terminals in a predetermined sequence. No additional or special terminals are required to accomplish the programming function. This is possible because the programming pulses have a form which differs from any control signal which may be applied to the interface input during normal operation. Thus normal control signals will not affect the programming. For example, if the normal system operation involves 5 volt control signals, the programming pulses may have a 10 volt amplitude. Also, once a particular interface input terminal is programmed to be coupled to a system input, a lockout signal prevents that terminal from being coupled to any other system input unless a complete reprogramming is undertaken. Therefore, unless a programming initiation signal occurs, once programming is done, even 10 volt pulses to the interface inputs will not affect the programming. The programming initiation signal in the presently preferred embodiment of the invention involves raising the system power voltage from 5 to 10 volts for a short period of time. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram showing how the present invention may be connected to an associated electronic system which is to be controlled. 
     FIG. 2 is a block diagram of a particular example of an interface according to the present invention connected to an associated electronic system showing the control signal paths through the interface, as programmed according to the example described in the specification. 
     FIG. 3 is a schematic diagram of one type of Control Signal Coupler used in a presently preferred embodiment of the invention. 
     FIG. 4 is a schematic diagram of a second type of Control Signal Coupler used in a presently preferred embodiment of the invention. 
     FIG. 5 is a schematic diagram of a specific example of a programmable interface according to the present invention. 
     FIG. 6 is a timing diagram showing the sequence of programming pulses used to program the example described in the specification. 
     FIG. 7 is a timing diagram similar to that shown in FIG. 6 but using a different form of programming pulse. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 1 shows an electronic package 10 which is comprised of an electronic system 11 to which is coupled a programable interface 12 according to the present invention. Pins P 1 , P 2 , . . . P n  are used to carry control signals to the interface 12 which in turn directs them to the appropriate system inputs I 1 , I 2 , . . . I n  as desired, not necessarily in that order. For example, in a particular application, it may be desired that the control signal applied to pin P 1  be coupled to system input I 23 , P 2  to I 5 , etc. By properly programming interface 12, any signal applied to P 1  will be coupled to I 23 , P 2  to I 5 , etc. The programming can be done after manufacture and test has been completed. At a later time the interface can be reprogrammed to, for example, couple control signals from P 1  to I 5  or any other I input instead of I 23 . Coupling of the pins P 1 , P 2  . . . P n  to the desired I inputs is accomplished through a gated crossbar switch which is indicated in FIG. 1 by the dotted lines within interface 12. The dotted lines show the P busses as columns and the I busses as rows. Each intersection which represents a possible signal path for a particular application is coupled with a gate which is controlled by an EEROM as described below. 
     For purposes of explanation, the schematic of a relatively simple programable interface is shown in FIG. 5. A block diagram of this simple example is shown in FIG. 2. The interface of FIG. 5 has three input pins P 1 , P 2 , and P 3  which are to be coupled to system inputs I 1 , I 2 , and I 3 . In the interface example as shown in FIG. 5, P 1  can be coupled to I 1 , I 2 , or I 3  ; P 2  can be coupled to I 2 , or I 3  ; and P 3  can be coupled to I 1  or I 3 . 
     The interface 12&#39;, as noted above is arranged in the form of a crossbar switch with a series of input busses corresponding to the input terminals P 1 , P 2 , and P 3 , and a series of output busses corresponding to the controlled electronic system inputs I 1 , I 2 , and I 3 . A control signal coupler (designated as 13 or 14) is connected at each intersection of a P and I bus which corresponds to a possible coupling path. For purposes of explanation, numerical designations which refer to a component specifically associated with a particular input terminal P and system input I are coded with two dash numbers, the first being the terminal number and the second being the system input number. For example, the coupler associated with P 2  and I 3  is designated 14-2-3. 
     It will be noticed that no Control Signal Couplers appear at the P 2  /I 1  or P 3  /I 2  intersections. That is because for purposes of explanation an example was chosen which did not contemplate P 2  ever being coupled to I 1  , or P 3  coupled to I 2  hence couplers at these intersections are not needed. It will also be noticed that the Control Signal Couplers (13) associated with the I 1  bus are not the same as the Control Signal Couplers (14) associated with the other I busses. The reason for this will become evident as the operation of the interface is explained. 
     The VCC terminal is used to supply power to both the interface 12&#39; and the system 11&#39;, and is also used to feed a reset signal to the interface as a prelude to programming or reprogramming. 
     FIG. 3 is a circuit diagram of the Control Signal Coupler 14. Control signals are coupled through the coupler from the P bus to the I bus via AND gate 20 and diode 21. AND gate 20 allows a signal on the associated P bus to pass when the output of EEROM 22 is high. 
     EEROM 22 is a one bit electrically erasable programable memory and is set or erased by signals applied to its SET or ERS inputs respectively. A set signal requires simultaneous signals on the P bus, the LKT (lockout) terminal, and the ENI (enable input) terminal. Erase requires only a signal on the RST (reset) terminal. The set function is accomplished through AND gates 26 and 27. When EEROM 22 is set (output high) it not only enables AND gate 20, but it provides a signal to the DIS (disable) bus through diode 23. Finally, when AND gate 20 is on and a signal appears on the PHI (P high) terminal, a signal is provided by AND gate 24 through diode 25 to the ENO (enable output) terminal. 
     Control Signal Couplers of the type shown in FIG. 3 are used at all of the active P bus/I bus intersections except those associated with the I 1  bus. The couplers associated with the I 1  bus (13) are of slightly different design and are shown in FIG. 4. Components of the Control Signal Couplers 13 which are the same as those of the Control Signal Couplers 14 are designated by the same numeral with an added prime to differentiate between the uses. 
     The difference between the couplers 14 and 13 resides in the erase function for the EEROM. In coupler 14 the EEROM is erased by a signal applied to the RST terminal without further condition. In coupler 13 the RST signal is applied to AND gate 28&#39; which requires that AND gate 26&#39; be off before it can generate the ERS signal to erase the EEROM. 
     Referring back to FIG. 5 it can be seen that each of the P terminals is coupled to the PHI terminals of its associated Control Signal Couplers through a zener diode (30-1, 30-2, and 30-3). The zener diodes 30 are each 5 volt zener diodes so that when any voltage up to 5 volts is applied to a P terminal the voltage at the associated PHI terminals will be zero. If 10 volts is applied to a P terminal, 5 volts will appear at the PHI terminals. Resistors 31 are provided between the zener diode cathodes and ground because the high impedances involved in the circuitry may prevent proper operation without a ground return. Similar resistors 31 are provided at other points in the circuit for the same reason. 
     The VCC terminal serves as the power input terminal for both the interface circuitry and for the controlled system 11&#39;. In addition, a 5 volt zener diode 30-V couples a 5 volt signal to the interface circuitry when VCC is raised to 10 volts. When VCC is 5 volts (the normal operating voltage for the controlled system) the only function of VCC is to supply power to the circuitry of the system. As will be described below, a 10 volt pulse on VCC is the programming initiation pulse. 
     FIG. 6 is a timing diagram which shows the sequence of programming pulses required to program the interface 12&#39; so that P 1  will be coupled to I 2 , P 2  coupled to I 3  and P 3  coupled to I 1 . The duration of each of the pulses is arbitrary and can be made as short as desired, considering of course, the circuit response time. The programming pulses as shown in FIG. 6 can be seen to have two levels, 5 and 10 volts. This two level type pulse is shown in FIG. 6 to emphasize that certain functions must occur before others in order that the circuit operate properly. Specifically, in the course of setting an EEROM associated with one of the P busses, it is essential that the lockout signal (low on LKT) be effective to lockout all unset couplers associated with the same P bus before the enable signal generated by the EEROM being set is effective in setting the next EEROM in line. In most cases there would be enough gate delay in the enable path to avoid such a problem even if the programming pulses did not have two amplitudes, however, if the programming pulses are as shown in FIG. 6, it can be seen that the required sequence of events is assured. 
     Assuming that there is sufficient gate delay to assure proper operation, a pulse sequence with a single voltage level as shown in FIG. 7 could be used to program the interface. Alternatively, programming pulses with relatively long rise times, could be used so that the 5 volt level of the pulse occurs sufficiently before the 10 volt level to assure reliable operation. For purposes of clarity in explanation, the following discussion assumes the form of pulse as shown in FIG. 6. 
     The first step in programming is to raise VCC from its normal 5 volt level to 10 volts (time 0). This initiates the programming sequence by erasing all previous programming. If one of the EEROMs in any column had been set, a high signal will appear on the DIS line for that column (through diode 23 or 23&#39; of the associated coupler). A 10 volt signal on VCC in conjunction with a signal on the DIS line will turn the associated AND gate 32 on which will in turn apply a signal to the RST terminals of each coupler 14 in the column, erasing the EEROM that had been set (if it was in a coupler 14). If an EEROM in a coupler 13 had been set, it is also erased since the VCC high signal is applied directly to the RST terminals of the couplers 13. Note that since all of the P terminals are at zero volts at this time, AND gates 26&#39; are off, and a signal at the RST terminal of a coupler (13) will turn AND gate 28&#39; on, erasing the EEROM. When all of the set EEROMs are erased by the action of VCC, it can be seen that all of the DIS terminals will be low and inverters 33 will apply a high signal to each LKT terminal of the couplers 13 and 14. A low signal from the EEROMs 22, 22&#39; assures that AND gates 20, 20&#39; and 24, 24&#39; are off and therefore that the ENO outputs are low. Thus, the only couplers which are in condition to have their EEROMs set are couplers 13, all of which are associated with the I 1  bus. 
     The priority sequence which is utilized in programming the presently preferred embodiment of the invention is to first couple I 1  to its associated P bus, followed by I 2 , I 3  etc., in order, until all of the I inputs are coupled to the desired P input terminals. The enable interconnections (ENO and ENI) between the couplers assure that this sequence is followed. 
     At time 1, the voltage on terminal P 3  is raised to 5 volts. Since there is a high signal on the LKT terminals of the couplers in column 3 (13-3-1 and 14-3-3) AND gates 26 and 26&#39; are on. AND gate 27 of coupler 14-3-3 is off, however, since there is a low signal on the ENI terminal of the coupler. The RST terminal of coupler 13-3-1 is high since VCC is still at 10 volts. This turns on AND gate 27&#39; setting EEROM 22&#39;. When EEROM 22&#39; of coupler 13-3-1 is set (i.e. puts out a logical &#34;1&#34; signal), AND gate 20&#39; is turned on and also a signal-appears at the coupler DIS terminal. This causes the LKT terminals of all of the couplers in column 3 to go low. A low LKT signal locks out all of the couplers in the column and prevents more than one I bus being coupled to any P terminal. 
     At time 2, VCC is reduced back to its normal 5 volt level and P 3  is raised to 10 volts. This causes a 5 volt signal to be applied to the PHI terminals of the couplers in column 3. Since AND gate 20&#39; is on, AND gate 24&#39; also is turned on and a signal appears at the enable output (ENO) terminal of coupler 13-3-1. This signal is coupled to the enable input (ENI) terminals of the couplers associated with I 2 , namely 14-1-2 and 14-2-2. 
     Also at time 2 the voltage on terminal P 1  is raised from zero to 5 volts. EEROM 22 of coupler 14-1-2 becomes set since there are then signals on the P 1  bus and on terminals ENI and LKT of the coupler. The LKT signal is present because there are no EEROMs in column 1 set. The absence of a set EEROM results in no DIS signal which in turn, because of inverter 33, results in LKT being high. When EEROM 22 of coupler 14-1-2 becomes set, AND gate 20 couples terminal P 1  to the I 2  bus. A DIS signal also appears on coupler 14-1-2 and LKT goes low on all couplers in column 1 assuring that no more EEROMs in column 1 can be set. 
     When P 1  goes to 10 volts at time 3, AND gate 24 of coupler 14-1-2 goes on, creating a signal at the enable out (ENO) terminal. This signal is coupled to the enable in (ENI) terminals of all of the couplers associated with the next I bus, I 3 . 
     At the same time (time 3) P 2  is raised to 5 volts and the same sequence of steps as outlined above sets EEROM 22 of coupler 14-2-3. It is not necessary to raise P 2  to 10 volts as it was in connection with programming the couplers for I 1  and I 2 . This is because the 10 volt level is used to enable the programming of the following I bus and since I 3  is the last I bus in the example described there is no following I bus. For purposes of consistency, however, this pulse is shown having the same form as the others. 
     Each of the I busses feeds into an AND gate 34. The purpose of the AND gates 34 is to avoid coupling a programming signal (from a P bus) to the system 11&#39; while the programming sequence is under way. This is avoided by interrupting the signal flow along an I bus during the time that programming of that bus is in progress. Specifically, whenever the enable input or output of a Control Signal Coupler is high, the associated NOR gate 35 causes AND gate 34 to decouple the I bus from system 11&#39;. 
     After the system is programmed as described above any control signal applied to P 1  will be coupled through AND gate 20 of Control Signal Coupler 14-1-2 to input I 2  of system 11&#39; and similarly P 2  will be gated to I 3  and P 3  to I 1 . This is illustrated in FIG. 2 which shows the interconnections of the three terminal system described where the dotted lines within interface 12&#39; show the control signal paths as established by programming the interface in accordance with the example explained. The interface can be reprogrammed to provide a different allocation of input terminals as desired by simply repeating the above described steps with such alterations as needed to comply with the programming priority system. 
     If, for example, it is desired to reprogram the interface so that P 1  would couple to I 1 , P 2  to I 2 , and P 3  to I 3 , the reprogramming would start at time zero by raising VCC to 10 volts as before, but at time 1, instead of initiating a programming pulse on P 3 , the first programming pulse would be applied to the P bus which is desired to be coupled to I 1 , namely P 1 . The next programming pulse would be on P 2  since it is intended that P 2  be coupled to I 2 . The last programming pulse would then be applied to P 3 . 
     What has been described is a novel programmable interface which allows complete flexibility in coupling control signals to a controlled system. While the invented interface has been described in connection with a specific application of the invention, those skilled in the art will be aware that the invention as described, or with obvious modifications, can be applied in other contexts. It is intended that the invented interface as described, or with such modifications as would occur to those skilled in the art, in connection with all applications be covered within the spirit of the following claims.