KR100920179B1 - Memory controller - Google Patents

Memory controller Download PDF

Info

Publication number
KR100920179B1
KR100920179B1 KR1020080033598A KR20080033598A KR100920179B1 KR 100920179 B1 KR100920179 B1 KR 100920179B1 KR 1020080033598 A KR1020080033598 A KR 1020080033598A KR 20080033598 A KR20080033598 A KR 20080033598A KR 100920179 B1 KR100920179 B1 KR 100920179B1
Authority
KR
South Korea
Prior art keywords
clock
signal
write
sdram
sek
Prior art date
Application number
KR1020080033598A
Other languages
Korean (ko)
Inventor
윤영섭
강성준
이국표
이근환
Original Assignee
인하대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인하대학교 산학협력단 filed Critical 인하대학교 산학협력단
Priority to KR1020080033598A priority Critical patent/KR100920179B1/en
Application granted granted Critical
Publication of KR100920179B1 publication Critical patent/KR100920179B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)

Abstract

PURPOSE: A memory controller is provided to be stably operated till frequency of 166MHz by automatically controlling a skew between an external memory and a memory controller. CONSTITUTION: A memory controller includes a mode register block(10), a frequency/clock skew generating block(20), a clock frequency generating block(30), a read clock signal generating block(50), a write clock signal generating block(60), a data generating block(40), a test SDRAM signal generation/write read data comparing block(80), and an SDRAM signal selecting block(70). The mode register block sets an operation mode of an SDRAM memory controller. The frequency/clock skew generating block generates a clock frequency, a read clock skew, and a write clock skew according to setting of the mode register block. The clock frequency generating block receives a clock signal and a clock frequency, and generates a first clock signal and a second clock signal. The read clock signal generating block receives the first clock signal and the read clock skew, and generates a read clock signal. The write clock signal generating block receives the second clock signal and the write clock skew, and generates a write clock signal. The data generating block generates a write data by a write selecting signal or generates a read data after receiving the read clock signal. The SDRAM signal selecting block receives an SDRAM signal, a test SDRAM signal, and a comparing end signal, and selects a final SDRAM signal.

Description

메모리 콘트롤러{Memory Controller}Memory Controller

본 발명은 반도체 메모리 장치에 관한 것으로, 특히 외부메모리와 메모리 콘트롤러(MCU; Memory Controller unit) 사이의 스큐(skew)를 자동으로 조절하는 메모리 콘트롤러에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a semiconductor memory device, and more particularly, to a memory controller for automatically adjusting a skew between an external memory and a memory controller unit (MCU).

컴퓨터의 램(RAM)과 CPU 사이의 통로 등을 지칭하는 시스템 버스(system bus)의 속도가 100MHz 이상으로 높아짐에 따라 외부메모리와 메모리 콘트롤러(Memory Controller Unit) 사이의 클럭 스큐(Clock Skew)를 조절하여 안정적으로 동작할 필요가 생기게 되었다. As the speed of the system bus, which refers to the passage between the RAM and the CPU of the computer, increases to over 100 MHz, the clock skew between the external memory and the memory controller unit is controlled. It is necessary to operate stably.

도 1은 종래기술의 메모리 컨트롤러를 도시한 도이다. 도 1에는, SRAM Controller(100)와 SDRAM(200)이 표현되어 있는데, 클럭신호(CLK)는 데이터 경로와는 별도로 만들어져서 제공된다. 메모리 콘트롤러(100)와 SDRAM(200) 사이에 데이터를 쓰기(WRITE)와 읽기(READ)를 함에 있어서 HCLK 클럭이 사용된다.1 is a diagram illustrating a memory controller of the related art. In FIG. 1, the SRAM Controller 100 and the SDRAM 200 are represented, and the clock signal CLK is provided separately from the data path. The HCLK clock is used to write (WRITE) and read (READ) data between the memory controller 100 and the SDRAM 200.

도 1에 도시된 SDRAM 제어신호 생성블록(SDRAM CONTROL SIGNAL BLOCK)(110) 은 SDRAM 동작에 사용되는 신호를 생성하는데, SDRAM의 CAS, RAS, WE, ADDR 등의 신호를 생성한다. 이 신호들은 메모리 콘트롤러 외부포트(미도시)를 지나서 외부 SDRAM 메모리(미도시)로 전달되는 OUTPUT 신호이며, HCLK 클럭신호가 지연신호 생성 블록(DELAY GENERATION 블록)(130)을 거쳐서 만들어진 SDRAM 클럭신호 CLK(HCLK_D)에 의해서 동기화된다.The SDRAM CONTROL SIGNAL BLOCK 110 shown in FIG. 1 generates a signal used for the SDRAM operation, and generates signals such as CAS, RAS, WE, and ADDR of the SDRAM. These signals are OUTPUT signals that are passed to the external SDRAM memory (not shown) through the memory controller external port (not shown), and the SDLK clock signal CLK, which is made by the HCLK clock signal, is passed through the delay signal generation block (DELAY GENERATION block) 130. Synchronized by (HCLK_D).

그리고, 도 1에 도시된 쓰기/읽기 데이터 생성 블록(WRITE/READ DATA GENERATION BLOCK)(120)은 쓰기선택신호(WRITE)에서 의해서 쓰기데이터(WDATA)를 SDRAM 데이터 신호 DQ(220)로 보내거나, SDRAM 데이터 신호 DQ(220)로부터 받은 읽기 신호(DQ_D)를 읽기데이터(RDATA)로 만드는데 사용되는 블록이다.The write / read data generation block 120 shown in FIG. 1 sends the write data WDATA to the SDRAM data signal DQ 220 by the write select signal WRITE. A block used to make the read signal DQ_D received from the SDRAM data signal DQ 220 into read data RDATA.

여기서, 쓰기데이터(WDATA)는 SDRAM 데이터 신호 DQ(220)에 전달되고, SDRAM 클럭신호 CLK(230)에 의해서 동기화되며, 읽기데이터(RDATE)는 상기 읽기신호(DQ_D)가 지연신호 생성 블록(130)에 의해 지연된 HCLK 클럭신호(HCLK_D)에 의해서 동기화되어 만들어진다.Here, the write data WDATA is transmitted to the SDRAM data signal DQ 220, and is synchronized by the SDRAM clock signal CLK 230, and the read data RDATE is the read signal DQ_D as the delay signal generation block 130. Are synchronized by the HCLK clock signal HCLK_D delayed by

결국 SDRAM 컨트롤 신호, 쓰기데이터, 읽기데이터가 모두 클럭신호 HCLK에 의해 제어되는 구조이다. 100MHz이상의 고성능 메모리 콘트롤러에서 하나의 클럭에 의한 쓰기, 읽기 작업을 동시에 수행하는 것은 대단히 어려우며, 경우에 따라 불가능할 수 있다.As a result, the SDRAM control signal, the write data, and the read data are all controlled by the clock signal HCLK. In a high performance memory controller above 100MHz, it is very difficult to write and read by one clock at the same time, which can be impossible in some cases.

도 2는 도 1의 메모리 컨트롤러에 의한 SDRAM READ 타이밍 다이어그램이다.FIG. 2 is an SDRAM READ timing diagram by the memory controller of FIG. 1.

도 2의 A에서 보듯이 클럭신호 HCLK의 타이밍 지연으로 만들어진 SDRAM 클럭 신호 CLK에 의해서 SDRAM 읽기데이터 DQ가 발생한다. 일반적인 SDRAM의 경우, CLK 상승에지(CLK에서 화살표로 표시된 부분)에서 DQ 데이터까지의 시간은 5~7ns정도이며, 읽기데이터 DQ는 wire 시간지연을 거쳐서 DQ_D 데이터를 만든다.As shown in Fig. 2A, the SDRAM read data DQ is generated by the SDRAM clock signal CLK made by the timing delay of the clock signal HCLK. In general SDRAM, the time from CLK rising edge (marked by arrow in CLK) to DQ data is about 5 ~ 7ns, and read data DQ makes DQ_D data through wire time delay.

다시 도 1을 참조하면, 데이터 DQ와 클럭 HCLK_D가 쓰기/읽기 데이터 생성 블록(120)의 플립플롭(F/F)을 거쳐서 읽기데이터 RDATA를 생성하게 된다. 그런데, 타이밍지연을 정확히 예측하는 모델을 만들 수 없을 뿐만 아니라, 공정에 따라 편차가 크게 발생할 수 있어서, 도 2의 B와 같이 데이터 셋업 마진(Data Setup Margin)을 확보하는 HCLK_D를 만들기는 대단히 어렵다.Referring back to FIG. 1, the data DQ and the clock HCLK_D generate the read data RDATA through the flip-flop F / F of the write / read data generation block 120. However, not only a model that accurately predicts the timing delay can be produced, but also a large variation may occur depending on the process, and it is very difficult to make HCLK_D securing a data setup margin as shown in B of FIG. 2.

공정 등 예측하지 못하는 변수에 의해서 클럭 HCLK_D의 타이밍이 일치하지 않을 경우를 대비하여, 도 1의 지연신호 생성 블록(130)에서 보듯이 METAL OPTION을 설정한다. Metal Revision을 통해서 정확한 타이밍을 확보하기 위한 방법이지만, Metal Revision에 의한 TTM(Time To Market)이 길어지게 되고, 추가 공정비용이 소요된다.In case the timing of the clock HCLK_D does not match due to an unexpected parameter such as a process, the METAL OPTION is set as shown in the delay signal generation block 130 of FIG. 1. It is a method to secure accurate timing through Metal Revision, but the TTM (Time To Market) by Metal Revision becomes long and additional process cost is required.

