AXI의 write Address와 writeData를 클럭에 맞춰서 정확한 타이밍에 주는게 어려웠던 것 같습니다. 정확한 타이밍을 주기위해서 현재상태를 나타내는 구간, 현재상태에서 값을 주는 구간을 나누어서 만들었습니다. 이 과정에서 Master와 slave를 Axi_Master, Axi_Slaver다른 모듈로 만들었는데 이 두 다른 모듈의 서로의 타이밍을 정확하게 맞추는것이 어려웠습니다.
RTL합성을 완료한후 FPGA검증을 위해 Synthsis를 해보았을때 multiple drive가 나와 RTL합성에서 AW_curstate 부분의 값들의 신호들이 다른 AR부분에 들어가있는것을 보아 수정하였습니다.
이 AXI설계를 통해 시뮬레이션을 꼼꼼하게 정확한 타이밍에 내가 원하는 결과가 도출되게 검증하고, 합성을 할때 critical warnning의 multiple drive을 없애는 것을 배웠습니다.
데이터 시트를 참고하여 AXI를 구성해보았습니다.


AXI WRITE의 시뮬레이션입니다.


Write한값이 동일한주소에 Read Data로 나온것으로보아 성공적으로 만들었다고 알수있습니다.
아래영상은 FPGA보드를 통한 검증을 진행하였습니다.
다음내용은 다음에.
'나의 전자 공부방 > SOC' 카테고리의 다른 글
| 1. [SOC] AXI 4 LITE를 설계해보기 (0) | 2023.07.18 |
|---|