The present invention is directed to an on-chip oscilloscope for testing periodic signals at different nodes of a high speed circuit. The high-speed circuit can be in a random access memory (RAM), a non-volatile memory (NVM), a central processing unit (CPU) or any other similar device. The invention is applicable to any type of high-speed circuit that must be characterized in order to adjust the timing of the electronic signals.
An on-chip testing system is shown in U.S. Pat. No. 7,096,144, to Bateman. However, the on-chip testing system of Bateman cannot debug high speed circuits. The prior art tests signals at a slow frequency due to its use of pads whenever the signals switch. The strobe signal is provided by an external tester and thus is unable to handle testing at high frequencies. In addition, the external tester requires programming, which prevents use in a system-on-a-chip (SoC) environment. It would therefore be desirable to have a method and circuit for testing and characterizing high speed signals on an integrated circuit that overcomes the deficiencies of conventional on-chip testing systems.
Accordingly, the present invention provides a method and structure for characterizing internal signals used to operate high speed circuitry on an integrated circuit chip. The internal signals to be characterized, such as column select signals, sense amplifier enable signals and word line signals, are generated on the chip. These internal signals are generated such that each of these signals has an identical corresponding pattern during successive cycles of an input clock signal. These generated internal signals are sampled on the chip with successively delayed versions of the input clock signal, thereby generating a plurality of data samples that represent the patterns of the generated internal signals over a cycle of the input clock signal. The data samples are stored in a memory block on the chip, and are subsequently serialized and transferred to a location external to the chip, where these data samples can be analyzed to identify signal characteristics, such as signal-to-signal delay and signal slew rate.
In accordance with one embodiment, the successively delayed versions of the input clock signal are generated by applying the input clock signal to a plurality of series-connected delay elements. Each of the delay elements introduces a known fixed delay to the input clock signal.
In accordance with another embodiment, the data samples are acquired by latching the generated internal signals into flip-flops in response to the successively delayed versions of the input clock signal. A generated internal signal can be applied to two flip-flops having two different trip points to identify the slew rate of the generated internal signal.
The present invention will be more fully understood in view of the following description and drawings.
In accordance with one embodiment, the number of delay circuits N is selected such that the delay N*D introduced to create the clock signal CLKN is equal to the period of the input clock signal CLK, minus one delay period D. As a result, the rising edges of the clock signals CLK1-CLKN span the entire period of the input clock signal CLK.
The input clock signal CLK and the delayed clock signals CLK1-CLKN are provided to inputs of multiplexer 50. Multiplexer 50 is controlled to route one of these clock signals as a test clock signal CLKOSC, in response to a count value CNT provided by counter circuitry 85. The counter circuitry 85 increments the counter value CNT in response to the input clock signal CLK, in a manner described in more detail below. In general, the input clock signal CLK increments the count value CNT in response to each rising edge of the input clock signal CLK, such that the clocks signals CLK1-CLKN are sequentially routed through the multiplexer 50 during successive cycles of the input clock signal CLK to create the test clock signal CLKOSC.
The test clock signal CLKOSC is provided to clock input terminals of flip-flops 70-74. The input clock signal CLK is provided to the data input terminal of flip-flop 70. Two internal signals, A and B, are provided to the data input terminals of flip-flops 71 and 72, respectively. As described in more detail below, on-chip oscilloscope circuit 100 is able to measure a signal skew between the internal signals A and B, or between the input clock signal CLK and the internal signals A and B. In the described embodiments, flip-flops 70-72 are designed to have the same trip point (TP). For example, assuming that the input clock signal CLK and the internal signals A and B transition between a low voltage of ground (0 Volts) and a high voltage of VCC, then flip-flops 70-72 may be designed to have a trip point TP of about 0.5*VCC. In other embodiments, the trip point TP may have other values.
Another internal signal C is applied to the data input terminals of flip-flops 73 and 74. In the described embodiment, the internal signal C has a relatively high slew rate. Flip-flop 73 is designed to have a first trip point TP1, and flip-flop 74 is designed to have a second trip point TP2, wherein TP1 is different than TP2. For example, assuming that the internal signal C transitions between a low voltage of ground (0 Volts) and a high voltage of VCC, then flip-flop 73 may be designed to have a first trip point TP1 of about 0.25*VCC, and flip-flop 74 may be designed to have a second trip point TP2 of about 0.75*VCC. That is, flip-flop 73 will change states in response to an input signal that transitions across a voltage of 0.25*VCC, and flip-flop 74 will change states in response to an input signal that transitions across a voltage of 0.75*VCC. In other embodiments, the trip points TP1 and TP2 can be selected to have other values. In yet other embodiments, more than two flip-flops (each having a unique trip point) can be configured to receive the internal signal C.
In response to each rising edge of the test clock signal CLKOSC, each of the flip-flops 70-74 latches (samples) the state of the applied input signal. The data samples latched in flip-flops 70-74 are provided to data storage block 110 as the signals CLK0, A0, B0, C1 and C2, respectively. Although only five flip-flops 70-74 are included in the described examples, it is understood that other numbers of flip-flops can be used in other embodiments. For example, it is expected that about 50-60 flip-flops may be used to evaluate high speed signals that are generated by high speed circuitry (e.g., circuitry associated with a RAM, NVM, CPU or other similar device), which is located on the same chip as on-chip oscilloscope circuit 100.
Write operations to data storage block 110 are performed in response to the input clock signal CLK and an address value ADDR provided by counter circuitry 85. In one embodiment, counter circuitry 85 sequentially increments the address value ADDR in response to the input clock signal CLK, such that successive data sample values from flip-flops 70-74 are written to successive addresses within data storage block 110. The data sample values are subsequently read out from data storage block 110 to a serial/parallel interface, where the data sample values can be read externally (i.e., off-chip). More specifically, the serial/parallel interface converts parallel data read from data storage block 110 into serial data, which is transmitted off of the integrated circuit chip. As described in more detail below, these data sample values are used to evaluate various internal signals (e.g., internal signals CLK, A, B, and C) of the chip that includes on-chip oscilloscope circuit 100.
The operation of on-chip oscilloscope circuit 100 will now be described in more detail with respect to
Rising edges of the input clock signal CLK occur at times T0-T17, as illustrated by
The data sample values are illustrated as small circles (‘o’) on the internal signals CLK, A, B and C in
The data latched in flip-flops 70-74 (i.e., the data sample values CLK0, A0, B0, C1 and C2) are written to data storage block 110 in parallel, to an address specified by the address value ADDR. In the described example, data sampled at time T0 is written to address location ‘A0’ in data storage block 110. In the described example, the data storage block 110 operates in response to the input clock signal CLK, such that the data sampled at time T0 is written to address A0 of data storage block 110 in response to the rising edge of the input clock signal CLK at time T1. Counter circuitry 85 increments the address value ADDR each time that a set of sample data values are written to data storage block 110 (e.g., at each rising edge of the input clock signal CLK). For example, the counter circuitry 85 may increment the address value ADDR to the next address value ‘A1’ in response to the rising edge of the input clock signal CLK at time T1.
Each time that the input clock signal CLK transitions to a logic high state, the counter circuitry 85 also increments the counter value CNT. For example at time T1, the rising edge of the input clock signal CLK causes the counter value CNT provided to multiplexer 50 to increase to a value of ‘1’. At this time, the delayed clock signal CLK1 is routed through multiplexer 50 as the test clock signal CLKOSC.
As shown by
Returning now to
This process continues, wherein during each successive cycle of the internal clock signal CLK, multiplexer 50 is controlled to route the next delayed clock signal in the series of delayed clock signals CLK, CLKN. As illustrated by
As illustrated by table 300 (and
As illustrated by table 300 (and
As illustrated by table 300 (and
As illustrated by table 300 (and
Each successive entry of data storage block 110 represents a sample of the periodic internal signals CLK, A, B and C, taken D time units apart. Thus, the entries of data storage block 110 represent the characteristics of the periodic internal signals CLK, A, B and C, themselves. The characteristics of the internal signals A, B and C can be identified by the entries stored in data storage block 110. For example, the entry for data sample value A0 at address location A5 indicates that the internal signal A transitions to a logic high state at a time equal to 5*D (i.e., 5*20 ps=100 ps) after the rising edge of the internal clock signal CLK. Similarly, the entry for data sample value B0 at address location A14 indicates that the internal signal B transitions to a logic high state a time equal to 14*D (i.e., 14*20 ps=280 ps) after the rising edge of the internal clock signal CLK. The time between the rising edges of the internal signals A and B can also be determined from the above-described entries (i.e., the skew between internal signals A and B is equal to 14*D−5*D=180 ps).
The slew rate of the internal signal C can also be determined from the contents of table 300, as two voltage levels of internal signal C are identified at two known times. More specifically, as illustrated by table 300 (and
Note that data regarding the downward transitions of the internal signals CLK, A, B and C, will be identified in a similar manner, as long as the sampling proceeds in the manner described above, until the total delay associated with the test clock signal CLKOSC reaches the period of the input clock signal CLK (i.e., N*D=period of the input clock CLK).
In accordance with the description of the sampling provided above, it is understood that the time between the sampling of the data values and the time that the data values are written to data storage block 110 decreases as the sampling approaches the end of the period of the clock signal CLK. That is, as the delayed clock signal CLK routed through multiplexer 50 approaches the delayed clock signal CLKN, a shorter period exists between the rising edge of the delayed clock signal CLK (i.e., the edge used to latch new data samples into flip-flops 70-74) and the subsequent rising edge of the input clock signal CLK (i.e., the edge used to write the contents of flip-flops 70-74 to data storage block 110). This issue can be handled as follows.
In one embodiment, sampling is performed only partially, but at least half way, through the period of the clock signal CLK. For example, sampling may be performed ¾ of the way through the period of the clock signal CLK. That is, sampling is stopped after the delayed clock signal CLK(3/4*N) is routed through multiplexer 50. The results of this initial ¾ period sampling are stored in data storage block 110. Sufficient time exists between the time the samples are taken and the time that the samples are written to the data storage block 110. The clock signal CLK is then inverted, and the above described process is repeated, with sampling being performed only partially, but at least half way through, the period of the inverted clock signal. Again, sampling may be performed ¾ of the way through the period of the inverted clock signal CLK. That is, sampling is stopped after the delayed inverted clock signal CLK(3/4*N) is routed through multiplexer 50. The results of this subsequent ¾ period sampling are stored in data storage block 110. The results of the initial and subsequent ¾ period samplings may be combined to create the waveforms for the entire period of the clock signal CLK. Valid samples would include those samples taken during the initial sampling run when the clock signal CLK had a logic ‘1’ value, and those samples taken during the subsequent sampling run when the inverted clock signal had a logic ‘1’ value.
In another embodiment, data sampling (and retiring the sampled data) is only performed during every other cycle of the clock signal CLK. For example, if the data signals A, B and C are sampled at time TD2, then the associated data sample values A0, B0, C1 and C2 stored in flip-flops 70-74 would not be written to the data storage block 110 until the rising edge of the clock signal CLK at time T4. In this example, the data signals A, B and C are not sampled between times T3 and T4. Also in this example, the counter value CNT and the address value ADDR are only incremented during even rising edges of the clock signal CLK (i.e., T2, T4, T6, etc.). Alternately, the counter value CNT and the address value ADDR could be incremented only during odd rising edges of the clock signal CLK (i.e., T1, T3, T5, etc.). These embodiments allow at least one full cycle of the clock signal CLK to retire the samples stored in flip-flops 70-74.
Advantages of the present invention include the following.
The sampling strobe (i.e., CLKOSC) is developed completely internally (on-chip), and can be skewed with predetermined timing intervals of 10 picoseconds or more.
Multiple data sample values are provided through parallel outputs (e.g., from flip-flops 70-74) to on-chip storage (e.g., data storage block 110).
Periodic signals (e.g., internal signals A, B and C) are sampled at any frequency up to 5 GHz.
The same architecture (i.e., on-chip oscilloscope circuit 100) is applicable to different types of process technologies.
The user is able to identify faults and timing problems within the system under test (e.g., the circuit providing the internal signals A, B and C) in response to the data sample values read from on-chip storage (e.g., data storage block 110). In response, the user is able to debug the system under test.
After debugging the high-speed circuit under test (e.g., the circuit providing the internal signals A, B and C), the user is able to tune the internal signals so as to adjust the timing. This tuning can be performed by adjusting configuration bits on the chip that control the voltage and/or timing of the internal signals.
Although the present invention has been described in connection with specific embodiments, it is understood that modifications can be made to the described circuitry, without departing from the scope of the present invention. For example, the delay circuits DX could be replaced with a conventional adjustable delay-locked loop (DLL) in other embodiments, thereby allowing the user to analyze the operation of the circuit at different time intervals. Moreover, the present invention could be modified to sample periodic internal signals which are not asserted/de-asserted every cycle of the input clock signal CLK, but rather, are asserted/de-asserted every other cycle (or every third, fourth, etc., cycle) of the input clock signal CLK. This modification would include incrementing the counter value CNT every other (or every third, fourth, etc.) cycle of the input clock signal, and only performing sampling during the cycles that the internal signals are asserted/de-asserted.
Although the invention has been described in connection with several embodiments, it is understood that this invention is not limited to the embodiments disclosed, but is capable of various modifications, which would be apparent to a person skilled in the art. Accordingly, the present invention is limited only by the following claims.
This application claims priority from U.S. Provisional Patent Application 61/316,807, entitled “Method And Circuit For Testing And Characterizing High Speed Signals Using An ON-Chip Oscillator”, which was filed on Mar. 23, 2010, and is incorporated by reference herein.
Number | Date | Country | |
---|---|---|---|
61316807 | Mar 2010 | US |