복잡성이 다른 프로그래머블 로직 IC는 무엇입니까?


10

프로그래밍 가능한 로직은 ARM의 PrimeCell GPIO 또는 기타 더 구체적인 예는 말할 것도없고, 몇 개의 게이트를 굽거나 MUX를 사용하거나 내장 마이크로 컨트롤러 및 IO 주변 장치를 갖춘 최신 FPGA에 이르기까지 다양한 스펙트럼으로 위젯에서 다양한 스펙트럼으로 구현할 수 있습니다 . 다양한 레벨의 프로그래머블 로직 디바이스 복잡성이 어떤 애플리케이션에 사용됩니까? 그룹화가 정의 의 극단에 가깝게 섞여있는 것처럼 보이지만 이것이 허용되는 목록이라고 생각합니다.

  1. PAL / PLA / GAL : 프로그램 가능 논리 어레이; Digikey에서'Embedded-PLD'로 표시되며비동기식 10/8 I / O (ATF16V8C) ~ 50MHz, 192 매크로 셀 (CY7C341B)을 포함하며 대부분 재 프로그래밍 가능합니다.
  2. CPLD : 복잡한 프로그램 가능 논리 장치; Digikey는 7.5ns 10 I / O (ATF750C) ~ 233 MHz, 428 I / O "FPGAsat FPGA Densities"(CY39100V484B)로 제공됩니다.
  3. FPGA : 필드 프로그래밍 가능 게이트 어레이; 58 I / O (XC2064) ~ 1023 I / O BGA 짐승 (EP1S80F1508C7N)으로 제공됩니다.
  4. 하드 MCU가 장착 된 FPGA : MCU가 FPGA IC에 물리적으로 배치되고 에뮬레이션되지 않은 경우입니다.

Wikipedia 인용문 :

FPGA와 CPLD의 차이점은 FPGA가 내부적으로 룩업 테이블 (LUT)을 기반으로하는 반면 CPLD는 게이트 (예 : 제품 합계)와 함께 논리 기능을 형성한다는 것입니다. CPLD는 단순한 설계를위한 것이며 FPGA는보다 복잡한 설계를위한 것입니다. 일반적으로 CPLD는 광범위한 조합 논리 애플리케이션에 적합한 선택이며 FPGA는 대형 상태 머신 (예 : 마이크로 프로세서)에 더 적합합니다.

233MHz, 400I / O CPLD비슷한 FPGA를 사용 하는 것의 차이점을 설명하지는 않습니다 . 또는 192 매크로 셀 PLD유사한 CPLD 사이 . 설계 옵션을 좁히는 신뢰할 수있는 지침을 잡을 수 없습니다. 현재 특정 응용 프로그램을 염두에 두지 않았지만 종종 "어떻게해야합니까?"

특정 요구 사항에 대한 오프 사이트에서 훌륭한 조언 받았지만 여전히이 질문은 다른 PLD 제품군이 동등하거나 더 적합한 것으로 보일 때 한 PLD 제품군보다 선호도를 보여주는 일부 예에서 도움이 될 수 있다고 생각합니다.


XC2064는 고대입니다. CY7C341B와 CY39100V484B가 여전히 만들어 졌는지 모르겠습니다. 비교 / 결정시이를 고려해야합니다.
Brian Carlton

2
참고로, 이러한 부품 중 하나를 사용하면 제조업체가 문헌에 넣은 다양한 제품과 실제로 입수 할 것으로 예상되는 게이트 수 / 패키지 / 속도 및 온도 조합의 훨씬 작은 분류 사이에 큰 차이가 있습니다. 반년 미만의 리드 타임에 소량. 따라서 이들을 설계 할 때는 먼저 실제 가용성을 확인하십시오. 구매를 통해 배포를 원한다는 사실을 알고 있더라도 더 프로토 타입 지향 공급 업체가 실제로 필요할 경우 밤새도록 장치를 가지고있는 장치를 선호합니다.
Chris Stratton

좋은 조언, @ChrisStratton. 이것은 일반적으로 대부분의 부분을 확인하는 첫 번째 항목이지만 PLD에 특히 문제가 있음을 아는 것이 좋습니다.
tyblu

답변:


7