뿐만 아니라 읽기 클럭과 쓰기 클럭이 동일하기 때문에, 위와 같은 방법에 의한 SDRAM 읽기 타이밍 조절로 인해서 쓰기 클럭도 변형되게 된다. 이로 인하여 SDRAM 데이터 쓰기 동작에 문제가 발생한다.In addition, since the read clock and the write clock are the same, the write clock is modified due to the SDRAM read timing adjustment by the above method. This causes a problem in the SDRAM data write operation.

따라서, SDRAM등 Synchronous 메모리와 메모리 콘트롤러 사이의 스큐를 조절할 수 있는 특별한 장치가 요구된다.Therefore, a special device that can control the skew between the synchronous memory and the memory controller such as SDRAM is required.

상기한 바와 같은 문제를 해결하기 위해, 본 발명은 종래의 메모리 콘트롤러가 가지고 있던 SDRAM 쓰기/읽기 클럭의 조절을 재공정없이 할 수 있는 장치를 개발하여, 메탈 옵션 등을 이용한 재공정을 없애고, 칩 생산에 있어서의 손실을 줄일 수 있는 외부 메모리와 메모리 콘트롤러 사이의 스큐를 자동 조절하는 장치를 제공하는 데 있다. 또한, 외부메모리와 메모리 콘트롤러 사이의 스큐를 자동 조절하여 주파수 166MHz까지 안정적으로 동작하는 메모리 콘트롤러를 제공하는 데 있다.In order to solve the above problems, the present invention has developed a device that can control the SDRAM write / read clocks of the conventional memory controller without reprocessing, eliminating the reprocessing using metal options, and chip It is to provide a device that automatically adjusts the skew between the external memory and the memory controller to reduce the loss in production. In addition, the present invention provides a memory controller that stably operates up to a frequency of 166 MHz by automatically adjusting the skew between the external memory and the memory controller.

상기와 같은 과제를 해결하기 위한 본 발명에 따른 메모리 콘트롤러는,Memory controller according to the present invention for solving the above problems,

SDRAM 메모리 콘트롤러의 동작모드를 설정하는 모드 레지스터 블록; 상기 모드 레지스터 블록의 설정에 따라 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 생성하는 주파수 & 클럭 스큐 생성 블록; 클럭 신호(HCLK)와 상기 클럭 주파수(Sek_C_M)를 수신하여 제1 클럭 신호(HCLK_1), 제2 클럭 신호(HCLK_2)를 생성하는 클럭 주파수 생성 블록; 상기 제1 클럭 신호(HCLK_1)와 읽기 클럭 스큐(Sek_C_R)를 수신하여 읽기 클럭 신호(HCLK_R)를 생성하는 읽기 클럭 신호 생성 블록; 상기 제2 클럭 신호(HCLK_2)와 쓰기 클럭 스큐(Sek_C_W)를 수신하여 쓰기 클럭 신호(HCLK_W)를 생성하는 쓰기 클럭 신호 생성 블록; 쓰기선택신호(WRITE)에 의해 쓰기 데이터를 생성하거나, 상기 읽기 클럭 신 호(HCLK_R)를 수신하여 읽기 데이터를 생성하는 데이터 생성 블록; 상기 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 수신하여 쓰기 데이터, 테스트 SDRAM 신호, 그리고 비교 종료 신호(Compare Done)를 생성하는 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록; 및, SDRAM 신호, 테스트 SDRAM 신호, 그리고 비교 종료 신호를 수신하여 최종 SDRAM 신호를 선택하는 SDRAM 신호 선택 블록을 포함하며, 상기 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록에서 생성된 비교 종료 신호(Compare Done)에 의해 주파수 & 클럭 스큐 생성 블록에서 생성되는 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 바꾸어가면서 SDRAM을 테스트하여 적합한 클럭을 찾아내는 것을 특징으로 한다.A mode register block for setting an operation mode of the SDRAM memory controller; A frequency & clock skew generation block for generating a clock frequency Sek_C_M, a read clock skew Sek_C_R, and a write clock skew Sek_C_W according to the setting of the mode register block; A clock frequency generation block receiving a clock signal HCLK and the clock frequency Sek_C_M to generate a first clock signal HCLK_1 and a second clock signal HCLK_2; A read clock signal generation block configured to receive the first clock signal HCLK_1 and a read clock skew Sek_C_R to generate a read clock signal HCLK_R; A write clock signal generation block configured to receive the second clock signal HCLK_2 and a write clock skew Sek_C_W to generate a write clock signal HCLK_W; A data generation block generating write data by a write select signal WRITE, or generating read data by receiving the read clock signal HCLK_R; Test SDRAM signal generation & write read data receiving the clock frequency Sek_C_M, read clock skew Sek_C_R, and write clock skew Sek_C_W to generate write data, a test SDRAM signal, and a compare end signal. Comparison block; And an SDRAM signal selection block receiving the SDRAM signal, the test SDRAM signal, and the comparison end signal to select the final SDRAM signal, wherein the comparison end signal generated in the test SDRAM signal generation & write read data comparison block By changing the clock frequency (Sek_C_M), read clock skew (Sek_C_R), and write clock skew (Sek_C_W) generated in the frequency & clock skew generation block, the SDRAM is tested to find a suitable clock.

여기서, 상기 모드 레지스터 블록에서 모드는 제1 내지 제4 모드(00, 01, 10, 11)로 분류되고, 상기 제1 모드는 위상 고정 루프 클럭 생성기(PLL)를 사용하며, 상기 제2 모드는 프리스케일러(prescaler) 클럭 분주기를 사용하고, 상기 제3 모드는 클럭 주파수를 외부 클럭주파수 그대로 사용하고 클럭 스큐만 자동조절하며, 상기 제4 모드는 사용자가 지정하는 클럭 주파수 및 클럭 스큐를 사용하는 것을 특징으로 한다.Here, in the mode register block, modes are classified into first to fourth modes (00, 01, 10, and 11), the first mode uses a phase locked loop clock generator (PLL), and the second mode is A prescaler clock divider is used, and the third mode uses the clock frequency as an external clock frequency and automatically adjusts only the clock skew, and the fourth mode uses a clock frequency and a clock skew specified by the user. It features.

또한, 상기 주파수 & 클럭 스큐 생성 블록은,In addition, the frequency & clock skew generation block,

상기 비교 종료 신호에 의해 상기 클럭 주파수, 쓰기 클럭 스큐, 읽기 클럭 스큐를 순차적으로 바꾸는 선택 생성 블록(Selection Generation Block)과, 상기 선택 생성 블록에서 출력된 신호, 최종 SDRAM 신호, 그리고 사용자기 지정하는 클럭 주파수 및 클럭 스큐를 수신하여 적합한 클럭 주파수, 읽기 클럭 스큐, 그리고 쓰기 클럭 스큐를 선택하는 멀티플랙서를 포함하는 것을 특징으로 한다.A selection generation block for sequentially changing the clock frequency, write clock skew, and read clock skew by the comparison end signal; a signal output from the selection generation block, a final SDRAM signal, and a user-specified clock; And a multiplexer that receives the frequency and clock skew to select the appropriate clock frequency, read clock skew, and write clock skew.

또한, 상기 클럭 주파수 생성 블록은,In addition, the clock frequency generation block,

클럭 주파수(Sek_C_M)와 클럭 신호(HCLK)를 수신하는 위상 고정 루프 클럭 생성기(PLL)와, 클럭 주파수(Sek_C_M)와 클럭 신호(HCLK)를 수신하는 프리스케일러(prescaler) 클럭 분주기와, 상기 위상 고정 루프 클럭 생성기(PLL)와 프리스케일러(prescaler) 클럭 분주기에서 출력된 신호를 수신하여 클럭 주파수를 생성하는 멀티플랙서를 포함하는 것을 특징으로 한다.A phase locked loop clock generator PLL that receives a clock frequency Sek_C_M and a clock signal HCLK, a prescaler clock divider that receives a clock frequency Sek_C_M and a clock signal HCLK, and the phase locked And a multiplexer configured to receive a signal output from a loop clock generator (PLL) and a prescaler clock divider to generate a clock frequency.

또한, 상기 데이터 생성 블록은,In addition, the data generation block,

쓰기선택신호(WRITE)에서 의해서 쓰기데이터(WDATA)를 생성하여 외부의 SDRAM 데이터 신호 DQ으로 전송하는 버퍼와, 읽기 클럭 신호(HCLK_R)와 상기 SDRAM 데이터 신호 DQ로부터 받은 신호(DQ_D)를 수신하여 읽기 데이터를 생성하는 플립플롭(F/F)을 포함하는 것을 특징으로 한다.A buffer for generating write data WDATA by the write select signal WRITE and transmitting it to an external SDRAM data signal DQ, and receiving and reading a read clock signal HCLK_R and a signal DQ_D received from the SDRAM data signal DQ. And flip-flops (F / F) for generating data.

