VA IP 코어의 인터페이스 수와 유형을 정의합니다( ‘IP 코어 속성 정의’ 항목에 설명된 대로 ).
그러나 모든 플랫폼에서 공통으로 사용되는 두 가지 인터페이스가 있습니다. 바로 시계 인터페이스와 레지스터 슬레이브 인터페이스입니다. 이 두 가지에 대해서는 실제로 하드웨어 설명 파일을 작성하기 전에 여기서 먼저 설명하겠습니다.
하드웨어에서는 IP 코어에 두 개의 클럭 입력, 즉 iDesignClk와 iDesignClk2x를 제공해야 합니다. 이러한 클럭 신호는 일반적으로 (사용자가 제어하는) FPGA의 디지털 클럭 매니저를 사용하여 꽤 쉽게 생성할 수 있습니다.

이 시계들은 다음 요건을 충족해야 합니다:
-
위상 동기화
-
주파수 비율이 2이며, 이때 iDesignClk2x가 더 빠른 클럭입니다.
클럭 입력이 설계 속도에 미치는 영향:VisualApplets 설계의 모든 연산자는 iDesignClk의 상승 에지에 맞춰 동기식으로 동작합니다.
에서 IP 코어 정의 과정에서 eVA Designer, IP 코어에 대한
허용 주파수 범위 제약 조건을 설정하게 됩니다(즉,
iDesignClk) (~절에 설명된 바와 같이 'FPGA 세부 정보 입력', 3단계). 이 정보는 VisualApplets 로 제공됩니다.
VisualApplets 를 사용하여 설계하는 동안, VisualApplets 사용자는 목표 주파수를 선택합니다 (for
iDesignClk) 허용 범위 내에 있어야 합니다. 이 정보는
합성 및 구현에 사용됩니다. VisualApplets 설계의 합성이 완료된 후, 목표
주파수는 *.hap 파일(이 파일에는 합성된
FPGA 비트스트림도 포함되어 있습니다). 런타임 시스템에는 대상 설계
주파수를 *.hap 파일.
VA IP 코어의 레지스터 슬레이브 인터페이스는 설계 클럭과 동기화된 주소, 데이터 및 제어 신호에 의해 제어되는 간단한 레지스터 인터페이스입니다.

