개발/Protocol

AMBA3 APB protocol 2

개발과 공부 사이 2022. 2. 3. 23:09

 

PSLVERR 신호는 옵션이다. 반드시 있을 필요는 없다.

 

PSLVERR는 APB 트랜잭션에서 마지막 사이클에서만 값이 유효하다고 간주한다.

(PSEL / PENABLE / PREADY 모두 1으로 유지되고 있을 때)

그 이전의 사이클에서는 아무 값을 가져도 의미가 없다.

 

 

트랜잭션에서 에러가 발생해도 slave에서는 상태가 바뀔수도 있고 안바뀔수도 있다. 이는 설계하기 나름이다.

쓰기 트랜잭션에서 에러가 발생해도 slave의 레지스터가 업데이트 되지 않았다고는 보장할수 없다.

읽기에서 에러가 발생한다면 slave에서 PRDATA 신호를 0으로 set할 필요는 없다.

 

 

 

쓰기 트랜잭션에서 마지막 사이클에서 PSLVERR가 set 되었다.

 

 

 

마찬가지 읽기 트랜잭션에서 마지막 사이클에서 PSLVERR가 set 되었다.

 

 

 

 

 

 

 

APB 의 state diagram이다.

APB bridge 설계할 때 기본이 된다.

IDLE 상태는 APB의 default 상태이다.

 

SETUP 은 setup phase 상태이다. PSEL 신호를 1으로 하여 slave를 선택한다. 

 

ACCESS 는 access phase 상태이다. 이 때 PENABLE 신호를 1으로 set 한다.

PREADY 신호에 의해서 이 상태를 유지하거나 다른 상태로 넘어갈 수 있다.

 

PREADY 가 1이 되면 다음 상태로 넘어가면서 트랜잭션이 완료된다.

같은 슬레이브에 연속적으로 트랜잭션을 만들 경우엔 SETUP으로 돌아가고

한번의 트랜잭션으로 끝이 난다면 IDLE 상태로 돌아간다.