또한, 상기 읽기 클럭 신호 생성 블록은, 딜레이된 클럭 스큐를 인위적으로 생성하는 딜레이 셀과, 읽기 클럭 스큐(Sek_C_R)와, 상기 딜레이 셀에 의해 딜레이 된 제1 클럭 신호(HCLK_1)들을 수신한 후, 적합한 제1 클럭 신호를 선택하여 읽기 클럭 신호(HCLK_R)를 생성하는 멀티플랙서를 포함하는 것을 특징하는 것을 특징으로 한다.The read clock signal generation block may further include a delay cell for artificially generating a delayed clock skew, a read clock skew Sek_C_R, and first clock signals HCLK_1 delayed by the delay cell. And a multiplexer for selecting a suitable first clock signal to generate a read clock signal HCLK_R.

또한, 상기 쓰기 클럭 신호 생성 블록은, 딜레이된 클럭 스큐를 인위적으로 생성하는 딜레이 셀과, 쓰기 클럭 스큐(Sek_C_W)와, 상기 딜레이 셀에 의해 딜레이된 제2 클럭 신호(HCLK_2)들을 수신한 후, 적합한 제2 클럭 신호를 선택하여 쓰기 클럭 신호(HCLK_W)를 생성하는 멀티플랙서를 포함하는 것을 특징으로 한다.The write clock signal generation block may further include a delay cell for artificially generating a delayed clock skew, a write clock skew Sek_C_W, and second clock signals HCLK_2 delayed by the delay cell. And a multiplexer for selecting a suitable second clock signal to generate the write clock signal HCLK_W.

또한, 상기 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록은,In addition, the test SDRAM signal generation & write read data comparison block,

클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 저장하는 테스트 결과 저장 메모리와, 쓰기 데이터 및 테스트 SDRAM 신호를 SDRAM으로 전송하는 SDRAM 신호 생성 블록과, 읽기 데이터와 상기 쓰기 데이터를 비교하여 비교 종료 신호(Compare Done)를 상기 SDRAM 신호 생성 블록과 상기 주파수 & 클럭 스큐 생성 블록으로 전송하는 쓰기 읽기 데이터 비교 블록 및, 최종적으로 적합한 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 결정하는 주파수 및 클럭 스큐 결정 블록을 포함하는 것을 특징으로 한다.A test result storage memory for storing the clock frequency Sek_C_M, the read clock skew Sek_C_R, and the write clock skew Sek_C_W, an SDRAM signal generation block for transferring write data and a test SDRAM signal to the SDRAM, read data and the Write read data comparison block that compares write data and transmits a compare end signal to the SDRAM signal generation block and the frequency & clock skew generation block, and finally a suitable clock frequency (Sek_C_M) and read clock skew (Sek_C_R). And a frequency and clock skew determination block for determining the write clock skew Sek_C_W.

상기한 바와 같은 본 발명에 따른 메모리 콘트롤러는, 칩 외부에 SDRAM등 싱크로너스 메모리를 지원하는 메모리 컨트롤러를 설계할 때, 메모리 콘트롤러 칩과 외부 싱크로너스 메모리 사이의 클럭 스큐를 조절하기 위해 사용될 수 있다. The memory controller according to the present invention as described above may be used to adjust the clock skew between the memory controller chip and the external synchronous memory when designing a memory controller that supports synchronous memory such as SDRAM outside the chip.

종래의 경우, 클럭 스큐가 맞지 않을 때, 메탈 옵션 등을 이용하여 재 공정을 통해 원하는 칩을 생산할 수 있으나, 본 발명에 따른 메모리 콘트롤러에 의하면, 재공정없이 레지스터 셋팅으로 클럭 스큐의 셋 업 마진을 확보할 수 있는 효과가 있고, 또한 이를 통하여, SDRAM 최대주파수 166MHz까지 안정적으로 동작하는 것이 가능하다는 효과가 있다.In the conventional case, when the clock skew is not correct, a desired chip may be produced through a reprocessing process using a metal option, etc. However, according to the memory controller according to the present invention, the setup margin of the clock skew is set by register setting without reprocessing. There is an effect that can be secured, and through this, it is possible to operate stably up to a maximum frequency of 166MHz SDRAM.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 우선, 도면들 중 동일한 구성요소 또는 부품들은 가능한 한 동일한 참조부호를 나타내고 있음에 유의해야 한다. 본 발명을 설명함에 있어서 관련된 공지기능 혹은 구성에 대한 구체적인 설명은 본 발명의 요지를 모호하게 하지 않기 위해 생략한다.Hereinafter, with reference to the accompanying drawings will be described an embodiment of the present invention; First, it should be noted that the same components or parts in the drawings represent the same reference numerals as much as possible. In describing the present invention, detailed descriptions of related well-known functions or configurations are omitted in order not to obscure the gist of the present invention.

도 3은 본 발명에 따른 메모리 콘트롤러가 도시된 도, 도 4는 본 발명에 따른 메모리 콘트롤러의 모드 레지스터 블록에서의 모드에 대한 도, 도 5는 본 발명에 따른 메모리 콘트롤러의 주파수 & 클럭 스큐 생성 블록이도시된 도, 도 6은 본 발명에 따른 메모리 콘트롤러의 클럭 주파수 생성 블록이 도시된 도, 도 7은 본 발명에 따른 메모리 콘트롤러의 데이터 생성 블록이 도시된 도, 도 8은 본 발명에 따 른 메모리 콘트롤러의 읽기 클럭 신호 생성 블록이 도시된 도, 도 9는 본 발명에 따른 메모리 콘트롤러의 쓰기 클럭 신호 생성 블록이 도시된 도, 도 10은 본 발명에 따른 메모리 콘트롤러의 SDRAM 신호 선택 블록이 도시된 도, 도 11은 본 발명에 따른 메모리 콘트롤러의 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록이 도시된 도, 도 12는 주파수 및 클럭 스큐 결정 블록에서 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 최종 결정하는 과정이 도시된 도, 도 13은 본 발명에 따른 메모리 콘트롤러의 쓰기 타이밍 다이어그램이 도시된 도, 도 14는 본 발명에 따른 메모리 콘트롤러의 읽기 타이밍 다이어그램이 도시된 도이다.3 is a diagram illustrating a memory controller according to the present invention, FIG. 4 is a diagram illustrating a mode in a mode register block of a memory controller according to the present invention, and FIG. 5 is a frequency & clock skew generation block of a memory controller according to the present invention. 6 shows a clock frequency generation block of the memory controller according to the present invention, FIG. 7 shows a data generation block of the memory controller according to the present invention, and FIG. 9 is a block diagram illustrating a read clock signal generation block of a memory controller. FIG. 9 is a diagram illustrating a write clock signal generation block of a memory controller according to the present invention. FIG. 10 is a block diagram illustrating an SDRAM signal selection block of a memory controller according to the present invention. FIG. 11 illustrates a test SDRAM signal generation & write read data comparison block of a memory controller according to the present invention. FIG. 12 illustrates a frequency and a clock. FIG. 13 is a diagram illustrating a process of finally determining a read clock skew Sek_C_R and a write clock skew Sek_C_W in a queue determination block. FIG. 13 is a diagram illustrating a write timing diagram of a memory controller according to the present invention. A read timing diagram of a memory controller according to the invention is shown.

외부메모리와 메모리 콘트롤러 사이의 클럭 스큐를 정확하게 맞추는 것을 대단히 어렵다. 읽기 데이터와 쓰기 데이터를 모두 만족시키는 클럭을 찾아야 하며, 주파수에 따라 스큐가 바뀌기 때문에 이 부분도 고려해야 한다.It is very difficult to accurately match the clock skew between the external memory and the memory controller. You need to find a clock that satisfies both the read and write data, and this must be taken into account as the skew varies with frequency.

도 3을 참조하면, 본 발명에서는 메모리의 읽기 클럭과 쓰기 클럭을 읽기 클럭 신호(HCLK_R), 쓰기 클럭 신호(HCLK_W)의 신호로 분리하여 쓰기와 읽기 클럭을 독립적으로 동작가능하게 하였다. 그리고, 주파수 조절을 위해서 클럭 주파수 생성 블록(Clock Frequency Generation Block)(30)을 이용하였다.Referring to FIG. 3, the read and write clocks of the memory are divided into signals of the read clock signal HCLK_R and the write clock signal HCLK_W to enable the write and read clocks to operate independently. In addition, a clock frequency generation block 30 is used to adjust the frequency.

동작의 개요를 살펴보면, 모드 레지스터 블록(Mode Register)(10)에서 동작모드를 정상 모드(Normal Mode)로 설정하게 되면, 주파수 & 클럭 스큐 생성 블록(Frequency & Clock Skew Declaration Block)(20)에서는 자체 알고리즘에 의해서 클럭 주파수(Sek_C_M), 쓰기 클럭 스큐(Sek_C_W), 읽기 클럭 스큐(Sek_C_R) 신호를 만든다.Looking at the overview of the operation, when the operation mode is set to the normal mode in the mode register block (10), the frequency & clock skew generation block (Frequency & Clock Skew Declaration Block) 20 The algorithm generates a clock frequency Sek_C_M, a write clock skew Sek_C_W, and a read clock skew Sek_C_R.

클럭 주파수 생성 블록(30)은 클럭 신호(HCLK)와 클럭 주파수(Sek_C_M) 신호를 받아서 주파수를 저주파수에서 고주파수까지 조절시킬 수 있다. 여기서, 저주파수는 통상적으로 1 ~ 10 MHz 범위를 뜻하고, 고주파수는 일반 SDRAM의 고주파수로 133MHz, 또는 166MHz를 뜻한다. 이하에서도 동일하다.The clock frequency generation block 30 may receive the clock signal HCLK and the clock frequency Sek_C_M and adjust the frequency from a low frequency to a high frequency. Here, the low frequency typically means a range of 1 to 10 MHz, and the high frequency is 133 MHz or 166 MHz as a high frequency of a general SDRAM. The same applies to the following.

