Clock phase adjustment method, and integrated circuit and design method therefor
AssigneeMatsushita Electric Industrial Co., Ltd.
InventorsMasayoshi Tojima, Hiromasa Nakajima, Masahiro Oohashi, Yasuo Kohashi
Life of this patent
Estimating the term…
Abstract
The time required for access to a SDRAM (110) is extracted from the layout of an integrated circuit (1000), a first phase difference between an external clock SDCLKO and an internal clock ICLK is calculated, and the value of delay of the external clock signal or the internal clock signal in the integrated circuit (1000) is changed on the basis of the calculated first phase difference, whereby clock phase adjustment for the integrated circuit (1000) in the designing stage is realized.
Claims10
An integrated circuit that makes data access to an external memory in synchronization with a clock, comprising:
- a clock generator for generating a clock;
- at least one first clock buffer for receiving one of two clocks obtained by branching the clock generated by the clock generator into first and second clocks, and outputting the first clock as an external clock to the external memory;
- at least one second clock buffer for receiving the second clock, and outputting the second clock as an internal clock to operate the integrated circuit;
- a clock output buffer for outputting the external clock outputted from the first clock buffer, to the external memory;
- a data output flip-flop for outputting data to the external memory, in synchronization with the internal clock;
- and
- an input flip-flop for capturing data outputted from the external memory, in synchronization with the internal clock;
- wherein a value of a phase difference D obtained by subtracting (a) a time from when the external clock is outputted from the clock generator to when it reaches the clock output buffer from (b) a time from when the internal clock is outputted from the clock generator to when it reaches the data output flip-flop is set to satisfy first to fourth conditions as follows:
- first condition:
- a first value obtained by subtracting (c) a time from when the external clock is outputted from the clock generator to when it reaches the external memory from a sum of (b) the time from when the internal clock is outputted from the clock generator to when it reaches the data output flip-flop and (d) a time from when data is outputted from the data output flip-flop by the internal clock that has reached the data output flip-flop, to when the data reaches the external memory is larger than a data hold time of the external memory;
- second condition:
- a value obtained by subtracting the first value from (e) a time corresponding to one cycle of the external clock is larger than data setup time of the external memory;
- third condition:
- a value obtained by subtracting (f) a time from when the internal clock is outputted from the clock generator to when it reaches the input flip-flop from a sum of (c) the time from when the external clock is outputted from the clock generator to when it reaches the external memory and (g) a hold time of data to be outputted from the external memory on receipt of the external clock and (h) a time from when the data is outputted to when it reaches the input flip-flop is larger than a data hold time of the input flip-flop;
- and
- fourth condition:
- a value obtained by subtracting a sum of (c) the time from when the external clock is outputted from the clock generator to when it reaches the external memory and (i) an output delay time of data to be outputted from the external memory on receipt of the external clock and (h) the time from when the data is outputted to when it reaches the input flip-flop from a sum of (j) a time corresponding to one cycle of the internal clock and (k) a time from when the internal clock is outputted from the clock generator to when it reaches the input flip-flop is larger than data setup time of the input flip-flop.
An integrated circuit that makes data access to an external memory in synchronization with a clock, comprising:
- a clock generator for generating a clock;
- at least one first clock buffer for driving the clock generated by the clock generator, as an external clock;
- at least one second clock buffer for driving the clock generated by the clock generator, as an internal clock;
- a clock output buffer for outputting the external clock to the external memory;
- a data output flip-flop for outputting data to the external memory, in synchronization with the internal clock;
- a first input flip-flop for latching data outputted from the external memory, by a feedback clock of the external clock inputted to the external memory;
- and
- a second input flip-flop for latching the data latched by the first input flip-flop, by the internal clock;
- wherein a value of a phase difference D obtained by subtracting (a) a time from when the external clock is outputted from the clock generator to when it reaches the external clock output buffer from (b) a time from when the internal clock is outputted from the clock generator to when it reaches the data output flip-flop is set to satisfy conditions as follows:
- a first value obtained by subtracting (c) a time from when the external clock is outputted from the clock generator to when the external clock reaches the external memory from a sum of (d) a time from when the internal clock is outputted from the clock generator to when the internal clock reaches the data output flip-flop and (e) a time from when data is outputted from the data output flip-flop by the internal clock that has arrived at the data output flip-flop, to when the data reaches the external memory is larger than a data hold time of the external memory;
- a value obtained by subtracting the first value from (f) a time corresponding to one cycle of the external clock is larger than data setup time of the external memory;
- a value obtained by subtracting (g) a time from when the internal clock is outputted from the clock generator to when it reaches a second input flip-flop from a value V obtained by summing (h) a time during which the external clock is outputted from the clock generator to reach the external memory, and returns from the external memory as a feedback clock to reach the first input flip-flop and (i) a cell delay of the first input flip-flop and (j) wiring delay from the first input flip-flop to the second input flip-flop is larger than a hold time of the second input flip-flop;
- a value obtained by subtracting the value V from a sum of (g) the time from when the internal clock is outputted from the clock generator to when it reaches the second input flip-flop and (f) the time corresponding to one cycle of the external clock is larger than a setup time of the second input flip-flop;
- the value V is larger than (g) the time from when the internal clock is outputted from the clock generator to when it reaches the second input flip-flop;
- and
- a value obtained by subtracting (k) time from when the external clock is fed back from the external memory to when it reaches the first input flip-flop from (i) time from when data is outputted from the external memory to when it reaches the first input flip-flop is larger than a hold time of the first input flip-flop.
A clock phase adjustment method when an arbitrary device makes data access to an external memory in synchronization with a clock, comprising:
- extracting time parameters relating to transmission of signals in the device and transmission of signals between the device and the external memory, from a layout of the device when designing the device;
- calculating, using the parameters, a first phase difference between a of time when an external clock to be supplied to the external memory is outputted and a of time when an internal clock for operating the device reaches a reference point of data input/output;
- calculating, using the parameters, a range of the first phase difference which satisfies a condition that the external memory can capture data outputted from the device and the device can capture data outputted from the external memory;
- judging whether a calculated first phase difference is within a calculated range of the first phase difference;
- ending the process when said judging judges that the calculated first phase difference satisfies the calculated range of the first phase difference, and selecting an arbitrary first phase difference from the calculated range when said judging judges that the calculated first phase difference does not satisfy the range;
- and
- changing a value of delay of the external clock signal or the internal clock signal in the device, when designing the device, on a basis of the selected first phase difference.
A clock phase adjustment method when an arbitrary device makes data access to an external memory in synchronization with a clock, including:
- extracting time parameters relating to transmission of signals in the device and transmission of signals between the device and the external memory, from a layout of the device when designing the device;
- calculating, using the parameters, a range of a first phase difference that is obtained by subtracting (a) a time from when the external clock is outputted from a clock generator in the device to when it reaches an external clock output buffer in the device from (b) a time from when the internal clock is outputted from the clock generator to when it reaches a data output flip-flop in the device;
- arbitrarily setting a plurality of second phase differences between a of time when the external clock is outputted from the device and a of time when the external clock, which is fed back from the external memory, reaches the device;
- setting a first phase difference from the calculated range of a first phase difference, corresponding to each of the plurality of second phase differences;
- detecting an actual second phase difference after the device is mounted on an arbitrary system;
- comparing the detected actual second phase difference with the set second phase differences, and selecting a corresponding first phase difference;
- and
- changing a value of delay of the external clock signal or the internal clock signal in a clock buffer in the device, on the basis of the selected corresponding first phase difference;
- wherein data outputted from the external memory is latched into a first input flip-flop in the device by an external clock inputted to the external memory and fed back to the device, and the latched data is latched into a second input flip-flop by the internal clock;
- said calculating the range of the first phase difference comprises a range of the first phase difference that satisfies the following conditions calculated as follows:
- a first value obtained by subtracting (c) a time from when the external clock is outputted from the clock generator to when it reaches the external memory from a sum of (b) the time from when the internal clock is outputted from the clock generator to when it reaches the data output flip-flop and (d) a time from when data is outputted from the data output flip-flop by the internal clock to when the data reaches the external memory is larger than a data hold time that is required for the external memory to capture the data;
- a value obtained by subtracting the first value from (e) a time corresponding to one cycle of the external clock is than the data setup time that is required for the external memory to capture the data;
- a value obtained by subtracting (f) a time from when the internal clock is outputted from the clock generator to when it reaches the second input flip-flop from a value V obtained by summing (g) a time during which the external clock is outputted from the clock generator to reach the external memory, and returns from the external memory as a feedback clock to reach the first input flip-flop and (h) a cell delay of the first input flip-flop and (i) a wiring delay from the first input flip-flop to the second input flip-flop is larger than a hold time of the second input flip-flop;
- a value obtained by subtracting the value V from a sum of (f) the time from when the internal clock is outputted from the clock generator to when it reaches the second input flip-flop and (j) a time corresponding to one cycle of the external clock is larger than a setup time of the second input flip-flop;
- the value V is larger than (f) the time from when the internal clock is outputted from the clock generator to when it reaches the second input flip-flop;
- and
- a value obtained by subtracting (j) a time from when the external clock is fed back from the external memory to when it reaches the first input flip-flop from (k) a time from when data is outputted from the external memory to when it reaches the first input flip-flop is larger than a hold time of the first input flip-flop.
A method for designing an integrated circuit that makes data access to an external memory in synchronization with a clock, wherein:
- said integrated circuit comprises:
- a clock generator for generating an internal clock and an external clock;
- a data output flip-flop for latching data to be outputted to the external memory;
- a first input flip-flop for latching data outputted from the external memory, by a feedback clock of the external clock inputted to the external memory;
- a second input flip-flop for latching the data latched by the first input flip-flop, by the internal clock;
- a phase difference detection circuit wherein plural sets of first phase differences and second phase differences are set in advance, said first phase difference being a phase difference obtained by subtracting (a) a time from when the external clock is outputted from the clock generator in the integrated circuit to when it reaches an external clock output buffer in the integrated circuit from (b) a time from when the internal clock is outputted from the clock generator to when it reaches a data output flip-flop in the integrated circuit, and said second phase difference being a phase difference between a of time when the external clock is outputted from the integrated circuit and a of time when the external clock reaches the integrated circuit by feedback from the external memory, and said phase difference detection circuit detecting an actual second phase difference after the integrated circuit is mounted on an arbitrary system, and then selecting a first phase difference corresponding to the detected actual second phase difference;
- and
- a clock buffer including delay elements corresponding to respective first phase differences that have previously been set, and selecting delay elements on the basis of a first phase difference selected by the phase error detection circuit;
- said design method comprises:
- extracting time parameters relating to transmission of signals in the device and transmission of signals between the device and the external memory, from a layout of the device when designing the device;
- calculating, using the parameters, a range of the first phase differences that satisfy the following conditions:
- first condition:
- a first value obtained by subtracting (c) a time from when the external clock is outputted from the clock generator to when it reaches the external memory from a sum of (b) the time from when the internal clock is outputted from the clock generator to when it reaches the data output flip-flop and (d) a time from when data is outputted from the data output flip-flop by the internal clock to when the data reaches the external memory is larger than a data hold time that is required for the external memory to capture the data;
- second condition:
- a value obtained by subtracting a first value from (e) a time corresponding to one cycle of the external clock is larger than a data setup time that is required for the external memory to capture the data;
- third condition:
- a value obtained by subtracting (f) a time from when the internal clock is outputted from the clock generator to when it reaches the second input flip-flop from a value V obtained by summing (g) a time during which the external clock is outputted from the clock generator to reach the external memory, and returns from the external memory as a feedback clock to reach the first input flip-flop and (h) a cell delay of the first input flip-flop and (i) a wiring delay from the first input flip-flop to the second input flip-flop is larger than a hold time of the second input flip-flop;
- fourth condition:
- a value obtained by subtracting the value V from a sum of (j) a time from when the internal clock is outputted from the clock generator to when it reaches the second input flip-flop and (k) a time corresponding to one cycle of the external clock is larger than a setup time of the second input flip-flop;
- fifth condition:
- the value V is larger than (j) the time from when the internal clock is outputted from the clock generator to when it reaches the second input flip-flop;
- and
- sixth condition:
- a value obtained by subtracting (h) the time from when the external clock is fed back from the external memory to when it reaches the first input flip-flop from (l) a time from when data is outputted from the external memory to when it reaches the first input flip-flop is larger than a hold time of the first input flip-flop;
- and
- arbitrarily setting a plurality of second phase differences;
- setting a first phase difference that satisfies the first through sixth conditions, corresponding to each of the plural second phase differences;
- and
- setting a value of delay of the external clock or the internal clock in the integrated circuit, corresponding to each of calculated first phase differences.
Dependencies are inferred from the claim text.