동적 설계 매개변수(즉, 이미지 애플리케이션 내 연산자 인스턴스의 동적 매개변수)는 레지스터 슬레이브 인터페이스를 통해 전달됩니다. 이 인터페이스는 읽기 및 쓰기 작업을 지원합니다.
레지스터 인터페이스에는 다음과 같은 속성이 있습니다:
-
I/O는 iDesignClk 클럭과 동기화됩니다.
-
Reset 및 Enable 신호는 레지스터 값에 아무런 영향을 미치지 않습니다.
-
데이터 폭은 32비트입니다.
-
이 인터페이스의 주소 폭은 16비트입니다.
-
쓰기와 읽기가 동시에 이루어질 수 있습니다.
-
레지스터 인터페이스를 통해 액세스되는 레지스터의 폭은 1에서 64 사이의 임의의 값일 수 있습니다. 슬레이브 인터페이스의 데이터 폭과 ‘ VisualApplets ’ 매개변수의 실제 레지스터 폭 간의 매핑은 자동으로 수행됩니다. 매개변수 레지스터의 폭이 레지스터 인터페이스의 폭보다 클 경우, 런타임 소프트웨어는 액세스를 자동으로 분할합니다. 이 경우 단일 매개변수가 하나 이상의 레지스터 주소를 차지하게 됩니다.
위의 그림은 레지스터 인터페이스와 관련된 포트를 보여줍니다.
쓰기: 쓰기 통신 프로토콜은 쓰기 주소 ivRegWrAddr, 쓰기 데이터 ivRegWrData 및 쓰기 스트로브 iRegWrValid를 기반으로 합니다. 하이 액티브 신호 iRegWrValid가 어서션되면 주소 ivRegWrAddr을 가진 VisualApplets 레지스터에 대한 단일 쓰기 액세스가 시작됩니다. 쓰기 액세스는 후속 클럭 틱에서 수행될 수 있으므로 암시적 버스트가 허용됩니다.
읽기: 읽기 통신 프로토콜은 읽기 주소 ivRegRdAddr, 읽기 스트로브 iRegRdValid 및 읽기 데이터 유효 신호 oRegRdDataValid 를 기반으로 하며, 데이터는 포트 ovRegRdData를 통해 출력됩니다. 고활성 신호 iRegRdValid가 어설션되면 주소 ivRegRdAddr을 가진 레지스터 VisualApplets 에서 단일 읽기 액세스가 시작됩니다. 반환되는 출력 값의 지연 시간은 eVA IP 코어 및 VisualApplets 설계의 구성에 따라 달라질 수 있습니다.
하드웨어 플랫폼에서 VA IP 코어의 ‘ VisualApplets ’ 설계를 실행할 때, 매개변수는 ‘ VisualApplets ’ 런타임 소프트웨어 인터페이스를 통해 액세스할 수 있습니다.
VisualApplets는 런타임 시 디자인 파라미터에 액세스하기 위한 다양한 모델을 지원합니다.
-
HAP 파일을 기반으로 한 eVA 런타임 환경 사용 이 방식은 Basler의 프레임 그래버 런타임 인터페이스와 매우 유사합니다. HAP 파일에는 설계별 파라미터에 쉽게 접근하는 데 필요한 모든 정보가 포함되어 있습니다. HAP 파일을 불러오고, FPGA 구성 데이터를 추출하며, 설계 파라미터에 대한 접근을 제공하는 런타임 소프트웨어 API가 제공됩니다.
-
생성된 GenICam XML 코드를 기반으로 한 GenICam API 사용 대상 플랫폼이 GenICam 호환 인터페이스를 통해 소프트웨어에 연결된 경우, 이 옵션을 사용하면 이미지 처리 매개변수를 GenICam API에 원활하게 통합할 수 있습니다. 추가적인 소프트웨어 구성 요소는 필요하지 않습니다.
-
다음에 의해 생성된 범용적이고 설계 특정적인 C API 코드를 사용하여 VisualApplets 생성된 코드는 플랫폼에 독립적인 ANSI-C 코드입니다. VA IP 코어 레지스터 슬레이브를 통해 레지스터에 대한 쓰기 및 읽기 액세스를 위한 콜백 함수는 시작 시 등록됩니다. 이후 코드는 이름으로 지정된 매개변수에 대한 액세스를 제공하며, 변환 함수가 콜백 함수를 통해 통신을 트리거합니다. 이 접근 방식은 임베디드 시스템(예: Zynq7000)에서의 소프트웨어 통합에 매우 적합합니다.
![]() |
런타임 인터페이스 파일의 자동 생성 |
|---|---|
|
특정 설계에 대한 런타임 인터페이스 파일은 VisualApplets 에 의해 (세 가지 액세스 모델 모두에 대해) 자동으로 생성됩니다. 런타임 소프트웨어 인터페이스에 대한 옵션은 ‘런타임 소프트웨어 인터페이스’에 자세히 설명되어 있습니다 . |
VA IP 코어는 리셋 및 이네이블 신호를 제어하기 위해 전용 포트를 사용하는 대신 레지스터 슬레이브 인터페이스를 사용합니다. 이를 통해 리셋 및 이네이블은 런타임 소프트웨어를 통해 사용자가 제어할 수 있으며, 사전에 알려지지 않은 수의 프로세스를 개별적으로 제어할 수 있습니다.
리셋(Reset ) 및 이네이블(Enable) 신호는 VA IP 코어 설계와 다음과 같이 상호 작용합니다:
-
각 프로세스에는 1비트 레지스터로 설정되는 고유한 리셋 및 활성화 신호(High 활성)가 있습니다.
-
리셋이 발생하면 전체 프로세스가 초기화 상태로 돌아갑니다.
-
Enable 어설션이 처리 과정을 시작합니다.
-
Enable을 비활성화하면 처리가 중지됩니다. Enable=0일 때, 입력 FIFO는 읽히지 않습니다. 출력 FIFO의 경우, 이미지 처리 파이프라인의 상태에 따라 Enable이 해제된 후에도 일부 데이터가 여기에 기록될 수 있지만, 흐름 제어 기능 덕분에 FIFO의 내용이 손상되는 일은 없습니다.
-
리셋은 Enable이 0일 때만 활성화될 수 있습니다.
-
재설정하면 모든 FIFO가 비워집니다.
-
Enable은 FIFO 인터페이스를 갖춘 모든 하드웨어 특정 연산자에 영향을 미칩니다.
-
'Reset' 및 'Enable'은 연산자의 매개변수에 아무런 영향을 미치지 않습니다.
-
'재설정' 및 '활성화'는 GPIO 포트에 아무런 영향을 미치지 않습니다.
-
IP 코어의 모든 ImgIn 및 ImgOut 인터페이스에는 ResetO 및 EnableO 출력 포트가 있습니다. 이러한 출력 포트는 해당 인터페이스가 사용되는 프로세스의 Reset 및 Enable 신호에 연결됩니다. 따라서 해당 인터페이스에 연결된 모든 논리 회로는 리셋 및 비활성화 상태에서 적절한 동작을 수행할 수 있습니다.
-
Enable 신호를 비활성화한 후에는, 다시 활성화하기 전에 회로를 리셋해야 합니다. Reset 신호를 활성화하지 않은 상태에서 Enable을 0으로 설정한 후 다시 1로 설정하면, 일부 VisualApplets 설계에서 예측할 수 없는 동작이 발생할 수 있습니다.
프로세스에 권장되는 START 절차:
-
재설정 보내기.
-
Enable을 설정합니다.
프로세스에 권장되는 STOP 절차:
-
‘사용’을 비활성화합니다.
-
재설정 보내기.
플랫폼별 연산자의 FIFO에 대한 모든 읽기 또는 쓰기 액세스는 해당 프로세스의 Enable 신호에 의해 활성화됩니다(플로우 제어에 의해 발생하는 설계에 따른 지연 시간이 일부 존재함). 또한 프로세스의 Reset 신호는 해당 프로세스와 연관된 모든 I/O FIFO의 리셋 포트에 연결되어 있습니다.


![[참고]](../common/images/admon/note.png)
이전