클럭 주파수 생성 블록(30)에서 만들어진 클럭 신호는 읽기 클럭 신호 생성 블록(Read Clock Generation Block)(50)과 쓰기 클럭 신호 생성 블록(Write Clock Generation Block)(60)으로 제1 클럭 신호(HCLK_1), 제2 클럭 신호(HCLK_2) 형태로 각각 들어간다.The clock signal generated by the clock frequency generation block 30 is a read clock generation block 50 and a write clock generation block 60. The first clock signal HCLK_1, Each enters the second clock signal HCLK_2.

쓰기 클럭 신호 생성 블록(60)은 제2 클럭 신호(HCLK_2)와 쓰기 클럭 스큐(Sek_C_W) 신호를 받아 클럭 스큐가 조절된 쓰기 클럭 신호(HCLK_W)를 만들어 주며, 최종적으로 쓰기 클럭 신호(HCLK_W)가 메모리의 쓰기 클럭으로 사용된다.The write clock signal generation block 60 receives the second clock signal HCLK_2 and the write clock skew Sek_C_W signal to generate the write clock signal HCLK_W with the clock skew adjusted, and finally the write clock signal HCLK_W Used as a memory write clock.

읽기 클럭 신호 생성 블록(50)은 제1 클럭 신호(HCLK_1)와 읽기 클럭 스큐(Sek_C_R) 신호를 받아 클럭 스큐가 조절된 읽기 클럭 신호(HCLK_R)를 만들어 주며, 최종적으로 읽기 클럭 신호(HCLK_R)가 메모리의 읽기 클럭으로 사용된다. The read clock signal generation block 50 receives the first clock signal HCLK_1 and the read clock skew Sek_C_R signal to generate the read clock signal HCLK_R with the clock skew adjusted. Finally, the read clock signal HCLK_R Used as a read clock in memory.

결국, 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록(Test SDRAM Signal Generation & WDATA, RDATA Comparison)(80)의 비교 종료 신호(Compare Done)를 보고 주파수 & 클럭 스큐 생성 블록(20)에 의해 만들어진 클럭 주파수(Sek_C_M), 쓰기 클럭 스큐(Sek_C_W), 읽기 클럭 스큐(Sek_C_R) 신호를 바꾸어 가면서, SDRAM을 테스트해서, 최적의 클럭을 찾아내는 방식이다.Eventually, the compare end signal (Compare Done) of the test SDRAM signal generation & write read data comparison block (Test SDRAM Signal Generation & WDATA, RDATA Comparison) 80 is used to view the clock frequency generated by the frequency & clock skew generation block 20. By changing the (Sek_C_M), write clock skew (Sek_C_W), and read clock skew (Sek_C_R) signals, the SDRAM is tested to find an optimal clock.

도 4는 도 3의 메모리 콘트롤러의 모드 레지스터 블록이 도시되어 있다.4 illustrates a mode register block of the memory controller of FIG. 3.

모드 레지스터 블록(Mode Register Block)(10)에서 모드는 제1 내지 제4 모드(00, 01, 10, 11모드)로 분류되고, 상기 제1 모드(00모드)(이하 '00')는 위상 고정 루프 클럭 생성기(PLL)를 사용하며, 상기 제2 모드(01모드)(이하 '01')는 프리스케일러(prescaler) 클럭 분주기를 사용하고, 상기 제3 모드(10모드)(이하 '10')는 클럭 주파수를 외부 클럭주파수 그대로 사용하고 클럭 스큐만 자동조절하며, 상기 제4 모드(11모드)(이하 '11')는 사용자가 지정하는 클럭 주파수 및 클럭 스큐를 사용한다.In the mode register block 10, a mode is classified into first to fourth modes (00, 01, 10, and 11 modes), and the first mode (00 mode) (hereinafter, '00') is a phase. A fixed loop clock generator (PLL) is used, the second mode (01 mode) (hereinafter '01') uses a prescaler clock divider, and the third mode (10 mode) (hereinafter '10'). ) Uses the clock frequency as an external clock frequency and automatically adjusts only the clock skew, and the fourth mode (11 modes) (hereinafter '11') uses a clock frequency and a clock skew specified by the user.

모드 레지스터 블록(10)는 작동 모드를 '00' 또는 '01'으로 설정하여, SDRAM 컨트롤러에서 설정할 수 있는 값으로 자동적으로 계산할 수 있다. '00'과 '01'의 차이점은 클럭주파수를 PLL을 사용하는가 아니면, 프리스케일러(Prescaler)를 사용하는 가이다. PLL은 현재 클럭을 고주파수로 변화시켜주는 블록이며, Prescaler는 현재의 클럭을 저주파수로 변화시켜주는 블록이다.The mode register block 10 may automatically calculate the value set in the SDRAM controller by setting the operation mode to '00' or '01'. The difference between '00' and '01' is whether the clock frequency uses a PLL or a prescaler. The PLL is a block that changes the current clock to high frequencies, and the Prescaler is a block that changes the current clock to low frequencies.

SDRAM 컨트롤러에 공급되는 클럭이 고주파수이면 Prescaler를 사용하여 저주파수로 변환시키면서 클럭 스큐를 찾을 수 있으며, 만약 클럭이 저주파수이면 PLL을 사용하여 고주파수로 변환시키면서 클럭 스큐를 찾을 수 있다. 모드를 '10'로 설정하면 클럭 주파수는 외부 클럭 주파수를 그대로 사용하고, 클럭 스큐만 자동조절하는 방법을 사용할지 결정한다. 마지막으로 모드를 '11'로 설정하면 사용자가 클럭 주파수와 클럭 스큐를 설정할 수 있으며, 사용자 지정 입력 신호(User Defined Selection) 에 따라 클럭 주파수와 클럭 스큐가 결정된다.If the clock supplied to the SDRAM controller is high frequency, the clock skew can be found by converting to low frequency using the Prescaler. If the clock is low frequency, the clock skew can be found by converting to high frequency using the PLL. When the mode is set to '10', the clock frequency uses the external clock frequency as it is and decides whether to use automatic clock skew adjustment. Finally, if the mode is set to '11', the user can set the clock frequency and clock skew, and the clock frequency and clock skew are determined by the user defined input signal.

도 5에는 도 3의 주파수 & 클럭 스큐 생성 블록의 세부 내용이 도시되어 있다.FIG. 5 shows details of the frequency & clock skew generation block of FIG. 3.

상기 주파수 & 클럭 스큐 생성 블록(20)은 비교 종료 신호(Compare Done)에 의해 클럭 주파수, 쓰기 클럭 스큐, 읽기 클럭 스큐를 순차적으로 바꾸는 선택 생성 블록(Selection Generation Block)(21)과, 상기 선택 생성 블록(21)에서 출력된 신호(Test Selection), 최종 SDRAM 신호(Final Selection), 그리고 사용자가 지정하는 입력 신호(User Defined Selection)를 수신하여 적합한 클럭 주파수, 읽기 클럭 스큐, 그리고 쓰기 클럭 스큐를 선택하는 멀티플랙서(23)를 포함하여 구성된다.The frequency & clock skew generation block 20 includes a selection generation block 21 for sequentially changing a clock frequency, a write clock skew, and a read clock skew by a compare end signal, and the selection generation. Select the appropriate clock frequency, read clock skew, and write clock skew by receiving the signal (Test Selection), the final SDRAM signal (Final Selection), and the user-defined input signal (User Defined Selection) output from block 21 It is configured to include a multiplexer (23).

모드 레지스터 블록(10)은 SDRAM 컨트롤러에서 설정할 수 있는 값으로 자동적으로 계산하지 않고 사용자가 클럭 주파수와 클럭 스큐를 설정할 수 있는 사용자 지정 입력 신호(User Defined Selection) 를 설정할 것인지, 아니면 자동테스트에 의한 클럭 스큐를 설정할지 결정하는 레지스터이다. 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록(80)에서 만들어진 비교 종료 신호(Compare Done)는 SDRAM을 통한 데이터 쓰기, 읽기 테스트 완료를 나타내는 신호로서 테스트가 완료되어 비교 종료 신호(Compare Done)가 "High"일 때, Sek_C_M, Sek_C_W, Sek_C_R 신호가 선택 생성 블록(21)에 의해서 바뀌게 된다. "Final Selection" 신호는 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록(80)에서 만들어진 신호로서, 모 든 검증이 끝나고 최종적은 결정된 Sek_C_M, Sek_C_W, Sek_C_R 신호를 의미한다.The mode register block 10 does not automatically calculate the values that can be set in the SDRAM controller. Instead, the mode register block 10 sets user defined signals that allow the user to set clock frequency and clock skew. This register determines whether to set skew. Create & Write Test SDRAM Signal The compare end signal (Compare Done) generated by the data compare block 80 indicates completion of data write and read test through the SDRAM. ", The Sek_C_M, Sek_C_W, and Sek_C_R signals are changed by the selection generation block 21. The "Final Selection" signal is a signal generated in the test SDRAM signal generation & write read data comparison block 80, and refers to the Sek_C_M, Sek_C_W, and Sek_C_R signals that are finally determined after all verification is completed.