기준에 가장 적합한 부품을 결정하는 데 도움이되는 디지털 프로젝트를 평가하는 데 사용할 수있는 두 가지 기준이 있습니다. 첫 번째는 디자인 크기 / 복잡성입니다. 로직의 양입니다. 두 번째는 핀 수 측면에서 입력 및 출력 요구 사항입니다. 가장 느린 기능을 추정 할 수 있다면 속도를 고려할 수 있습니다. 벤더 툴 (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 패키지에 여러 전원 공급 장치를 사용하기 시작합니다.

설계 요구 사항을 좁히는 단계는 다음과 같습니다.

  1. FPGA / CPLD에 대한 모든 입력 및 출력을 식별하십시오. 이것은 일반적으로 디자인 단계의 쉬운 부분입니다. 이 방법을 사용하면 현재보고있는 패키지와 그 마진을 얼마나 가깝게 줄일 수 있는지 알 수 있습니다.

  2. 내부 논리의 블록 다이어그램을 그립니다. 블록이 단순 해 보인다면 (각 블록에는 여러 개의 논리 게이트와 레지스터가 있음) CPLD를 사용할 수 있습니다. 그러나 블록에 "이더넷 트랜시버", "PCI-Express x16 인터페이스", "DDR2 컨트롤러"또는 "h264 인코딩 / 디코딩"과 같은 레이블이 있으면 FPGA를보고 HDL을 사용하는 것입니다.

  3. 인터페이스에 특수 전압, LVDS, DDR 또는 고속 SERDES와 같은 특수 I / O 요구 사항이 있는지 확인하십시오. 추가 번역기 칩을 얻는 것보다이를 지원하는 칩을 얻는 것이 더 쉽습니다.

CPLD 애플리케이션 예 :

  • SPI 인터페이스가 내장 된 다중 채널 PWM
  • I / O 익스팬더
  • CPU 주소 공간 디코딩
  • 시계 (시간 유지)
  • 멀티플렉서 표시
  • 간단한 DSP
  • 일부 간단한 프로그램은 CPLD 디자인으로 변환 할 수 있습니다

애호가 FPGA 어플리케이션의 예 :

  • 소형 SoC (System-on-Chip) 설계
  • 비디오
  • 복잡한 프로토콜 브릿지
  • 신호 처리
  • 암호화 / 복호화
  • 레거시 시스템 에뮬레이션
  • 로직 애널라이저 / 패턴 생성기

대부분의 취미 작업의 경우 BGA 패키지를 납땜하지 않는 한 비교적 작은 FPGA로 제한됩니다. 큰 CPLD 또는 저렴한 FPGA 중에서 선택하고 크기 / 속도 요구 사항에 따라 필요한 것이 결정됩니다.


답변을 약간 연장하면 구성 시간없이 즉시 시작하기 때문에 PAL / PLA / GAL을 PLD / CPLD와 동일한 바구니로 그룹화하는 경향이 있으며 공급 업체가 CPLD를 PAL / PLA / GAL 장치. 예를 들어 일부 격자 장치로 작업하고 있으며 CPLD 제품군 IC는 훨씬 저렴하고 PAL / GAL / PLA 사촌보다 더 많은 게이트를 제공합니다. 후자의 비용은 전자와 비교할 때 그들이 제공하는 것에 대해 엄청나 다.
Smashtastic

선이 약간 흐릿합니다. PAL / PLA / GAL에 스토리지 요소가 있거나 CLPD에 SRAM이 있다고 생각하지 않았으며, 나열된 부품을 조회 할 때까지는 SRAM이있었습니다. PAL / PLA / GAL은 핵심 부품보다 디자인에서 오리 테이프와 비슷합니다.
W5VO

3

좋은 "엄지 규칙"목록은 다음과 같습니다.

  • PAL / PLA / GAL : PCB의 개별 IC 로직 게이트 대신 사용
  • CPLD : 복잡한 비 DSP 및 시간이 중요한 작업이 필요한 경우 (메모리에서 FPGA로 부팅 코드로드, DAC 용 LUT 사인파 생성기 등)
  • FPGA : 시간이 중요하거나 곱셈 또는 DSP 기능이 필요할 때 사용됩니다 (FIR 필터, FFT 등).
  • 하드 MCU 가 장착 된 FPGA : FPGA 기능이 필요하고 FPGA의 주변 장치에 액세스해야하거나 (임시 센서) 단순성을 위해 VHDL이 아닌 C에서 시간에 덜 민감한 작업을 C (implicit)로 구현해야하는 경우 (UART / 직렬 포트 기능, PCB 하우스 키핑 등)

적은 비용으로 저렴한 CPLD로 인해 PAL / PLA / GAL은 레거시 응용 프로그램을 제외하고 거의 죽었습니다.
Chris Stratton

나는 그것을 주장하지 않을 것이다. 저전력 (배터리) 전력 / 작은 크기가 제약 조건 인 경우 CPDL보다 유리 할 수 ​​있으므로 여전히 사용될 수 있지만 이미지가 내 경우에는 여전히 가장 작고 전력 효율적인 CPLD를 사용합니다. 디자인.
Joel B

2

간단한 대답은 두 가지 방법이 있다는 것입니다.

1. 먼저 높은 추상화 수준 (HDL 또는 회로도)으로 시스템을 설계합니다. 그런 다음 PAL / CPLD / FPGA에 맞추고 요구 사항 (게이트 수 / 논리 요소 수, 성능 등)을 충족하는 항목을 선택한 다음 가장 저렴한 항목 (개발 비용 vs. 생산 비용 등).

2. 그러나 일반적으로 HDL 코딩 또는 회로도 개발을 시작하기 전에 이미 시스템의 복잡성을 추정 할 수 있습니다 (8 비트 MCU 또는 32 비트 MCU가 필요하거나 마이크로 컨트롤러가없는 경우 필요한 게이트 수) 모두). 이를 기반으로 프로그래밍 가능한 장치를 선택할 수도 있습니다. 정확도는 떨어지지 만 프로그래밍 할 수없는 하드웨어 및 소프트웨어 (있는 경우)와 병렬로 프로그래밍 할 수없는 아날로그 및 디지털 하드웨어를 설계 할 수 있습니다.


