대부분의 오실로스코프가 수행하는 작업을 수행하는 것이 가장 좋습니다. 데이터를 RAM으로 샘플링 한 다음 디스플레이/분석을 위해 프로세서로 전송하여보다 "느슨한"속도로 수행하십시오.
FPGA 측에서는 모드 레지스터의 비트가 소프트웨어 측에서 설정되기 시작한 후 일종의 시작 또는 트리거 조건을 감지하는 상태 시스템이 필요합니다.
그러면 상태 머신은 하나 이상의 블록 램으로 구성된 버퍼에 샘플을 채 웁니다. 캡처 된 샘플 중간에 트리거를 배치하려면 순환 버퍼로 트리거를 계속 기록하고 트리거 후 샘플의 구성 가능한 수를 중지하여 트리거 조건 이전의 원하는 번호를 유지합니다 그것을 뒤 따르는 새로운 것들에 의해 덮어 쓰기되지 않습니다.
FPGA 블록 램은 일반적으로 듀얼 포트이기 때문에 다른 포트를 CPU 버스에 연결하여 판독 할 수 있습니다. 레지스터가 샘플링 상태 머신의 상태를 읽는 것을 원할 것입니다. 원형 버퍼 접근 방식을 사용하면 중지 된 주소를 사용하여 데이터를 선형 레코드 시간에 풀 수 있습니다.
스트리밍 실시간 샘플링을 시도하는 것이 가능할 수도 있지만 실시간으로 생성 된 데이터로 의미있는 모든 작업을 수행 할 수 있다는 것은 분명하지 않습니다. 그래도 샘플링과 프로세서 버스 사이에 FIFO 버퍼를 두어야 할 필요가있는 경우에는 데이터를 청크로만 소비 할 수 있고 그 사이의 다른 작업을 처리해야하므로 뭔가가 필요합니다. 샘플의 일정한 유입을 흡수해야했습니다. 또 다른 접근법은 샘플을 외부 시스템 램에 직접 쓰는 DMA 엔진을 만들려고 시도하는 것이지만, 그것은 더 어려울 것입니다.
CPU에서 사용할 수있는 고속 인터페이스가 있는지 확인할 수도 있습니다. 예를 들어 원래 비디오 용으로 의도 된 것일 수 있습니다.
또한 디지털 신호 만 측정하는 것으로 나타납니다 (즉, 1 비트 오류). FPGA 패브릭이 지원할 수있는 것보다 높은 입력 샘플 속도를 처리하고자한다면, FPGA 에지에서 디시리얼라이저 블록과 같은 것을 사용하여 1 비트 입력 스트림을 더 넓은 샘플의 느린 스트림으로 바꿀 수 있음을 의미 할 수 있습니다 저장할 수 있습니다.
출력 측면에서 버퍼의 샘플 벡터를 얻은 후에는 확대/축소, 커서 주석, 자동 측정 등 원하는대로 스코프/로직 분석기 유형 플롯으로 전환하는 것이 매우 간단합니다.
또한 개발 중에이 기능을 사용하려는 의도 만있는 경우 FPGA 및 해당 도구는 종종 프로그래밍에 대한 프로그래밍 인터페이스를 통해 청구 된 데이터와 함께 설계에 바로 로직 분석기를 구축 할 수 있다는 점도 잊지 마십시오 PC.