사용자 지정 입력 신호(User Defined Selection)는 SDRAM 컨트롤러의 입력 신호로서 사용자가 클럭 주파수와 클럭 스큐를 임의로 설정할 수 있으며, 테스트를 위해 저주파수로 설정하거나, 디버깅(debugging)용으로 사용될 수 있다.User Defined Selection is an input signal from the SDRAM controller that allows the user to set the clock frequency and clock skew arbitrarily, set it to a low frequency for testing, or use it for debugging.

도 6에는 클럭 주파수 생성 블록이 상세히 도시되어 있다.6 illustrates the clock frequency generation block in detail.

도 6에 도시된 바와 같이, 상기 클럭 주파수 생성 블록(30)은 클럭 주파수(Sek_C_M)와 클럭 신호(HCLK)를 수신하는 위상 고정 루프 클럭 생성기(PLL)(31)와, 클럭 주파수(Sek_C_M)와 클럭 신호(HCLK)를 수신하는 프리스케일러(prescaler) 클럭 분주기(32)와, 상기 위상 고정 루프 클럭 생성기(PLL)와 프리스케일러(prescaler) 클럭 분주기에서 출력된 신호를 수신하여 클럭 주파수를 생성하는 멀티플랙서(33)를 포함하여 구성된다.As shown in FIG. 6, the clock frequency generation block 30 includes a phase locked loop clock generator (PLL) 31 that receives a clock frequency Sek_C_M and a clock signal HCLK, and a clock frequency Sek_C_M. A prescaler clock divider 32 that receives a clock signal HCLK, and a signal frequency generated by receiving signals output from the phase locked loop clock generator PLL and the prescaler clock divider to generate a clock frequency The flexure 33 is comprised.

주파수 & 클럭 스큐 생성 블록(20)에 의해 만들어진 클럭 주파수 신호(Sek_C_M)가 위상 고정 루프 클럭 생성기(PLL)(31)와 프리스케일러(prescaler) 클럭 분주기(32)에 들어가서 클럭 주파수를 바꾸어주게 된다. 만약 위상 고정 루프 클럭 생성기(PLL)(31)와 프리스케일러(prescaler) 클럭 분주기(32)가 내장되어 있지 않거나, 주파수를 HCLK 그대로 사용할 경우, 모드 레지스터(10)의 신호를 '10' 또는 '11'로 설정하여 멀티플랙서(33)를 클럭 신호(HCLK)를 통과(bypass)시킬 수 있다.The clock frequency signal Sek_C_M generated by the frequency & clock skew generation block 20 enters a phase locked loop clock generator (PLL) 31 and a prescaler clock divider 32 to change the clock frequency. If the phase locked loop clock generator (PLL) 31 and the prescaler clock divider 32 are not built in, or if the frequency is used as HCLK, the signal of the mode register 10 is set to '10' or '11'. ', The multiplexer 33 can bypass the clock signal HCLK.

여기서, 위상 고정 루프 클럭 생성기(PLL)는 현재 클럭을 고주파수로 변화시 켜주며, 프리스케일러(prescaler) 클럭 분주기(32)는 현재의 클럭을 저주파수로 변화시켜준다.Here, the phase locked loop clock generator (PLL) changes the current clock to a high frequency, and the prescaler clock divider 32 changes the current clock to a low frequency.

도 7에는 데이터 생성 블록이 상세히 도시되어 있다.7 shows the data generation block in detail.

도 7에 도시된 바와 같이, 상기 데이터 생성 블록(40)은 쓰기선택신호(WRITE)에서 의해서 쓰기데이터(WDATA)를 생성하여 외부의 SDRAM 데이터 신호 DQ으로 전송하는 버퍼(41)와, 읽기 클럭 신호(HCLK_R)와 상기 SDRAM 데이터 신호 DQ로부터 받은 신호(DQ_D)를 수신하여 읽기 데이터를 생성하는 플립플롭(F/F)(42)을 포함하여 구성된다.As shown in FIG. 7, the data generation block 40 includes a buffer 41 for generating write data WDATA from the write select signal WRITE and transmitting the write data WDATA to an external SDRAM data signal DQ, and a read clock signal. And a flip-flop (F / F) 42 which receives the HCLK_R and the signal DQ_D received from the SDRAM data signal DQ and generates read data.

즉, 데이터 생성 블록(40)에서는 WDATA, WRITE 신호에 의해서 SDRAM 쓰기 데이터 WDATA_buf 신호가 만들어져서, DQ 신호로 외부 SDRAM로 들어가게 된다. 그리고, SDRAM 읽기 데이터 DQ_D와 HCLK_R 신호에 의해 RDATA신호가 만들어진다. 결국, SDRAM 데이터 신호 DQ를 읽기, 쓰기 모두 사용하기 위해 도 7과 같은 데이터 생성 블록이 구성된다.That is, in the data generation block 40, the SDRAM write data WDATA_buf signal is generated by the WDATA and WRITE signals, and enters the external SDRAM as the DQ signal. The RDATA signal is generated by the SDRAM read data DQ_D and the HCLK_R signal. As a result, the data generation block shown in FIG. 7 is configured to use both read and write SDRAM data signals DQ.

도 8에는 읽기 클럭 신호 생성 블록이 상세히 도시되어 있다.8 shows a read clock signal generation block in detail.

도 8에 도시된 바와 같이, 상기 읽기 클럭 신호 생성 블록(50)은, 딜레이된 클럭 스큐를 인위적으로 생성하는 딜레이 셀(51)과, 읽기 클럭 스큐(Sek_C_R)와, 상기 딜레이 셀(51)에 의해 딜레이된 제1 클럭 신호(HCLK_1)들을 수신한 후, 적합한 제1 클럭 신호를 선택하여 읽기 클럭 신호(HCLK_R)를 생성하는 멀티플랙서(52) 를 포함하여 구성된다.As shown in FIG. 8, the read clock signal generation block 50 includes a delay cell 51 that artificially generates a delayed clock skew, a read clock skew Sek_C_R, and a delay cell 51. And after receiving the first clock signals HCLK_1 delayed by the multiplexer 52, the multiplexer 52 selects a suitable first clock signal and generates a read clock signal HCLK_R.

상기 딜레이 셀(51)을 이용한 멀티플랙서(52) 입력을 사용자의 정확도 요구에 맞추어서 증감시킬 수 있게 된다.The multiplexer 52 input using the delay cell 51 can be increased or decreased in accordance with the accuracy demand of the user.

도 9에는 쓰기 클럭 신호 생성 블록이 상세히 도시되어 있다.9 shows a write clock signal generation block in detail.

도 9에 도시된 바와 같이, 상기 쓰기 클럭 신호 생성 블록(60)은, 딜레이된 클럭 스큐를 인위적으로 생성하는 딜레이 셀(61)과, 쓰기 클럭 스큐(Sek_C_W)와, 상기 딜레이 셀(61)에 의해 딜레이된 제2 클럭 신호(HCLK_2)들을 수신한 후, 적합한 제2 클럭 신호를 선택하여 쓰기 클럭 신호(HCLK_W)를 생성하는 멀티플랙서(62)를 포함하여 구성된다. 상기 읽기 클럭 신호 생성 블록과 마찬가지로 상기 딜레이 셀(61)을 이용한 멀티플랙서(62) 입력을 사용자의 정확도 요구에 맞추어서 증감시킬 수 있게 된다.As illustrated in FIG. 9, the write clock signal generation block 60 includes a delay cell 61 for artificially generating a delayed clock skew, a write clock skew Sek_C_W, and a delay cell 61. After receiving the delayed second clock signal (HCLK_2), it comprises a multiplexer 62 to select the appropriate second clock signal to generate a write clock signal (HCLK_W). Like the read clock signal generation block, the input of the multiplexer 62 using the delay cell 61 can be increased or decreased in accordance with the accuracy request of the user.

도 10에는 SDRAM 신호 선택 블록이 상세히 도시되어 있다.10 shows the SDRAM signal selection block in detail.

상기 SDRAM 신호 선택 블록(SDRAM Signal Selection Block)(70)은 SDRAM 신호(SDRAM Signal)를 선택하는 블록이다. SDRAM 신호는 CAS, RAS, WE, ADDR 등의 신호가 있으며, 도 10에서 SDRAM 신호는 실제 동작을 위한 신호이고, 테스트 SDRAM 신호(Test SDRAM Signal)는 클럭 스큐를 조절하기 위해 테스트 시 사용하는 신호이다. 만약 클럭 스큐를 찾기 위해 시험 테스트를 하는 경우, 최종 선택 신호(Final Selection)에 의해 테스트 SDRAM 신호가 최종 신호로 출력되고, 클럭 스큐 테스트 가 끝난 경우는 SDRAM 신호가 최종 신호로 출력된다.The SDRAM signal selection block 70 is a block for selecting an SDRAM signal. SDRAM signal is a signal such as CAS, RAS, WE, ADDR, etc. In Figure 10, the SDRAM signal is a signal for actual operation, the test SDRAM signal (Test SDRAM Signal) is a signal used in the test to adjust the clock skew. . If a test test is performed to find the clock skew, the test SDRAM signal is output as the final signal by the final selection signal, and the SDRAM signal is output as the final signal when the clock skew test is completed.

