이 설계 예는 간단한 사용자 정의 트랜잭션을 구현하는 플랫폼으로 RapidIO에서 Avalon 스트리밍(Avalon-ST) 패스스루 인터페이스를 사용하는 것을 보여줍니다. 이 인터페이스를 사용하면 논리 레이어의 다른 일반 모듈 기능과는 별개로 패킷 형식을 작성하고 구성하는 측면에서 유연성이 향상됩니다.
이 설계 예제를 단순화하기 위해 I/O 마스터 및 슬레이브와 같은 다른 논리 레이어 모듈은 비활성화됩니다. 이 디자인은 GUI에서 Avalon-ST 패스스루 인터페이스가 활성화된 2.5Gbaud 1x 직렬 RapidIO 링크를 보여줍니다.
설계 아키텍처 개요는 아래 그림에 표시됩니다.
프로세스 흐름
- 포트 초기화(RapidIO 링크 업)
- 빠른IO 초기화
- 쓰기 패킷 보내기(NWrite 트랜잭션과 유사)
- 시스템 컨트롤러 A가 패킷 생성기를 명령하여 래피드IO A로 패킷을 전송합니다.
- 패킷은 RapidIO B 링크를 통해 전송되고 시스템 컨트롤러 B에 의해 RAM에 저장됩니다.
- 쓰기 패킷은 페이로드 크기 및 패킷 수에 맞게 조정할 수 있습니다.
- 초인종 메시지 보내기
- 시스템 컨트롤러 A가 패킷 생성기를 명령하여 RapidIO A에 초인종 메시지를 보냅니다.
- 초인종 메시지는 RapidIO B로 연결되는 링크를 통해 전송됩니다. 시스템 컨트롤러 B의 초인종 프로세서에서 수신 및 처리됩니다.
- 초인종 메시지에는 초인종 프로세서에서 해석하는 지침이 전달됩니다. 패킷 반전 및 데이터 검색이라는 두 가지 예시 지침이 있습니다.
- 인버트 패킷의 경우, 초인종 프로세서는 RAM에서 데이터를 읽고, 이를 반전시키고, RAM에 다시 저장합니다(주소가 다를 수 있음)
- 데이터 검색을 위해 초인종 프로세서는 RAM에서 데이터를 읽고 RapidIO A로 다시 보냅니다.
- 이 두 가지 지침은 RapidIO A가 RapidIO B가 실행할 작업 항목을 시작할 수 있음을 보여줍니다. 이를 사용하여 자신의 구현에 대한 특정 명령 패킷을 만들 수 있습니다.
이 낮은 수준의 설계 구현은 다음 사용자 지정을 수행하는 예시로도 사용할 수 있습니다.
- 패킷 매개변수 또는 형식(예: 주소-페이로드-주소 페이로드) 또는 데이터 스트리밍 추가 또는 변경
- 전송 레이어의 라운드 로빈 기반이 아닌 한 포트에서 다양한 기능 전송 시퀀스를 처리합니다.
- RapidIO MegaCore 함수에 일반적으로 포함되지 않는 사용자 지정 기능을 지원합니다.
그러나 위에 명시된 사용자 지정을 처리하려면 패킷 헤더의 물리적 및 전송 레이어 필드를 수동으로 채워야 합니다. 이 Avalon-ST 패스스루 인터페이스의 원활한 작동을 위해 패킷 형식 디코딩 및 패킷 트래픽 제어와 같은 다른 단계도 필요합니다.
이 디자인 예시에 사용된 .zip 파일을 다운로드하십시오: avST_passthr_interface.zip
참고: 이 설계 예는 시뮬레이션에서 테스트되었습니다.