Abstract:
A synchronous SRAM (or DRAM or other logic) chip with input registers (or latches) associated with the chip memory cell array input lines, where there is logic associated with the registers, locates the logic gates upstream of the registers and connected to the D input of each register. Hence the logic gates not only provide the needed logic function, but also provide the necessary delay to meet the specified hold time delay in synchronous circuits. This reduces the logic function after the input registers and hence improves the clock-to-output access time of the chip.

Description:
This application is a continuation of application Ser. No. 08/112,409, filed Aug. 26, 1993 now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention is directed to integrated circuits and more specifically to the input registers associated with static random access memory, dynamic random access memory, and logic integrated circuits. 
     2. Description of the Prior Art 
     Static random access memory (SRAM) is well known as a volatile type of memory. In the past, SRAM typically had an asynchronous architecture, i.e., at any one time when a new set of memory addresses is supplied to the SRAM, the information stored in the SRAM memory cells appears at the output after a finite (access) time has elapsed. However, the increased speed of central processor units associated with computers which typically use SRAM has generated a need for high speed SRAM. 
     One well known way to increase effective SRAM speed in a system is to incorporate registers at the address lines, control lines, and data lines of the SRAM memory cell array input, and/or at the data output line of the SRAM memory cell array. 
     An SRAM chip is shown in a block diagram in FIG. 1, including the actual memory cell RAM array 10 (here depicted as a 16K×4 cell array) having an associated Data In register 12, an Address register 14, and a Data Out register 16. There are 14 address bits A0 through A13 and four data in bits DI0 through DI3, with the corresponding four data out bits DO0 through DO3. The other elements are conventional. This particular block diagram is of the Cypress Semiconductor CY7C158 SRAM chip. This is a fully registered (pipelined) high performance SRAM organized with 16,384 words by 4 bits. The asynchronous output enable signal OE is provided to control the three state data outputs. 
     The operation of such SRAM chips is completely synchronous, with the exception of the OE signal. All data, address and control signals are sampled on each low-to-high transition of the clock signal. When signal CE is LOW during this transition, the device is selected for operation. The type of operation is determined by the state of the WE signal during this same transition. Signal WE LOW causes a write operation, while WE HIGH causes a read operation. The Data Input and Data Output as well as Address register are also loaded on each low-to-high transition of the clock. The outputs, however, are not available until the next cycle after the address is loaded on the current cycle. The state of the outputs is controlled by the pipeline signals CE and WE and data from the previous cycle and the state of the OE signal. 
     An SRAM such as that shown in FIG. 1 with integrated registers has the clock line CLOCK provided to the chip, and most of the other input and output lines as shown timed against the signals on the clock line. In this case the clock line is connected to the Address register 14, Data In register 12, Data Out register 16, and registers 18 and 20. Thus most of the input and/or output lines are synchronized to the clock line signal. Therefore this is a synchronous SRAM. 
     For such synchronous SRAMs, the input lines (such as the address or control lines) must be stable, i.e. in a ready state, prior to the occurrence of a rising edge of the clock signal. This is because the rising edge of a clock signal causes the various registers to sample the values of the connected input lines. The finite time that the input lines are stable before the clock transition is called the setup time. Similarly, the input lines need to be stable for a finite time immediately after the occurrence of a rising edge of the clock signal. This second finite time is called the hold time. The setup time t S  and hold time t H  are illustrated in FIG. 2. The time periods prior to the setup time t S , and following the hold time t H , are labelled as &#34;don&#39;t care&#34;, i.e. the state of the lines is not important. The clock signal rising edge is also indicated in FIG. 2. 
     One way to implement the input register so as to properly sample the inputs within the setup time and hold time constraints at the rising edge of the clock signal is a master-slave combination of latches, of the type shown in FIG. 3, including conventional master-slave D-type flip-flop register 30 which includes a master latch and a slave latch. Register 30 is timed by the clock signal provided at node 32 which is buffered by a TTL buffer 34. The data input to the register 30 is provided at input node 36 via TTL buffer 38. The output of register 30 is provided on line 40 at the Q output thereof. 
     For many applications the hold time t H  is either 0 (measured in nanoseconds) or a very small time duration (such as 0.5 or 1 nanosecond). The delay due to the TTL buffer 38 in FIG. 3 may be shorter than the delay due to the TTL buffer 34 of the clock line under certain conditions (voltage, temperature, input transition and/or process variations). 
     In order to guarantee the hold time specification (for example 0.5 nanosecond) at the input register, it is necessary to compensate for the delay difference between TTL buffer 38 and TTL buffer 34 in FIG. 3 by including additional delay between the input line node 36 and the D terminal of register 30 of FIG. 3. Thus the correct data signal is sampled upon transition of the clock signal at node 32, even though the input line at node 32 changes its value immediately after the hold time delay. Note that this delay could be zero if the hold time is equal to zero. 
     Such additional needed delay is shown in FIG. 4 including additional delay elements (buffers) 42. Otherwise, FIG. 4 is similar to FIG. 3. 
     For a synchronous circuit, the access time from the clock rising edge to occurrence of a valid output data signal is a key parameter referred to as the clock to data output time (t cd ). A small clock to data output time is highly desirable for synchronous memory or synchronous logic performance. Any reduction of logic function between input register and output pad or between input register and the next register will reduce clock-to-data output delay. 
     FIG. 5 depicts circuitry additional to that of FIG. 4, including a master-slave register 50 having a D data input and a C clock input. In this case the clock signal input at node 52 is, as before, supplied via a buffer 54 to the clock input terminal C of register 50. Here there are two data input nodes, designated A0 (reference number 56) and A1 (reference number 58) each with an associated buffer 60, 62. Each input node 56, 58, is associated respectively with a register 50, 64. The outputs of registers 50 and 64 are provided to, in this case, NAND gate 66 and inverter 68 which together provide additional logic functions. Downstream of these additional logic functions are connected conventional inverters 70, 72. Each input node 56 and 58 has delay elements 76, 78 connected between it and the D input of the respective registers 50 and 64. Thus, in this case the SRAM input registers have associated logic functions for combining various inputs, for instance for address decoding. 
     It would be highly desirable to improve the performance of the circuit of FIG. 5 so as to allow faster functioning, i.e. less clock-to-data output delay. 
     SUMMARY OF THE INVENTION 
     In accordance with the invention, for an SRAM, DRAM (dynamic RAM) or any other logic circuit, the logic functions, i.e. the logic gates which in the prior art are connected downstream of the input register to provide a function such as full or partial decoding, are instead connected between the input pad terminal and the input register. Thus these logic gates provide the needed delay as well as the needed logic function. This allows the logic function to be performed during the needed delay period, which is prior to sampling of the value at the D data input terminal of the register by the clock line signal. This is contrary to the prior art practice of adding delay elements to meet the hold time requirements, with the delay elements being included between the input pad and the input register. In this way the clock-to-data output time is reduced significantly due to the reduction of logic function, by placing the logic function before the D data input terminal of the input register or latch. The invention is applicable to input latches as well as input registers. 
    
    
     BRIEF DESCRIPTION OF DRAWINGS 
     FIG. 1 shows a prior art SRAM chip in block diagram form. 
     FIG. 2 is a timing diagram showing setup and hold times for an SRAM. 
     FIG. 3 shows a typical implementation of an integrated circuit with input register. 
     FIG. 4 shows an input register with delay elements included to meet hold time specification. 
     FIG. 5 shows a prior art input register with logic function following the register. 
     FIG. 6 shows an input register circuit in accordance with the invention. 
     FIG. 7 shows an input address buffer in accordance with the invention. 
     FIG. 8 shows detail of a circuit for address decoding in accordance with the invention. 
     FIG. 9 shows detail of a register circuit in accordance with the invention. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 6 shows a register circuit in accordance with the invention. Most of the elements are identical to those of (prior art) FIG. 5. However, in this case the exemplary logic gates 66 and 68 are serially connected between the data input nodes A0, A1 (56 and 58) and the D input terminal of register 50. Thus the delay elements 76 and 78 in FIG. 5 are eliminated. The elimination of delay elements 76 and 78 and their replacement by the needed logic gates 66 and 68 improves the clock-to-data output time of the circuit by the amount of propagation delay through logic gates 66 and 68. Thereby, logic gates 66 and 68 provide the double function of ANDing the combination of the inputs of A0 and A1 and providing the necessary delay for synchronizing input register functioning. 
     FIGS. 7 to 9 show detail of circuitry in accordance with the invention. It is to be understood that these are a particular example, as is the circuitry of FIG. 6, and are not to be construed as limiting. 
     FIG. 7 is an input buffer which includes transistors Q1 to Q5 as a TTL buffer which is an interface to a CMOS circuit, in accordance with the invention, to outside (unshown) TTL logic. This circuit operates at CMOS voltage logic levels, and hence requires the TTL buffer to be compatible with TTL interface. The circuit of FIG. 7 receives a clock signal, which is a delayed clock signal designated CLKD, and also a data or address input signal designated AIN. The transistors Q1 to Q6 along with inverter 82 correspond to the input buffers 60 or 62 in FIG. 6. In this case, the CLKD signal is provided for power conservation purposes to operate the buffer as a gated inverter. The CLKD signal is delayed by a time equal to the amount of hold time, so that CLKD will be at a high logic level after the hold time requirement is met. Since the input buffer only needs to be functional between the setup time and hold time window at the clock low-to-high transition, the delayed clock signal CLKD is high after hold time delay and thus shuts off the buffer circuit of FIG. 7. The transistor Q6 is used to sustain any leakage current when CLKD stays high for a long time. 
     Hence, if the signal CLKD is low, the buffer circuit is active and functions as a conventional inverter. If the clock signal CLKD is high, then the buffer in FIG. 7 is nonfunctional, hence conserving power. 
     The numerals immediately adjacent each transistor or logic schematic symbol in FIG. 7 indicate the size of the transistor(s) in microns. The first number (in the pair of numbers, i.e. 7/1) indicates the transistor gate width, and the second number the transistor gate length. The operation of buffer FIG. 7 should be apparent, including the conventional inverter pair Q1, Q2 with the additional activation transistor Q3 which is operated by the CLKD signal. The transistors Q4 and Q5 are used to adjust the TTL buffer trigger level. In the version shown transistor Q5 is used and transistor Q4 is not used. 
     In FIG. 7, there are two branches after the TTL buffer, one providing the AOUT signal and the second providing the inverse thereof as AOUT/. Also provided are inverters 82, 84, 86, 88, the transistor gate lengths of which are as shown for each transistor in each inverter pair. Also provided is transistor Q8, connected to the AOUT/ terminal as a capacitor, and transistor Q10, connected to the AOUT terminal as a capacitor. Transistors Q8 and Q10 serve as capacitors to allow adjustment of the delay to match the output timing among all the input pads. These delay elements Q8, Q10 are provided because the data from the AOUT/ or AOUT terminals of all address input pads must reach the downstream decoders (shown in FIG. 8 as an example) preferably at the same time for better setup time and hold time control. In a typical chip, 15 or 20 such address buffers are on chip, to provide a 15 or 20 bit address. The transistors Q8 and Q10 when connected as shown in FIG. 7 provide additional delay. These transistors are connected when the chip is fabricated (not by the user). As an example, where there are 15 address buffers on a chip each similar to that of FIG. 7, assuming six buffers might have the longer delay time due to longer layout metal lines, then nine buffers might have the shorter delay time due to shorter layout metal lines. Therefore the AOUT/ and AOUT of the six address buffers with the longer delay time have the transistors Q8 and Q10 disconnected from them, and the AOUT/ and AOUT lines of the other nine address buffers with shorter delay time have the transistors Q8 and Q10 connected to them to increase the delay time, thereby matching those of the first six address buffers. 
     FIG. 8 shows one element of a multi-bit decoding circuit in accordance with the present invention, corresponding to the NAND gate 66 and inverter 68 of FIG. 6. However, in this case instead of there being two inputs A0 and A1, three input terminals are provided designated AA, AB and AC. Included in FIG. 8 is a three input NAND gate 90 and inverter 92, which form an element of the decoder. Eight such elements form a three-to-eight decoder. The inputs of the decoder, designated as AA, AB and AC, are connected to AOUT/ or AOUT of FIG. 7 from their respective input buffers. Also shown in FIG. 8 are transistors Q14 to Q19 used as capacitors providing input delay as needed (as determined by the chip designer). As shown, each transistor pair, i.e. Q14, Q17 or Q15, Q18 or Q16, Q19 is a P-channel and N-channel pair and is typically connected in tandem. In this case, one transistor pair Q14 and Q17 is connected and the other pairs, Q16 and Q19, and Q15 and Q18, are disconnected from the circuit. Alternatively, one could use a two-to-four decoder or four-to-sixteen decoder depending on the number of inputs terminals provided. (A circuit for two-to-four decoding is shown in FIG. 6 and three-to-eight decoding is shown in FIG. 8.) It is to be understood that partial or full decoding may be the logic function performed &#34;upstream&#34; of the register. 
     FIG. 9 shows a master-slave register circuit with power-up reset in accordance with the present invention, corresponding to the register 50 of FIG. 6 and to be connected to the DOUT terminal of FIG. 8. However, in this case instead of clock input C and register output Q, the inverted clock CLK/ and inverted register output Q/ (from inverter 96) are implemented. The master latch 98 and the slave latch 99 are shown in FIG. 9. The master-slave register is implemented in such a way that when the master latch 98 is transparent, the slave latch 99 stores the old data and when the master latch 98 stores the data, the slave latch 99 is transparent. The inverter 94 is connected to clock input signal CLK/ and generates signal CLK1, which connects to inverter 95 and generates signal CLK1/. The two signals CLK1 and CLK1/ control the states of the master 98 and slave 99 latches, being either transparent or storing the data. 
     An additional element in FIG. 9 is the power-up line PU/ which connects via inverter 100 to the master 98 and slave 99 latches, respectively. The master latch 98 is reset to logic 0 via NOR gate 97 and the slave latch 99 is reset to logic 0 via NOR gate 102 by power-up signal PU/, which is a one-shot negative-going pulse generated during power-up. Therefore, regardless of the logic state of clock input signal CLK/, the register is in a determined logic state, i.e. logic 0 in this case, after power-up. After power up, the power up line PU/ goes logic high, and thus has no impact on the master-slave register thereafter. 
     It is appreciated that the implementation in accordance with the present invention is not limited to address decoding but has other applications, i.e. for control lines, chip enable lines and other control logic for a registered SRAM, registered DRAM or registered logic circuits. Also, instead of a full register, the relevant data storage element may be a latch. 
     The above description is illustrative and not limiting; further modifications will be apparent to one of ordinary skill in the art in light of this disclosure, and are intended to fall within the scope of the appended claims.