반응형

분류 전체보기 134

SPI 통신

온도센서, ADC, PLL 등 칩을 제어하는데 사용하는 통신 규격으로 I2C, SPI 통신이 있다. 위 그림은 온도센서를 SPI로 제어하는 방법을 그린 것이다. 총 3가지의 주체가 있다. 1. 프로세서, 2. FPGA, 3. SPI 통신을 지원하는 칩으로 이문서에서는 온도센서를 예로 들겠다. 1. 사용자는 온도센서의 데이터시트를 보고 온도센서를 제어하기 위한 명령어를 파악한다. 보통 이명령어 길이는 24bit 정도 되었다. 제어 명령어를 프로세서에 입력하고, 프로세서는 이 명령어를 FPGA에 전달한다. (아 물론! 프로세서에 온도센서의 SPI 핀들이 바로 연결되어 있다면, 프로세서로 온도센서를 바로 제어할 수 있다.) 2. FPGA는 프로세서로부터 받은 제어 명령어를 FPGA 내부에 있는 SPI 모듈(v..

PCIe 통신 - Configuration Space, Base Address Register 개념

PCIe 통신 중 언급되는 용어인 Configuration Space, Base Address Register 에 대해 정리하였다.  Configuration Space ?  PCI configuration space is the underlying way that the Conventional PCI, PCI-X and PCI Express perform auto configuration of the cards inserted into their bus.   프로세서의 PCIe slot에 PCIe 장치들이 연결되어 있다. 프로세서는 어떻게 PCIe 장치를 인식할 수 있을까 ? PCIe장치가 나 이런 장치에요 라고 프로세서한테 알려주는것인가? 아니다! PCIe 장치는 Configuration Space를..

PCIe 속도 그리고 속도의 결정

PCIe의 속도는 다음과 같다. 등급이 다른 PCIe 기기를 서로 연결하면 어떻게 될까? 프로세서와 FPGA간에 PCIe 통신을 예로 들어보자 2종류의 프로세서가 있다 - 1. PCIe 1.0 lane 4개를 지원하는 프로세서 - 2. PCIe 3.0 lane 1개를 지원하는 프로세서 FPGA의 경우 - FPGA의 PCIe IP 모듈이 PCIe 2.0 lane 4개를 지원한다 FPGA와 위 2종류의 프로세서를 연결하여 PCIe 통신을 한다고 보자. 그러면 PCIe 통신 속도는 어떻게 될 것인가? 1번의 프로세서는 FPGA와 PCIe 1.0 Lane 4개로 통신하며 2번의 프로세서는 FPGA와 PCIe 2.0 Lane 1개로 통신한다. 즉 PCIe 등급이 서로 다른 기기가 연결되어, PCIe 통신을 한다면..

3.1 JESD204 구현에 필요한 하드웨어

JESD204를 지원하는 ADC를 FPGA와 연결하기 위해 필요한 회로구성은 다음과 같으며, JESD204B Class1을 기준으로 정리하였다. - JESD204를 지원하는 ADC 칩 - JESD204에 필요한 클럭, Sysref 신호를 출력하는 clock generator - JESD 204 RX 모듈이 구현된 FPGA - Transceiver (트랜시버) FPGA의 JESD204 RX 모듈에 트랜시버라는 것이 있다. 트랜시버는 ADC에서 고속으로 넘어오는 신호를 수신할 수 있는 하드웨어다. FPGA에서는 트랜시버가 고속의 신호를 물리적으로 수신한 다음, link layer, transport layer를 거치고, ADC 샘플링 데이터로 변환된다. - JESD204 데이터 전송 내부 프로토콜 JESD2..

ADC - 성능지표

본 글은 TI ADSJ49 ADC datasheet를 참고하였습니다. SFDR SNR SINAND THD [1] ADC 특화 지표 FFT for input signal FFT for Two Tone input signal intermodulation distortion vs input amplitude spurious free dynamic range vs input freq. signal to noise ratio vs input freq. performance vs input amplitude - SNR(DBFS) - SFDR(dBc) - SFDR(dBFs) SFDR vs input common mode voltage SFDR vs AVDD supply and temperature SFDR vs DR..

FPGA SERDES 의 쓰임 - 펄스폭을 미세하게

FPGA에서 데이터를 고속 통신할 때 언급되는 모듈이 SERDES이다. 즉 Serializer, Deserializer의 줄임말이다. Xilinx SERDES 모듈 중 Select IO가 있다. 디지털 신호의 폭을 미세하게 조정할 필요가 있을 때, SERDES가 사용된다. 예를 들어 200MHz로 데이터가 오갈 때 데이터의 통신속도는 같을지라도 데이터의 펄스폭을 더 미세하게 조정하고 싶을 때 SelectIO의 Serializer 기능을 이용하면 된다. 01001001이라는 데이터를 보낸다. 데이터의 내용은 유지하되, 위 디지털데이터의 펄스폭을 줄이고 싶다면 어떻게 해야할까? 즉 펄스폭을 더 미세하게 하려면 어떻게 해야할까? 데이터를 더 잘게 잘게 쪼개어서 더 많은 데이터를 만들고, 이것을 고속으로 데이터..

2. JESD204 데이터 전송 속도

JESD204를 지원하는 ADC의 데이터시트를 읽으면서 든 의문점은 내가 이 ADC를 사용한다면 출력 데이터 속도는 얼마인가? 였다. JESD204B의 속도의 지원범위는 315Mb/s~ 12.5Gb/s지만 제조사마다 최고 지원속도가 달랐다. AD9250은 2채널 16 비트 ADC로 샘플링속도가 최대 250MHz이며 JESD204B class1을 지원하는 ADC 칩이다. AD9250의 lane당 데이터 속도는 얼마일까? 위 그림은 AD9250의 ADC 1채널에 대해서만 그린 것이다. ADC 내부에는 16비트 ADC와 JESD204 TX 모듈이 있다. - ADC가 250MHz로 샘플링을 수행하면 초당 250MHz X 16 비트의 데이터가 발생 - 발생한 데이터는 8b/10b 인코딩 과정을 수행하는 JESD2..