도 11에는 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록이 상세히 도시되어 있다.11 illustrates a test SDRAM signal generation & write read data comparison block in detail.

도 11에 도시된 바와 같이, 상기 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록(80)은, 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 저장하는 테스트 결과 저장 메모리(81)와, 쓰기 데이터 및 테스트 SDRAM 신호를 SDRAM으로 전송하는 SDRAM 신호 생성 블록(82)과, 읽기 데이터와 상기 쓰기 데이터를 비교하여 비교 종료 신호(Compare Done)를 상기 SDRAM 신호 생성 블록과 상기 주파수 & 클럭 스큐 생성 블록으로 전송하는 쓰기 읽기 데이터 비교 블록(83)과, 최종적으로 적합한 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 결정하는 주파수 및 클럭 스큐 결정 블록(84)을 포함하여 구성된다.As illustrated in FIG. 11, the test SDRAM signal generation & write read data comparison block 80 stores a test result for storing a clock frequency Sek_C_M, a read clock skew Sek_C_R, and a write clock skew Sek_C_W. A memory 81, an SDRAM signal generation block 82 for transferring write data and a test SDRAM signal to the SDRAM, and a compare end signal (Compare Done) by comparing read data with the write data; Determining the frequency and clock skew that determine the write read data comparison block 83 that is sent to the frequency & clock skew generation block, and finally determine the appropriate clock frequency (Sek_C_M), read clock skew (Sek_C_R), and write clock skew (Sek_C_W). Block 84.

Mode Register, Sek_C_M, Sek_C_W, Sek_C_R 신호를 받아 테스트 결과 저장 메모리(Memory For Test Result)(81)에 저장시킨다. 이 후, SDRAM 신호 생성 블록(SDRAM Signal Generation Block)(82)에서 쓰기 데이터(Write Data), 테스트 SDRAM 신호를 SDRAM에 보낸다. 다음으로 SDRAM 신호 생성 블록(82)에서 SDRAM 쓰기 요청 신호를 보내어, 읽기 데이터(Read Data)를 쓰기 읽기 데이터 비교 블록(WDATA RDATA Comparision Block)(83)에서 받아, 쓰기 데이터와 비교하여 값이 맞는지 틀 린 지를 비교한 후, 비교 종료 신호(Compare Done), 비교 결과 신호(Compare Result)를 SDRAM 신호 생성 블록(82)에 보낸다. 이 결과는 테스트 결과 저장 메모리(81)에 전달되어 저장된다. 그리고, 쓰기 읽기 데이터 비교 블록(83)에서 비교 종료 신호(Compare Done)를 주파수 & 클럭 스큐 생성 블록(20)에 보내서 새로운Sek_C_M, Sek_C_W, Sek_C_R 신호를 만들게 한다. 여기서, SDRAM 신호 생성 블록(82)에서 만드는 쓰기 데이터는 랜덤(Random) 데이터 생성부를 이용하여 같은 값이 반복되지 않도록 할 수 있다.The Mode Register, Sek_C_M, Sek_C_W, and Sek_C_R signals are received and stored in the test result storage memory (Memory For Test Result) 81. Thereafter, the SDRAM signal generation block 82 sends write data and a test SDRAM signal to the SDRAM. Next, the SDRAM signal generation block 82 sends an SDRAM write request signal, receives read data from the write data comparison block 83, compares the write data, and confirms whether the value is correct. After comparing the ring, a comparison end signal (Compare Done) and a comparison result signal (Compare Result) are sent to the SDRAM signal generation block 82. This result is transferred to the test result storage memory 81 and stored. The write read data comparison block 83 sends a compare end signal to the frequency & clock skew generation block 20 to generate new Sek_C_M, Sek_C_W, and Sek_C_R signals. Here, the write data generated by the SDRAM signal generation block 82 may not be repeated by using a random data generation unit.

위와 값은 과정이 반복되어 주파수 및 클럭 스큐 결정 블록(Final Decision of Frequency & Clock Skew)(84)에서 최종적으로 Sek_C_M, Sek_C_W, Sek_C_R 신호를 결정한다.The above values are repeated to finally determine the Sek_C_M, Sek_C_W, and Sek_C_R signals in the frequency and clock skew decision block 84.

도 12는 주파수 및 클럭 스큐 결정 블록에서 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 최종 결정하는 과정이 도시된 도로써, 도 11의 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록(80) 중에 주파수 및 클럭 스큐 결정 블록(Final Decision of Frequency & Clock Skew)(84)에서 쓰기 클럭 스큐(Sek_C_W), 읽기 클럭 스큐(Sek_C_R) 값을 찾는 방법이 나타나 있다.FIG. 12 illustrates a process of finally determining read clock skew (Sek_C_R) and write clock skew (Sek_C_W) in the frequency and clock skew determination block. The test SDRAM signal generation & write read data comparison block of FIG. The method of finding the write clock skew (Sek_C_W) and the read clock skew (Sek_C_R) in the frequency and clock skew decision block 84 is shown.

첫째로, 클럭 주파수 신호(Sek_C_M)에 의해서 1MHz에서 166MHz까지 바꾸고, 각각의 클럭 주파수 신호(Sek_C_M)에 맞게 쓰기 클럭 스큐(Sek_C_W) 신호를 0, 1, 2, … 변경한다. 그리고, 각각의 경우에 모두 읽기 클럭 스큐(Sek_C_R)를 바꾸어 간다. 최종적으로 모든 주파수에서 SDRAM 쓰기 읽기 테스트가 성공한 경우의 쓰기 클럭 스큐(Sek_C_W), 읽기 클럭 스큐(Sek_C_R) 신호값 중 중간값을 채택하여 Setup, Hold 마진이 최적인 곳을 결정하게 된다.First, the clock frequency signal Sek_C_M is changed from 1 MHz to 166 MHz, and the write clock skew Sek_C_W signal is changed to 0, 1, 2,... According to each clock frequency signal Sek_C_M. Change it. In each case, the read clock skew Sek_C_R is changed. Finally, the intermediate values of the write clock skew (Sek_C_W) and the read clock skew (Sek_C_R) signals when the SDRAM write read test is successful at all frequencies are used to determine the optimal setup and hold margins.

도 13은 본 발명에 따른 메모리 콘트롤러의 쓰기 타이밍 다이어그램이 도시된 도이다.13 is a diagram illustrating a write timing diagram of a memory controller according to the present invention.

종래 메모리 콘트롤러의 타이밍 다이어그램(도 2 참조)과 비교하여 다른 점은 클럭 생성 블록의 선택 가능한 출력 클럭 신호가 HCLK_W1, HCLK_W2, HCLK_W3, HCLK_W4의 4종류가 만들어지며, 이 중 DQ DATA를 샘플링할 수 있는 정확한 신호를 딜레이 셀을 이용하여 선택할 수 있게 하는 것이 가능하다는 점이다. 만약 더욱 정교하게 클럭 타이밍을 제어하고자 한다면, 출력 클럭 신호를 4개 이상으로 늘리는 것 또한 가능하며 각각의 클럭 간격을 자유롭게 조정할 수 있다. Compared to the timing diagram of the conventional memory controller (see FIG. 2), the difference is that four types of selectable output clock signals of the clock generation block are produced, HCLK_W1, HCLK_W2, HCLK_W3, and HCLK_W4, among which DQ DATA can be sampled. It is possible to select the correct signal using a delay cell. If you want to control clock timing more precisely, it is also possible to increase the output clock signal to four or more and freely adjust each clock interval.

도 14는 본 발명에 따른 메모리 콘트롤러의 읽기 타이밍 다이어그램이 도시된 도이다.14 is a diagram illustrating a read timing diagram of a memory controller according to the present invention.

종래 메모리 콘트롤러의 타이밍 다이어그램(도 2 참조)과 비교하여 다른 점은 클럭 생성 블록의 선택 가능한 출력 클럭 신호가 HCLK_1, HCLK_2, HCLK_3, HCLK_4의 4종류가 만들어지며, 이 중 DQ_D DATA를 샘플링할 수 있는 정확한 신호를 멀티플렉서를 이용하여 선택하게 하는 것이 가능하다는 점이다. 만약 더욱 정교하게 클럭 타이밍을 제어하고자 한다면, 출력 클럭 신호를 4개 이상으로 늘리는 것 또한 가능하며 각각의 클럭 간격을 자유롭게 조정할 수 있다.Compared with the timing diagram of the conventional memory controller (see FIG. 2), the difference is that four types of selectable output clock signals of the clock generation block are made, HCLK_1, HCLK_2, HCLK_3, and HCLK_4, among which DQ_D DATA can be sampled. It is possible to select the correct signal using a multiplexer. If you want to control clock timing more precisely, it is also possible to increase the output clock signal to four or more and freely adjust each clock interval.

이상과 같이 본 발명에 따른 메모리 콘트롤러를 예시한 도면을 참조로 하여 설명하였으나, 본 명세서에 개시된 실시예와 도면에 의해 본 발명이 한정되는 것은 아니며, 본 발명의 기술사상 범위내에서 당업자에 의해 다양한 변형이 이루어질 수 있음은 물론이다.As described above with reference to the drawings illustrating a memory controller according to the present invention, the present invention is not limited by the embodiments and drawings disclosed herein, it is various within the technical scope of the present invention by those skilled in the art Of course, modifications can be made.

