본문 바로가기
인터페이스/AMBA 인터페이스

[SoC] AMBA APB 인터페이스란? (Waveform)

by RTLog 2024. 3. 28.
728x90
반응형

안녕하세요. RTLog입니다. 

 

지난 포스트에는 APB 인터페이스의 History와 Signal들에 대해 알아보았는데요. 오늘은 Waveform에 대해 공부하려고 합니다. 아래 문서의 내용입니다. 

 

https://developer.arm.com/documentation/ihi0024/latest/

 

Documentation – Arm Developer

 

developer.arm.com

APB(Advanced Peripheral Bus)

Write Transfer

Write Transfer Waveform and State Diagram

  • with no wait states

APB 인터페이스는 IDLE 상태에서, Read 동작이 요구되면 SETUP 상태(T1 시점)으로 천이하고 PSELx 신호를 HIGH로 발생시킵니다. 이 때, PWDATA, PADDR, PWRITE(Write: 1) 신호는 Valid한 신호여야 합니다. 다음 클럭인 T2에서 ACCESS 상태로 천이합니다. Master의 PENABLE 신호와 Slave의 PREADY 신호 사이의 Handshaking이 발생하여 데이터 Transfer가 발생합니다. 교환이 끝나는 다음 클럭(T3)부터는 동일 Slave에 대한 데이터 전송이 없다면 각 신호는 LOW로 변경됩니다.

 

Transfer를 위해 최소 2 Clock이 소모되는 것을 확인할 수 있습니다.

  • with wait states

APB3부터 Wait 기능이 생겼습니다. Master에서 데이터를 전송하려고 할 때, Slave 측에서 준비가 안되면 대기하는 동작입니다. 마찬가지로, IDLE 상태에서 데이터 송신이 필요한 경우 SETUP 상태로 천이합니다. Wait 상태가 없다면 다음 클럭에서 바로 Handshaking이 발생하겠지만, Slave에서 PREADY 신호를 발생시키지 않아 Master 측에서는 신호를 변경시키지 않고 대기합니다. 이후 PREADY 신호가 발생하면 HandShaking을 통해 데이터를 Write합니다.  

  

Read Transfer 

Read Transfer Waveform and State Diagram

  • with no wait states

IDLE 상태에서 Read 동작이 요구되면 SETUP 상태(T1 시점)으로 천이하고 PSELx 신호를 HIGH로 발생시킵니다. 이 때, PWDATA, PADDR, PWRITE(Read: 0) 신호는 Valid한 신호여야 합니다. 다음 클럭인 T2에서 ACCESS 상태로 천이합니다. Master의 PENABLE 신호와 Slave의 PREADY 신호 사이의 Handshaking이 발생하여 데이터 Transfer가 발생하며, 교환이 끝나는 다음 클럭(T3)부터는 동일 Slave에 대한 데이터 전송이 없다면 각 신호는 LOW로 변경됩니다. Write 동작과 동일합니다.  

  • with wait states

마찬가지로, IDLE 상태에서 데이터 Read가 필요한 경우 SETUP 상태로 천이합니다. Wait 상태가 없다면 다음 클럭에서 바로 Handshaking이 발생하겠지만, Slave에서 PREADY 신호를 발생시키지 않아 신호를 변경시키지 않고 대기합니다. 이후 PREADY 신호가 발생하면 HandShaking을 통해 데이터를 Read합니다. 

 

 

다음 포스트부터는 Verilog Code를 작성해보도록 하겠습니다.

감사합니다. 

728x90
반응형