DMA DMA 1 CPUIF 2 DATA PATH 3

  • Slides: 15
Download presentation

DMA의 구조 DMA 1. CPUIF 2. DATA PATH 3. CONTROL UNIT *빨갛게 칠해진 부분이

DMA의 구조 DMA 1. CPUIF 2. DATA PATH 3. CONTROL UNIT *빨갛게 칠해진 부분이 이번 시험의 문제가 들어가는 곳 DATA PATH CPUIF CONTROL UNIT 외부 레지스터

역할의 분담 Addr_bus Data Path 2 0 Addr_MUX 2 0 김준수 : Des_2 D블록과

역할의 분담 Addr_bus Data Path 2 0 Addr_MUX 2 0 김준수 : Des_2 D블록과 Xcnt sr_addr 설계, OV시 inc타이밍 수정 김기중 : 새로운 des_addr추가, 시뮬레이션 디버깅(addr_bus의 충돌과 전체적인 클럭의 어긋남을 수정) 2 0 sr_addr_H sr_addr_L des_addr_H des_addr_L target_cnt_H target_cnt_L status command 1 0 1 0 des_addr Y_state 1 0 OV 2 0 1024 + Des_2 D OV Xcnt inc

State diagram Command(0)=0 BA=0 Command(0)=1 S 0 State diagram은 동일하며, S 3에서 계산된 Des_2

State diagram Command(0)=0 BA=0 Command(0)=1 S 0 State diagram은 동일하며, S 3에서 계산된 Des_2 D 의 값이 des_addr으로 넘어가게되며, S 5에서 이전 과 똑같이 des_addr의 값이 Addr_MUX에 의해 선 택되어 Addr_bus로 나가게 된다. S 1 Equal=1 S 2 BA=1 S 3 S 4 Equal=0 S 8 S 7 S 5 S 6 S 0 S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8 : : : : : IDLE dma_set 1 dma_set 2 read 1 read 2 write 1 write 2 count comparator

State diagram S 0 (IDLE) - cs 0신호가 active되면 state 가 S 0로 시작됨.

State diagram S 0 (IDLE) - cs 0신호가 active되면 state 가 S 0로 시작됨. - rom에 저장된 명령들에 의해 cpu_rd 0신호에 따라 dma 내부의 8 bit 레지스터 8개(sr_addr_H, sr_addr_L, des_addr_H, des_addr_L, target_cnt_H, target_cnt_L, status, command)에 필요한 값이 저장됨. - command(0) 값이 ‘ 1’이 되면 state가 S 1으로 넘어감.

State diagram S 1 (dma_set 1) S 2 (dma_set 2) - sr_addr에 source address값이

State diagram S 1 (dma_set 1) S 2 (dma_set 2) - sr_addr에 source address값이 load 됨. dma_counter 를 reset. BR를 active 시킴. 다음 클럭에 state가 S 2로 넘어감 BA가 active 될때가지 S 2 state를 유지. BA가 active 되면 state가 S 3로 넘어감.

State diagram S 7 (count) - sr_addr값, des_addr값, dma_counter값을 1증가시킴. - 다음 클럭에 S

State diagram S 7 (count) - sr_addr값, des_addr값, dma_counter값을 1증가시킴. - 다음 클럭에 S 8 state로 넘어감 S 8 (comparator) - dma_counter값과 (target_cnt_H & target_cnt_L)값을 비교하여 같으면 S 0 state로, 다르면 S 3 state로 넘어감.