도 1은 종래 기술에 따른 메모리 콘트롤러가 도시된 도,1 is a view showing a memory controller according to the prior art;

도 2는 도 1의 메모리 콘트롤러의 타이밍 다이어그램이 도시된 도,FIG. 2 is a timing diagram of the memory controller of FIG. 1;

도 3은 본 발명에 따른 메모리 콘트롤러가 도시된 도,3 is a view showing a memory controller according to the present invention;

도 4는 본 발명에 따른 메모리 콘트롤러의 모드 레지스터 블록에서의 모드에 대한 도,4 is a diagram of modes in a mode register block of a memory controller in accordance with the present invention;

도 5는 본 발명에 따른 메모리 콘트롤러의 주파수 & 클럭 스큐 생성 블록이도시된 도,5 illustrates a frequency & clock skew generation block of a memory controller according to the present invention;

도 6은 본 발명에 따른 메모리 콘트롤러의 클럭 주파수 생성 블록이 도시된 도,6 is a diagram illustrating a clock frequency generation block of a memory controller according to the present invention;

도 7은 본 발명에 따른 메모리 콘트롤러의 데이터 생성 블록이 도시된 도,7 is a diagram illustrating a data generation block of a memory controller according to the present invention;

도 8은 본 발명에 따른 메모리 콘트롤러의 읽기 클럭 신호 생성 블록이 도시된 도,8 is a block diagram illustrating a read clock signal generation block of the memory controller according to the present invention;

도 9는 본 발명에 따른 메모리 콘트롤러의 쓰기 클럭 신호 생성 블록이 도시된 도,9 is a block diagram illustrating a write clock signal generation block of the memory controller according to the present invention;

도 10은 본 발명에 따른 메모리 콘트롤러의 SDRAM 신호 선택 블록이 도시된 도,10 is a block diagram illustrating an SDRAM signal selection block of a memory controller according to the present invention;

도 11은 본 발명에 따른 메모리 콘트롤러의 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록이 도시된 도,11 is a block diagram illustrating a test SDRAM signal generation & write read data comparison block of a memory controller according to the present invention;

도 12는 주파수 및 클럭 스큐 결정 블록에서 읽기 클럭 스큐(Sek_C_R), 그리 고 쓰기 클럭 스큐(Sek_C_W)를 최종 결정하는 과정이 도시된 도,FIG. 12 illustrates a process of finally determining a read clock skew Sek_C_R and a write clock skew Sek_C_W in a frequency and clock skew determination block.

도 13은 본 발명에 따른 메모리 콘트롤러의 쓰기 타이밍 다이어그램이 도시된 도,13 is a diagram illustrating a write timing diagram of a memory controller according to the present invention;

도 14는 본 발명에 따른 메모리 콘트롤러의 읽기 타이밍 다이어그램이 도시된 도이다.14 is a diagram illustrating a read timing diagram of a memory controller according to the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

10 : 모드 레지스터 블록(Mode Register)10: Mode register block

20 : 주파수 & 클럭 스큐 생성 블록(Frequency & Clock Skew Declaration Block)20: Frequency & Clock Skew Declaration Block

30 : 클럭 주파수 생성 블록(Clock Frequency Generation Block)30: Clock Frequency Generation Block

40 : 데이터 생성 블록(Data Generation Block)40: Data Generation Block

50 : 읽기 클럭 신호 생성 블록(Read Clock Generation Block)50: Read Clock Generation Block

60 : 쓰기 클럭 신호 생성 블록(Write Clock Generation Block)60: Write Clock Generation Block

70 : SDRAM 신호 선택 블록(SDRAM Signal Selection Block)70: SDRAM Signal Selection Block

80 : 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록(Test SDRAM Signal Generation & WDATA, RDATA Comparison)80: Test SDRAM Signal Generation & Write Data Comparison Block (Test SDRAM Signal Generation & WDATA, RDATA Comparison)

Claims (9)

