반응형

FPGA - 프로세서 그리고 데이터의 이동 29

PCIe Link training과 Link equalization의 과정

본 문서는 TI사의 https://www.ti.com/lit/pdf/snla415  문서를 정리한 것입니다.  PCIe 과거와 현재는 다음 그림과 같다.  3. Components of PCIe Communication 3.1 Root ComplexRoot Complex는 CPU, 메모리, PCIe 장치 사이를 연결한다. Root Complex는 CPU 내부에 있는 경우도 있고, 외부에 있는 경우도 있다. PCIe endpoint가 출력하는 데이터가 CPU, 메모리에 전달되려면 Root Complex를 거쳐야 한다. 1개의 Root Complex와 다수의 PCIe endpoint 간에 PCIe 통신이 이루어진다. 3.2 Repeater Repeater는 Root complex와 PCIe endpoint ..

FPGA의 PCIe에 접근에 필요한 file descriptor는 무엇인가?

컴퓨터의 dev 폴더에 있는 xdma라는 이름이 붙여진 file descriptor를 이용하여, 컴퓨터는 FPGA1, 2보드의 pcie에 데이터를 주고 받는다. 2가지의 file descriptor가 존재한다. /dev/xdma0_user : FPGA의 register에 데이터를 쓰거나 읽을 때 사용 /dev/xdma0_c2h_0 : 컴퓨터가 DMA를 이용하여 FPGA에서 데이터를 load할 때 사용 file descriptor를 사용하기 위한 초기화를 수행한다. 컴퓨터가 PCIe slot에 꽂힌 FPGA 카드를 인식하고, xdma 드라이버를 정상적으로 load하였다면, dev 폴더에 위와 같은 file descriptor가 검색이 된다. 컴퓨터가 FPGA에 데이터를 쓰거나 읽기 위해서는 dev에 검색된..

DMA의 개념과 FPGA에서 사용 예시

정의 :직접 메모리 접근(Direct Memory Access, DMA)은 특정 하드웨어 하위 시스템이 CPU와 독립적으로 메인 시스템 메모리에 접근할 수 있게 해주는 컴퓨터 시스템의 기능 효과 : 프로세서 붙은 주변장치의 데이터는 장치 컨트롤러에 의해 로컬 버퍼로 이동한다. 그러나 전송할 데이터가 많은 경우, 프로세서에 부담이 된다. 이러한 문제를 해결하기 위해 DMA를 이용한다. DMA가 데이터를 이동시키는 동안 CPU는 다른 작업을 수행 할 수 있다는 장점이 있다. CPU에서는 데이터 이동이 완료되었다는 단 한 번의 인터럽트만 받으면 된다. 예시 : 디스크 드라이브 컨트롤러, 그래픽 카드, 네트워크 카드, 사운드 카드를 포함한 많은 하드웨어 시스템이 DMA를 사용한다. DMA는 멀티 코어 프로세서의..

timing error 디버그를 위한 Skew, slack에 대한 이해

FPGA 합성시 Timing error에 대한 내용을 분석해야할 필요가 있다. 이때 skew와 slack 용어에 대한 이해를 위해 정리하였다. A에서 출력한 데이터가 클럭 1주기 안에 B에 도착하면 된다. 예제의 경우 slack이 여유가 있기 때문에 data path delay가 더 길어도 된다. FPGA 합성 시 slack이 – 값이 되면, 경고 메시지가 뜬다.

xilinx FPGA의 Configuration 방법

xlinlix UG570 문서를 참고하여 정리 하였다. FPGA에 FPGA bin 파일을 업로드 하는, 올리는 행위를 configuration이라 한다. xlinx사 Ultrascale 계열 FPGA의 configuration 방법으로 크게 4가지를 지원한다 1. master spi interface : nor flash > fpga 2. serial configuration mode : micro processor or cpld > fpga 3. master BPI configuration : parallel nor flash > fpga 4. Select Map : micro processor or cpld > fpga xilinx가 판매하는 개발보드는 주로 1번째 방법을 이용한다. 1번째 방법은 가..

4. JESD204 데이터 전송 수행 과정

본 내용과 그림은 TI 사의 JESD204B 설명자료를 참고하였습니다 JESD 204B의 데이터 전송과정이 어떻게 진행되는지를 다음 그림에서 확인할 수 있다. JESD204 TX 모듈과 RX 모듈, 클럭 제너레이터로 구성되어 있다. TX 모듈과 RX 모듈 모두 Transport layer, Link layer, Physical layer로 구성되어 있다는 점은 같으며, 통과하는 layer의 순서가 다르다. JESD204를 지원하는 ADC가 JESD204 TX 모듈을 가지고 있으며 ADC가 보낸 데이터를 수신해야하는 FPGA가 JESD204 RX 모듈을 가지고 있다. JESD204 부분을 구현하면서 알아야할 부분이 Physical layer, Link layer, Transport layer이다. 이 글에..

1. JESD204B의 시작

JESD204 통신의 필요성 JESD204는 ADC가 출력한 데이터 또는 DAC에 입력할 데이터를 FPGA가 손실없이 받거나 또는 보낼 때 이용하는 통신 방식이다. JESD204는 JEDEC이 Data converter(ADC or DAC ...)를 위해서 만든 serial interface이다. jesd204b를 접하게 된 계기는 회사에서 2채널 ADC를 FPGA에 연결한는 업무를 받았을 때였다. 기존의 ADC 칩(~250MHz Sampling rate)과 FPGA는 LVDS라인으로 연결되어 있었다. 또한 비트마다 LVDS lane 1개를 FPGA에 연결했어야 했다. 그림 1처럼.. ADC가 14비트 data converter라면, ADC와 FPGA는 LVDS lane이 14개가 연결되어 있다. 즉 비..

반응형