2

하드 코어가있는 FPGA는 별도의 마이크로 컨트롤러보다 면적이 적고 소프트 코어 마이크로 프로세서보다 빠르기 때문에 사용됩니다. 그러나 가격은 일반적으로 FPGA와 별도의 마이크로 컨트롤러보다 최악입니다. 일반적으로 소프트웨어 및 마이크로 컨트롤러는 매개 변수 구성 및 오류 처리와 같이 느리고 드문 경우에 상대적으로 좋습니다. 논리는 연속 프로세스에 좋습니다. 예를 들어 패킷 처리에서 메모리에 쓰는 것은 논리적 인 것이어야합니다. TTL (Time-to-Live) 타임 아웃 처리는 소프트웨어에서 유지되어야합니다.

FPGA 공간에는 싸고 / 저전력 부품과 고가 / 빠른 부품이 있습니다. 일반적으로 마이크로 컨트롤러는 값 비싼 컨트롤러에만 있습니다. 이로 인해 온 FPGA 솔루션의 비용 거래와 개별 MCU가 더욱 악화됩니다.

적어도 10 년 이상 새로운 디자인에 PAL을 사용하는 사람은 없습니다. CPLD는 그 틈새 시장을 인수했습니다.

지난 5시에? 수년 동안 CPLD는 FPGA와 유사하지만 온칩 구성을 유지하기위한 메모리가 있습니다. FPGA는 현재 100 MHz이므로, 속도는 10-15 년 전보다 CPLD에 로직을 넣는 이유가 훨씬 적습니다. 그러나 FPGA에는 멀티 플라이어, 시리얼 라이저 및 많은 메모리와 같은 다른 기능이있어 로직이 많지 않아도 디자인을 하나로 만들 수 있습니다.


1
CPLD를 유지하는 한 가지 이유는 현재 저비용 CPLD가 여전히 단일 공급 전압 기술로 만들어지고 있지만, 대부분의 현재 FPGA에는 여러 공급 전압이 필요하기 때문입니다. 따라서 보드에 cpld를 배치하기 위해 더 저렴하게 할 필요가 없지만 큰 CPLD에 대해 이야기하는 경우 저가형 fpga가 더 저렴하고 향후 향상을위한 더 많은 공간을 제공 할 수 있습니다. 다른 이유로 사용 가능한 코어 전압 공급 장치가 이미 있습니다.
Chris Stratton

@BrianCarlton과 @ChrisStratton의 답변에 감사드립니다. 주어진 예와 현재 의견은 훌륭한 정보입니다.
tyblu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.