SDRAM 메모리 콘트롤러의 동작모드를 설정하는 모드 레지스터 블록;A mode register block for setting an operation mode of the SDRAM memory controller; 상기 모드 레지스터 블록의 설정에 따라 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 생성하는 주파수 & 클럭 스큐 생성 블록;A frequency & clock skew generation block for generating a clock frequency Sek_C_M, a read clock skew Sek_C_R, and a write clock skew Sek_C_W according to the setting of the mode register block; 클럭 신호(HCLK)와 상기 클럭 주파수(Sek_C_M)를 수신하여 제1 클럭 신호(HCLK_1), 제2 클럭 신호(HCLK_2)를 생성하는 클럭 주파수 생성 블록;A clock frequency generation block receiving a clock signal HCLK and the clock frequency Sek_C_M to generate a first clock signal HCLK_1 and a second clock signal HCLK_2; 상기 제1 클럭 신호(HCLK_1)와 읽기 클럭 스큐(Sek_C_R)를 수신하여 읽기 클럭 신호(HCLK_R)를 생성하는 읽기 클럭 신호 생성 블록;A read clock signal generation block configured to receive the first clock signal HCLK_1 and a read clock skew Sek_C_R to generate a read clock signal HCLK_R; 상기 제2 클럭 신호(HCLK_2)와 쓰기 클럭 스큐(Sek_C_W)를 수신하여 쓰기 클럭 신호(HCLK_W)를 생성하는 쓰기 클럭 신호 생성 블록;A write clock signal generation block configured to receive the second clock signal HCLK_2 and a write clock skew Sek_C_W to generate a write clock signal HCLK_W; 쓰기선택신호(WRITE)에 의해 쓰기 데이터를 생성하거나, 상기 읽기 클럭 신호(HCLK_R)를 수신하여 읽기 데이터를 생성하는 데이터 생성 블록;A data generation block generating write data by a write select signal WRITE, or generating read data by receiving the read clock signal HCLK_R; 상기 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 수신하여 쓰기 데이터, 테스트 SDRAM 신호, 그리고 비교 종료 신호(Compare Done)를 생성하는 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록; 및,Test SDRAM signal generation & write read data receiving the clock frequency Sek_C_M, read clock skew Sek_C_R, and write clock skew Sek_C_W to generate write data, a test SDRAM signal, and a compare end signal. Comparison block; And, SDRAM 신호, 테스트 SDRAM 신호, 그리고 비교 종료 신호를 수신하여 최종 SDRAM 신호를 선택하는 SDRAM 신호 선택 블록을 포함하며,An SDRAM signal selection block receiving the SDRAM signal, the test SDRAM signal, and the comparison end signal to select the final SDRAM signal, 상기 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록에서 생성된 비교 종료 신호(Compare Done)에 의해 주파수 & 클럭 스큐 생성 블록에서 생성되는 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 바꾸어가면서 SDRAM을 테스트하여 적합한 클럭을 찾아내는 것을 특징으로 하는 메모리 콘트롤러.The clock frequency Sek_C_M, the read clock skew Sek_C_R, and the write clock skew generated in the frequency & clock skew generation block are generated by the compare end signal generated in the test SDRAM signal generation & write read data comparison block. Sek_C_W) A memory controller that tests the SDRAM and finds a suitable clock by changing Sek_C_W). 청구항 1에 있어서,The method according to claim 1, 상기 모드 레지스터 블록에서 모드는 제1 내지 제4 모드(00, 01, 10, 11)로 분류되고, 상기 제1 모드는 위상 고정 루프 클럭 생성기(PLL)를 사용하며, 상기 제2 모드는 프리스케일러(prescaler) 클럭 분주기를 사용하고, 상기 제3 모드는 클럭 주파수를 외부 클럭주파수 그대로 사용하고 클럭 스큐만 자동조절하며, 상기 제4 모드는 사용자가 지정하는 클럭 주파수 및 클럭 스큐를 사용하는 것을 특징으로 하는 메모리 콘트롤러.In the mode register block, modes are classified into first to fourth modes (00, 01, 10, and 11), the first mode uses a phase locked loop clock generator (PLL), and the second mode is a prescaler ( prescaler) using a clock divider, the third mode uses the clock frequency as an external clock frequency and automatically adjusts the clock skew, and the fourth mode uses a clock frequency and a clock skew specified by the user. Memory controller. 청구항 1에 있어서,The method according to claim 1, 상기 주파수 & 클럭 스큐 생성 블록은,The frequency & clock skew generation block, 상기 비교 종료 신호에 의해 상기 클럭 주파수, 쓰기 클럭 스큐, 읽기 클럭 스큐를 순차적으로 바꾸는 선택 생성 블록(Selection Generation Block)과,A selection generation block for sequentially changing the clock frequency, write clock skew, and read clock skew by the comparison end signal; 상기 선택 생성 블록에서 출력된 신호, 최종 SDRAM 신호, 그리고 사용자가 지정하는 클럭 주파수 및 클럭 스큐를 수신하여 적합한 클럭 주파수, 읽기 클럭 스큐, 그리고 쓰기 클럭 스큐를 선택하는 멀티플랙서A multiplexer that receives the signal output from the selection generation block, the final SDRAM signal, and a clock frequency and clock skew specified by the user to select an appropriate clock frequency, read clock skew, and write clock skew. 를 포함하는 것을 특징으로 하는 메모리 콘트롤러.Memory controller comprising a. 청구항 1에 있어서,The method according to claim 1, 상기 클럭 주파수 생성 블록은,The clock frequency generation block, 클럭 주파수(Sek_C_M)와 클럭 신호(HCLK)를 수신하는 위상 고정 루프 클럭 생성기(PLL)와,A phase locked loop clock generator (PLL) for receiving the clock frequency Sek_C_M and the clock signal HCLK, 클럭 주파수(Sek_C_M)와 클럭 신호(HCLK)를 수신하는 프리스케일러(prescaler) 클럭 분주기와,A prescaler clock divider for receiving the clock frequency Sek_C_M and the clock signal HCLK, 상기 위상 고정 루프 클럭 생성기(PLL)와 프리스케일러(prescaler) 클럭 분주기에서 출력된 신호를 수신하여 클럭 주파수를 생성하는 멀티플랙서A multiplexer which receives a signal output from the phase locked loop clock generator (PLL) and a prescaler clock divider to generate a clock frequency. 를 포함하는 것을 특징으로 하는 메모리 콘트롤러.Memory controller comprising a. 청구항 1에 있어서,The method according to claim 1, 상기 데이터 생성 블록은,The data generation block, 쓰기선택신호(WRITE)에서 의해서 쓰기데이터(WDATA)를 생성하여 외부의 SDRAM 데이터 신호 DQ으로 전송하는 버퍼와,A buffer for generating write data WDATA by the write select signal WRITE and transmitting the write data WDATA to an external SDRAM data signal DQ; 읽기 클럭 신호(HCLK_R)와 상기 SDRAM 데이터 신호 DQ로부터 받은 신호(DQ_D)를 수신하여 읽기 데이터를 생성하는 플립플롭(F/F)Flip-flop (F / F) for receiving read clock signal HCLK_R and signal DQ_D received from SDRAM data signal DQ to generate read data 을 포함하는 것을 특징으로 하는 메모리 콘트롤러.Memory controller comprising a. 청구항 1에 있어서,The method according to claim 1, 상기 읽기 클럭 신호 생성 블록은,The read clock signal generation block, 딜레이된 클럭 스큐를 인위적으로 생성하는 딜레이 셀과,A delay cell that artificially generates a delayed clock skew, 읽기 클럭 스큐(Sek_C_R)와, 상기 딜레이 셀에 의해 딜레이된 제1 클럭 신호(HCLK_1)들을 수신한 후, 적합한 제1 클럭 신호를 선택하여 읽기 클럭 신호(HCLK_R)를 생성하는 멀티플랙서를 포함하는 것을 특징으로 하는 메모리 콘트롤러.And a multiplexer for receiving the read clock skew Sek_C_R and the first clock signal HCLK_1 delayed by the delay cell, and then selecting a suitable first clock signal to generate the read clock signal HCLK_R. A memory controller characterized by the above. 청구항 1에 있어서,The method according to claim 1, 상기 쓰기 클럭 신호 생성 블록은,The write clock signal generation block, 딜레이된 클럭 스큐를 인위적으로 생성하는 딜레이 셀과,A delay cell that artificially generates a delayed clock skew, 쓰기 클럭 스큐(Sek_C_W)와, 상기 딜레이 셀에 의해 딜레이된 제2 클럭 신호(HCLK_2)들을 수신한 후, 적합한 제2 클럭 신호를 선택하여 쓰기 클럭 신 호(HCLK_W)를 생성하는 멀티플랙서를 포함하는 것을 특징으로 하는 메모리 콘트롤러.And a multiplexer configured to generate a write clock signal HCLK_W by receiving a write clock skew Sek_C_W and second clock signals HCLK_2 delayed by the delay cell, and then selecting a suitable second clock signal. Memory controller, characterized in that. 청구항 1에 있어서,The method according to claim 1, 상기 테스트 SDRAM 신호 생성 & 쓰기 읽기 데이터 비교 블록은,The test SDRAM signal generation & write read data comparison block, 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 저장하는 테스트 결과 저장 메모리와,A test result storage memory for storing a clock frequency Sek_C_M, a read clock skew Sek_C_R, and a write clock skew Sek_C_W; 쓰기 데이터 및 테스트 SDRAM 신호를 SDRAM으로 전송하는 SDRAM 신호 생성 블록과,An SDRAM signal generation block for transferring write data and a test SDRAM signal to the SDRAM; 읽기 데이터와 상기 쓰기 데이터를 비교하여 비교 종료 신호(Compare Done)를 상기 SDRAM 신호 생성 블록과 상기 주파수 & 클럭 스큐 생성 블록으로 전송하는 쓰기 읽기 데이터 비교 블록 및,A write read data comparison block for comparing a read data with the write data and transmitting a compare end signal to the SDRAM signal generation block and the frequency & clock skew generation block; 최종적으로 적합한 클럭 주파수(Sek_C_M), 읽기 클럭 스큐(Sek_C_R), 그리고 쓰기 클럭 스큐(Sek_C_W)를 결정하는 주파수 및 클럭 스큐 결정 블록을 포함하는 것을 특징으로 하는 메모리 콘트롤러.And a frequency and clock skew determination block for finally determining a suitable clock frequency (Sek_C_M), read clock skew (Sek_C_R), and write clock skew (Sek_C_W). 청구항 8에 있어서,The method according to claim 8, 상기 SDRAM 신호 생성 블록(82)에서 생성되는 쓰기 데이터는 랜덤(Random) 데이터 생성부를 이용하여 같은 값이 반복되지 않도록 하는 것을 특징으로 하는 메모리 콘트롤러.And write data generated by the SDRAM signal generation block (82) so that the same value is not repeated using a random data generation unit.
KR1020080033598A 2008-04-11 2008-04-11 Memory controller KR100920179B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080033598A KR100920179B1 (en) 2008-04-11 2008-04-11 Memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080033598A KR100920179B1 (en) 2008-04-11 2008-04-11 Memory controller

Publications (1)

Publication Number Publication Date
KR100920179B1 true KR100920179B1 (en) 2009-10-06

Family

ID=41572017

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080033598A KR100920179B1 (en) 2008-04-11 2008-04-11 Memory controller

Country Status (1)

Country Link
KR (1) KR100920179B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107622785A (en) * 2016-07-15 2018-01-23 展讯通信(上海)有限公司 Measure the method and system of in-line memory data read time

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6131149A (en) * 1997-06-04 2000-10-10 Oak Technology, Inc. Apparatus and method for reading data from synchronous memory with skewed clock pulses
JP2001306391A (en) * 2000-04-26 2001-11-02 Nec Microsystems Ltd Memory control circuit
KR20050075226A (en) * 2004-01-16 2005-07-20 삼성전자주식회사 Apparatus of controlling memory
KR20090041461A (en) * 2007-10-24 2009-04-29 삼성전자주식회사 Semiconductor memory device having input circuit for improving high speed operation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6131149A (en) * 1997-06-04 2000-10-10 Oak Technology, Inc. Apparatus and method for reading data from synchronous memory with skewed clock pulses
JP2001306391A (en) * 2000-04-26 2001-11-02 Nec Microsystems Ltd Memory control circuit
KR20050075226A (en) * 2004-01-16 2005-07-20 삼성전자주식회사 Apparatus of controlling memory
KR20090041461A (en) * 2007-10-24 2009-04-29 삼성전자주식회사 Semiconductor memory device having input circuit for improving high speed operation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107622785A (en) * 2016-07-15 2018-01-23 展讯通信(上海)有限公司 Measure the method and system of in-line memory data read time
CN107622785B (en) * 2016-07-15 2020-04-14 展讯通信(上海)有限公司 Method and system for measuring data reading time of embedded memory

Similar Documents

Publication Publication Date Title
US9000817B2 (en) Apparatuses and methods for altering a forward path delay of a signal path
US9001594B2 (en) Apparatuses and methods for adjusting a path delay of a command path
US7672191B2 (en) Data output control circuit
US7259595B2 (en) Circuit and method for detecting frequency of clock signal and latency signal generation circuit of semiconductor memory device with the circuit
US9601170B1 (en) Apparatuses and methods for adjusting a delay of a command signal path
KR100873624B1 (en) Power down mode control apparatus and dll circuit with the same
US7644324B2 (en) Semiconductor memory tester
KR100988809B1 (en) Semiconductor memory device and output enable signal generating method
KR100930401B1 (en) Semiconductor memory device
KR101897050B1 (en) Semiconductor Apparatus
KR101194380B1 (en) Delay control circuit and semiconductor memory device including the same
KR20140080382A (en) Semiconductor memory device and semiconductor memory system for conducting a parameter test
US8144530B2 (en) Semiconductor memory device and method for generating output enable signal
US11348633B2 (en) Selectively controlling clock transmission to a data (DQ) system
KR102016532B1 (en) Semiconductor device and method of driving the same
KR20110080406A (en) Delay-locked-loop circuit, semiconductor device and memory system having the delay-locked-loop circuit
US9419628B2 (en) Measurement initialization circuitry
KR101062856B1 (en) Skew Detection Circuit and Semiconductor Memory Device Using the Same
US8754656B2 (en) High speed test circuit and method
KR101180405B1 (en) Semiconductor Memory Apparatus And Test Method thereof
US8395946B2 (en) Data access apparatus and associated method for accessing data using internally generated clocks
US9653186B2 (en) Memory-testing device and memory-testing method
KR100920179B1 (en) Memory controller
KR20120119441A (en) Latency control circuit, semiconductor memory device including the same and latency control method
CN110364220B (en) Circuit system and chip for measuring data reading time of embedded memory

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130527

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140612

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150626

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee