알테라의 DDR2 컨트롤러 연구 노트

거의 자신의 컨트롤러 코드를 작성하지 알테라 DDR2 컨트롤러 IP 방식을 얻을 수 있습니다.

  ddr22 ddr22_inst 
    ( 
      .aux_full_rate_clk (mem_aux_full_rate_clk) 
      .aux_half_rate_clk (mem_aux_half_rate_clk) 
      .global_reset_n (global_reset_n) 
      .local_address (mem_local_addr) 
      .local_be (mem_local_be) 
      .local_burstbegin (local_burstbegin_sig) 
      .local_init_done () 
      .local_rdata (mem_local_rdata) 
      .local_rdata_valid (mem_local_rdata_valid) 
      .local_read_req (mem_local_read_req) 
      .local_ready (mem_local_ready) 
      .local_refresh_ack () 
      .local_size (mem_local_size) 
      .local_wdata (mem_local_wdata)  
      .local_write_req (mem_local_write_req)
      .mem_addr (mem_addr [12 : 0]), 
      Kmem_ba (Mem_ba) 
      Kmem_cs_n (Mem_cs_n) 
      Kmem_chke (Mem_chke) 
      Kmem_chlk (Mem_chlk) 
      Kmem_chlk_n (Mem_chlk_n) 
      Kmem_chs_n (Chs_n) 
      Kmem_dim ( Mem_dim [1 : 0]), 
      Kmem_dk (Mem_dk) 
      Kmem_dks (Mem_dks [1 : 0]), 
      Kmem_odt (Mem_odt) 
      Kmem_rs_n (Mem_rs_n) 
      Kmem_ve_n (Mem_ve_n) 
      Kfy_chlk (Fy_chlk) 
      . Pll_ref_chlk (Clok_sors) 
      Kriset_fy_chlk_n (Riset_fy_chlk_n) 
      Kriset_rikvest_n () 
      Ksoft_riset_n (Tai_hai) 
    );

  신호 MEM 더미의 시작에서, DDR2 칩에 PCB를 연결하는 상부 핀으로 직접 유도된다.

더미의 처음에 국부 신호는 상기 유저 인터페이스 신호 DDR2 컨트롤러를 유도하고, 사용자는 인터페이스 수 로컬 작업 데이터를 기록하거나 메모리의 DDR2 DDR2에서 데이터를 판독하는 것이다.

로컬 신호는 다음의 그룹으로 분류 될 수있다 :


 

제어 그룹

local_init_done : DDR2 제어기 초기화 완료 플래그 신호는, 상기 제어부는 DDR2 초기화 및 DDR2 칩 타이밍 보정 DDR 인터페이스를 포함한 초기화 일련 거쳐야 전기적이며, 전체 공정 시간이 오래 걸린다. 상기 신호 후 로컬 인터페이스에서 읽기 및 쓰기 동작을 수행하기 위해, 인출한다.

local_refresh_ack : 일반 사용자가 읽고 쓸 때, 리프레시 동작 후의 DDR2 컨트롤러 칩 DDR2 응답 신호는,이 신호는 상관하지 않는다.


 

사용자 인터페이스를 작성

local_address : 사용자가 DDR2 메모리의 어드레스에 데이터를 기록하고자는 어드레스 DDR2 칩 선택, 로우 어드레스의 조합, 뱅크 어드레스, 칼럼 어드레스, {CS, ROW, BA이다 COL}.
local_be : 바이트 기록 시간을 사용, 예를 들어, DDR2의 하드웨어 인터페이스 (16)는, 사용자 인터페이스는, 각 비트가 바이트에 대응하고, 비트 폭은 4 local_be이며, 32 비트 데이터는 4 바이트이다 아니나 바이트의 데이터를 기록 할 수있는 UE (32) 시간을 기록 할 경우, 대응하는 비트는 0이 될 수로 설정된다.

local_size : 길이 사용자 인터페이스는, 사용자는 각각의 기록 요청은 복수 개의 데이터에 기입 개시 지정 버스트. 도 13에 나타낸 바와 같이, 최대 길이는 DDR IP 구성 인터페이스에 배치 될 수있다. DDR2 칩 최대 버스트 크기를 지원하기 위해이 값이 제어기의 최대 버스트 길이 설정 값에 유의, 동일하지 않은 경우, DDR2 칩은도 8의 최대 길이를 지원한다.
local_burstbegin : 사용자 인터페이스 버스트 개시 신호는 하이 펄스는 각각의 전송 local_size 지정된 길이의 길이 버스트 전송이 시작될 때마다 신호
유효한 데이터가 성공적 현재임을 나타낸다 DDR 컨트롤러 준비 플래그 신호 : local_ready을 DDR2 제어기 쓰기 0 DDR 컨트롤러는 현재 동작을 접수하지 나타내고, 사용자가 준비 신호 높은 다시 변경되지 않은 현재의 어드레스, 데이터 및 제어 신호를 유지하기 위해 필요
local_wdata : 사용자 데이터 DDR로 작성해야 비트 폭은 데이터 라인 DDR 칩 배의 비트 폭
local_write_req :: 포트 local_wdata의 DDR 컨트롤러에 데이터 기록 데이터를 요청 신호 물품 (특히 상태 local_ready 표시하는 성공을 작성)


local_address는 : 사용자가 DDR2 메모리 어드레스로부터 데이터를 판독하고자하는 어드레스가 DDR2 칩 선택, 로우 어드레스의 조합, 뱅크 어드레스, 칼럼 어드레스이고, {CS, ROW, BA, COL}.
local_be : 판독 된 바이트 수, 예를 들어, DDR2의 하드웨어 인터페이스 (16)는, 사용자 인터페이스는, 각 비트가 바이트에 대응하고, 비트 폭은 4 local_be이며, 32 비트 데이터는 4 바이트이다 아니나 바이트의 32 비트 판독 데이터를 판독 할 수있는 UE가 대응하는 비트가 0으로 설정되어있는 경우 일 수있다.
local_burstbegin : 사용자 인터페이스 버스트 개시 신호는 하이 펄스는, 각 송신 local_size 지정된 길이의 길이 버스트 전송이 시작될 때마다 신호
local_rdata을 :
local_rdata_valid
local_read_req
local_size

 

추천

출처www.cnblogs.com/xiaomeige/p/11516610.html