기준에 가장 적합한 부품을 결정하는 데 도움이되는 디지털 프로젝트를 평가하는 데 사용할 수있는 두 가지 기준이 있습니다. 첫 번째는 디자인 크기 / 복잡성입니다. 로직의 양입니다. 두 번째는 핀 수 측면에서 입력 및 출력 요구 사항입니다. 가장 느린 기능을 추정 할 수 있다면 속도를 고려할 수 있습니다. 벤더 툴 (Altera Quartus II, Xilinx ISE 등)은 올바른 야구장에 들어가면 도움이됩니다.
PAL / PLA / GAL : 일반적으로 LSI 로직 칩 (7400, 4000 시리즈)으로 구현할 수있는 중소형 회로를 대체하기위한 것입니다. 이것들은 I / O 리매핑과 많은 간단한 로직 기능으로 인해 더 나은 보드 레이아웃을 제공 할 수 있습니다. 이 칩에는 비 휘발성 메모리 (또는 1 회 프로그램 가능 퓨즈)가 포함되어 있으며 전원 켜기 구성 시간이 필요하지 않습니다. 데이터 저장 요소를 포함하지 않을 수 있습니다.
CPLD : PLA의 더 큰 사촌입니다. 디자인은 소형 상태 머신이거나 매우 간단한 마이크로 프로세서 코어 일 수 있습니다. 내가 본 CPLD 칩의 대부분에는 온칩 SRAM이 없지만 링크 된 큰 Cypress CPLD는 있지만. CPLD는 플래시 메모리로 다시 프로그래밍 할 가능성이 높으며 전원을 켤 때 구성 시간이 필요하지 않습니다.
FPGA : CPLD와 달리 로직 블록은 플래시 메모리 대신 SRAM을 기반으로하므로 로직 작업이 더 빨라집니다. FPGA의 주요 단점은 구성이 SRAM에 저장되므로 디바이스 전원을 켤 때마다 FPGA가 프로그래밍을이 SRAM에로드해야한다는 것입니다. 설계의 크기와 비 휘발성 스토리지의 속도에 따라 전원 켜기에서 완전히 작동하는 데 상당한 지연이 발생할 수 있습니다. 일부 FPGA에는 데이터를 저장하기위한 온칩 플래시가 있지만 대부분 별도의 메모리 칩을 사용합니다. FPGA는 종종 컴퓨팅 속도를 향상시키기 위해 하드 와이어 멀티 플라이어, PLL 및 기타 로직 기능을 갖습니다. 큰 온칩 RAM 블록도 사용할 수 있습니다. LVDS, PCI 및 PCI-Express와 같은 고성능 I / O 사양을 사용할 수도 있습니다.
마이크로 프로세서가 장착 된 FPGA 하드 코어 : 이것에 익숙하지 않지만, 여러분의 디자인이 마이크로 컨트롤러 프로그래밍을 중심으로하고 FPGA가 마이크로 컨트롤러를 보강 할 것이라고 생각합니다. 식별 한 부품들은 마이크로 컨트롤러와 FPGA로 설계를 시작한 다음 두 칩을 하나의 칩 / 패키지로 결합하는 것처럼 보입니다.
귀하에게 적합한 것을 결정하는 방법 :
가장 좋은 방법은 코드 (Verilog / VHDL)를 완성한 다음 공급 업체의 도구를 사용하여 가능한 가장 작은 부분에 맞추는 것입니다. Altera의 툴을 사용하면 프로그래밍 목표를 상당히 쉽게 변경할 수 있으므로 설계 사용량이 약 75 %에 가까워 질 때까지 더 작은 FPGA를 선택한 다음 더 작은 CPLD를 계속 선택할 수 있습니다. 성능이 필요한 경우 로직의 속도 요구 사항을 줄이는 기능 (빠른 승수)이있는 장치를 선택하십시오. 다시 말하지만, 공급 업체 도구는 업그레이드가 필요한지 또는 다운 그레이드 할 수 있는지 식별하는 데 도움이됩니다.
사용할 부분의 또 다른 요소는 사용 편의성입니다. PAL / PLA / GAL 로직을 사용하는 것은 개별 로직 게이트 (74HC *, 4000 등)를 사용하여 기능을 구성하는 것보다 더 많은 노력 일 것입니다. CPLD는 일반적으로 단일 공급 전압 만 필요하며 추가 회로가 필요하지 않습니다. 효과적으로 독립형입니다. FPGA는 I / O 및 로직 코어, 복잡한 I / O 표준, 개별 프로그램 메모리, 멀티 레이어 (> 2) PCB 및 BGA 패키지에 여러 전원 공급 장치를 사용하기 시작합니다.
설계 요구 사항을 좁히는 단계는 다음과 같습니다.
FPGA / CPLD에 대한 모든 입력 및 출력을 식별하십시오. 이것은 일반적으로 디자인 단계의 쉬운 부분입니다. 이 방법을 사용하면 현재보고있는 패키지와 그 마진을 얼마나 가깝게 줄일 수 있는지 알 수 있습니다.
내부 논리의 블록 다이어그램을 그립니다. 블록이 단순 해 보인다면 (각 블록에는 여러 개의 논리 게이트와 레지스터가 있음) CPLD를 사용할 수 있습니다. 그러나 블록에 "이더넷 트랜시버", "PCI-Express x16 인터페이스", "DDR2 컨트롤러"또는 "h264 인코딩 / 디코딩"과 같은 레이블이 있으면 FPGA를보고 HDL을 사용하는 것입니다.
- 인터페이스에 특수 전압, LVDS, DDR 또는 고속 SERDES와 같은 특수 I / O 요구 사항이 있는지 확인하십시오. 추가 번역기 칩을 얻는 것보다이를 지원하는 칩을 얻는 것이 더 쉽습니다.
CPLD 애플리케이션 예 :
- SPI 인터페이스가 내장 된 다중 채널 PWM
- I / O 익스팬더
- CPU 주소 공간 디코딩
- 시계 (시간 유지)
- 멀티플렉서 표시
- 간단한 DSP
- 일부 간단한 프로그램은 CPLD 디자인으로 변환 할 수 있습니다
애호가 FPGA 어플리케이션의 예 :
- 소형 SoC (System-on-Chip) 설계
- 비디오
- 복잡한 프로토콜 브릿지
- 신호 처리
- 암호화 / 복호화
- 레거시 시스템 에뮬레이션
- 로직 애널라이저 / 패턴 생성기
대부분의 취미 작업의 경우 BGA 패키지를 납땜하지 않는 한 비교적 작은 FPGA로 제한됩니다. 큰 CPLD 또는 저렴한 FPGA 중에서 선택하고 크기 / 속도 요구 사항에 따라 필요한 것이 결정됩니다.