CAN에 대해 어느정도 공부를 했으니 다시 프로젝트를 진행해보자
CAN IP를 불러오기 위해 Block Diagram을 생성하자


+를 눌러서 IP 추가 후, CAN을 입력하여 CAN의 진보된 형태인 CANFD를 선택하자

다음과 같이 CANFD Block을 볼 수 있다.
해당 IP에 대해 좀더 알아보자

Block Properties에서 IP탭을 선택하면 정보를 볼 수 있다.
3.0 Ver이며, interface는 Axi를 사용한다.
IP 문서를 살펴보자

다음과 같은 구조로 CAN IP가 이루어져 있다.
BUS의 경우, 일반적인 AXI4가 아닌 AXI4 Lite를 사용하는 듯하다

그러나 내가 불러온 IP의 경우, apb interface로 이루어져 있었다.

Module을 더블 클릭해서 확인해보니 AXI와 APB 중 선택이 가능했다.
구조가 좀더 간단한 APB를 이용해보자

클럭을 확인해 보니 CAN의 경우, 8 ~ 80MHz를 사용해야하며, BUS의 경우, 8 ~ 200MHz를 이용하면 될 듯하다

내가 쓰려고하는 IP의 Clk는 200 Mhz인듯하다
좀더 Gaisler IP를 살펴보니 CAN을 지원하는것 같다



CAN과 연결된 BUS는 AHB인듯하다.
지금 가장 큰 고민은 다음과 같다.
1. 어떻게 topology를 구성해야 할까?
2. 어떤 CAN을 사용해야할까?(사실 Gaisler IP에 있는 CAN은 뭘써야 할지 잘 모르겠다... Vivado IP의 CAN도 사실 어떻게 HDL 코드로 봐야할지....)
3. 어떻데 Test를 할 것인가...