2 1 세기에 인류는 정보 사회에 전면적으로 진입하여 마이크로전자 정보기술과 마이크로전자 VLSI 기초기술에 대한 더 높은 발전 요구를 지속적으로 제기할 것이다. 마이크로일렉트로닉스 기술은 2 1 세기에도 여전히 가장 중요하고 역동적인 하이테크 분야 중 하나가 될 것이다. 집적 회로 (IC) 기술은 마이크로전자 분야에서 중요한 역할을 한다. 집적 회로 기술의 발달로 전자 설계 자동화 EDA 는 점차 아날로그 및 디지털 회로 시스템과 같은 여러 분야에서 널리 사용되는 중요한 설계 방법이 되었습니다.
VHDL 은 디지털 회로 및 시스템의 설명, 시뮬레이션 및 자동 설계에 사용할 수 있는 널리 사용되는 설계 입력 하드웨어 언어입니다. CPLD/FPGA (복잡한 프로그래밍 가능 논리 장치/현장 프로그래밍 가능 도어 배열) 는 디지털 시스템 설계에 유연하며 문자열도 있습니다! 병렬 작업 모드, 고도로 통합! 고속! CPLD/FPGA 클럭 지연은 나노초 수준까지 가능하며 병렬 작업 모드와 함께 초고속 및 실시간 측정 및 제어에 널리 사용됩니다.
이 설계의 목적은 프로그래밍 가능한 논리 장치를 사용하여 데이터 수집을 위한 일반 마이크로컨트롤러 대신 전용 A/D 변환기 컨트롤러를 설계하는 것입니다. 요약: A/D 의 데이터 샘플링 제어가 소개됩니다. 이 설계에는 CPLD/FPGA, ADC 및 LED 모니터가 데이터 수집 시스템을 구성하여 CPLD/FPGA 를 사용하여 데이터 수집에서 관련 데이터의 A/D 변환, 데이터 연산 및 디스플레이 제어를 구현합니다. 이 과제는 적절한 하드웨어 지식을 배우는 것 외에도 VHDL 언어를 사용하여 프로그래밍 가능한 논리 장치를 설계하는 방법을 배워야 합니다.
미래의 EDA 기술은 폭과 깊이로 발전 할 것입니다.
(1) EDA 기술은 폭넓게 보급될 것이다. 과거에는 가격이 비싸서 하드웨어 환경에 대한 요구가 높았는데, 그 운영 환경은 워크스테이션과 유닉스 운영 체제였다. 최근 몇 년 동안 EDA 소프트웨어 플랫폼이 급속히 발전해 왔으며, 이러한 PC 플랫폼의 EDA 소프트웨어는 논리적 설계, 시뮬레이션 및 통합 도구 세트를 갖추고 있습니다. PC 성능이 향상됨에 따라 PC 플랫폼의 소프트웨어 기능이 더욱 향상됩니다.
(2) 심도 있게 EDA 기술 발전의 다음 단계는 ESDA (전자 시스템 설계 자동화) 와 CE (병렬 엔지니어링 병렬 설계 프로젝트) 입니다. 현재 시스템 시뮬레이션, PCB 케이블 연결, 논리적 합성, DSP 설계 도구와 같은 다양한 EDA 도구는 서로 독립적입니다. 기술이 발전함에 따라 모든 시스템 도구는 하나의 통합 데이터베이스 및 관리 프레임워크로 작업해야 하므로 ESDA 및 병렬 엔지니어링의 개념이 제안됩니다.
제 2 장 에다 기술의 발전과 응용.
2. 1 전자 설계 자동화 (EDA) 개발 개요
2.1..1전자 설계 자동화 (EDA) 란 무엇입니까?
전자 설계 기술 분야에서는 PLD, GAL 과 같은 프로그래밍 가능한 논리 장치의 응용이 이미 잘 보급되었다. 이 부품들은 디지털 시스템의 설계에 큰 유연성을 가져왔다. 이 장치는 소프트웨어 프로그래밍을 통해 하드웨어 구조와 작동 패턴을 재구성할 수 있기 때문에 하드웨어 설계는 소프트웨어 설계만큼 쉽고 빠릅니다. 이 모든 것이 기존의 디지털 시스템 설계 방법, 설계 프로세스 및 설계 철학을 크게 변화시켰습니다.
전자 설계 자동화 (EDA) 는 전자 시스템 또는 전자 제품의 자동 설계를 실현하는 기술입니다. 전자기술과 마이크로전자 기술의 발전과 밀접한 관련이 있으며, 90 년대 초 CAD (Computer Aided Design), CAM (Computer Aided Manufacturing), CAT (Computer Aided Test), CAE (Computer Aided Engineering) 등의 개념에서 컴퓨터 과학 분야의 최신 연구 성과 대부분을 흡수했습니다. EDA 기술은 EDA 소프트웨어 플랫폼에서 특정 대상 칩의 논리적 컴파일, 단순화, 분할, 통합 및 최적화, 레이아웃, 시뮬레이션, 적응 컴파일, 논리 매핑 및 프로그램 다운로드를 자동화하는 컴퓨터 기반 도구입니다. 디자이너의 작업은 소프트웨어를 사용하여 시스템의 하드웨어 기능을 설명하는 것으로 제한됩니다. EDA 도구를 사용하여 해당 FPGA/CPLD 장치를 적용하면 최종 설계 결과를 얻을 수 있습니다. 대상 시스템은 하드웨어이지만 전체 설계 및 수정 프로세스는 소프트웨어 설계를 완료하는 것처럼 편리하고 효율적입니다. 물론 여기서 소위 EDA 는 주로 디지털 시스템의 자동 설계를 가리킨다. 이 분야의 하드웨어 및 소프트웨어 기술은 모두 성숙하고 응용의 보급성도 비교적 크기 때문이다. 아날로그 전자 시스템의 EDA 는 실용화되고 있으며, 원래의 EDA 도구는 반드시 하드웨어 설명 언어가 필요하지 않습니다. 또한 EDA 기반 디지털 시스템 설계 기술은 전자 정보 분야의 광범위한 디지털화로 인해 애플리케이션 시장과 수요가 더욱 커지고 있습니다.
2. 1.2 EDA 개발 내역
EDA 기술의 발전은 1970 년대에 시작되어 세 단계를 거쳤다. 전자 회로의 CAD (컴퓨터 지원 설계) 는 EDA 개발의 초급 단계이며 고급 EDA 시스템의 중요한 구성 요소입니다. 컴퓨터의 그래픽 편집, 분석 및 저장 기능을 활용하여 엔지니어가 전자 시스템의 회로도, 인쇄 회로 기판 및 통합 회로 보드를 설계하는 데 도움을 줍니다. 2D 그래픽 편집 분석을 통해 주로 전자 회로 설계 후기의 많은 반복 작업을 해결할 수 있으며 설계자의 번거로운 반복 작업을 줄일 수 있지만 자동화 수준은 낮아 전체 설계 프로세스에 수동 개입이 필요합니다. 이런 전용 소프트웨어는 대부분 마이크로컴퓨터를 기반으로 배우기 쉽고 중소형 전자 시스템 설계가 믿을 만하고 효과적이다. 현재 이러한 전용 소프트웨어 중 상당수는 여전히 엔지니어링 설계에 널리 사용되고 있습니다. 1980 년대 초, EDA 기술은 기술 설계 프로세스를 분석하고 시뮬레이션 (논리 시뮬레이션, 타이밍 분석 및 오류 시뮬레이션) 및 자동 레이아웃 배선을 핵심으로 하는 EDA 제품을 출시했습니다. 이 단계에서 EDA 는 3 차원 그래픽 기술, 창 기술, 컴퓨터 운영 체제, 네트워크 데이터 교환, 데이터베이스 및 프로세스 관리와 같은 일련의 컴퓨터 학과의 최신 성과를 전자 설계에 도입하여 CAE-컴퓨터 지원 엔지니어링을 형성했습니다. 이른바 에다 기술의 중급 단계. 주요 특징은 자동 배치 및 회로를 갖춘 컴퓨터 시뮬레이션, 분석 및 검증 기능입니다. 그 역할은 보조 디자인뿐만 아니라 사람을 대신하여 어떤 사고를 할 수 있다. 구조도 기반 EDA 시스템 CAE 는 직관적이고 이해하기 쉽지만 복잡한 전자 설계의 요구 사항을 충족하기가 어렵고 설계 최적화에 적합하지 않습니다.
따라서 자동 합성기와 하드웨어 설명 언어를 기반으로 90 년대에는 EDA 단계인 EDA (Electronic System Design Automation) 가 등장했습니다. 과거 전자 시스템의 전자 제품에 대한 전통적인 설계 방법은 상향식 프로그램을 채택하는 것이었는데, 디자이너는 먼저 시스템 구조를 분리해 회로 등급을 직접 설계했다. (윌리엄 셰익스피어, 템플릿, 전자제품, 전자제품, 전자제품, 전자제품, 전자제품, 전자제품) 이러한 설계 방식을 통해 디자이너는 다음 단계의 문제를 예측할 수 없으며, 각 단계에 문제가 있는지 여부는 종종 전체 시스템을 디버깅할 때 결정됩니다. 로컬 회로 조정을 통해 전체 시스템을 정해진 기능과 지표에 도달하기가 어렵고 설계의 성공을 보장할 수 없습니다. EDA 기술의 고급 단계에서는 하향식 설계 절차와 동시 엔지니어링 접근 방식이라는 새로운 설계 개념이 채택되었습니다. 디자이너의 초점은 주로 필요한 전자 제품의 정확한 정의에 초점을 맞추고 있으며, EDA 시스템은 전자 제품을 시스템 수준에서 물리적 수준까지 설계합니다. 이 단계에서 EDA 기술의 주요 특징은 고급 언어 설명 시스템을 지원하는 것입니다. 고급 종합 이론은 시스템 수준의 시뮬레이션과 합성을 수행할 수 있도록 크게 발전했습니다. 그림 2- 1 은 위의 세 단계의 도식입니다.
그림 2-2- 1 EDA 개발 단계 다이어그램
2. 1.3 EDA 애플리케이션
대규모 집적 회로 기술 및 컴퓨터 기술이 지속적으로 발전함에 따라 통신, 국방, 항공 우주, 의학, 산업 자동화, 컴퓨터 응용, 계측 및 기타 분야의 전자 시스템 설계에서 EDA 기술의 함량이 놀라운 속도로 증가하고 있습니다. 전자 하이테크 프로젝트의 발전도 EDA 기술의 응용에 의존한다. 일반 전자 제품 개발에서도 EDA 기술은 기존의 기술 병목 현상을 쉽게 돌파하여 제품 개발 주기를 크게 단축하고 가격 대비 성능을 크게 향상시킵니다. 말할 필요도 없이, EDA 기술은 곧 전자 설계 분야에서 매우 중요한 부분이 될 것이다.
전자 디자인 전문가들은 단일 칩 마이크로 컴퓨터 시대가 이미 지나갔고, 미래는 EDA 시대가 될 것이며, 매우 통찰력이 있을 것이라고 생각한다. 마이크로전자 기술의 급속한 발전에 따라 전자학은 완전히 새로운 시대로 접어들었다. 전자 기술의 응용이 전례 없는 규모와 속도로 모든 업종에 침투하는 것이 특징이다. 각 업종마다 전용 집적 회로 (ASIC) 에 대한 설계 수요가 갈수록 절실해지고 있다. 현장 프로그래머블 장치의 광범위한 응용은 각 업계의 전자 시스템 설계 엔지니어가 자체 ASIC 를 개발할 수 있는 기술 및 물질 조건을 제공합니다. EDA 기술에 의한 FPGA/CPLD 의 개발은 일반적으로 전용 ASIC 를 개발할 수 있는 소프트웨어 전용 하드웨어 개발입니다. 최종 ASIC 칩은 FPGA/ CPLD 또는 독재문 어레이 마스크 칩이 될 수 있으며, FPGA/CPLD 는 하드웨어 시뮬레이션 ASIC 칩 역할을 합니다.
2.2 EDA 기반 FPGA/ CPLD 개발
오늘날 중국의 전자 설계 기술의 발전은 EDA 기반 FPGA/CPLD (현장 프로그래밍 가능 도어 어레이/복잡한 프로그래밍 가능 논리 장치) 의 광범위한 사용에 직면하게 될 것입니다. 어떤 의미에서, 새로운 전자 시스템의 물리적 메커니즘은 원래의 순수 디지털 회로 구조로 돌아가지만, 이것은 더 높은 수준의 순환으로, 과거 디지털 기술의 우수한 부분을 더 높은 수준에서 수용하고, MCU 시스템을 버리고, 전자 설계의 기술 운영과 시스템 구성에서 질적인 도약을 했다. MCU 가 논리적 구현에 무한하다면 FPGA/CPLD 에는 MCU 의 특성뿐만 아니라 실리콘 회로의 물리적 한계까지 닿아 직렬 병렬 작업 모드, 고속, 높은 신뢰성, 넓은 구경 적용성 등 여러 가지 특징이 있습니다. 또한 EDA 기술의 발전과 딥 서브 마이크론 분야에서의 FPGA/CPLD 의 발전으로 MCU, MPU, DSP, A/D, D/A, RAM, ROM 등의 독립 장치와 물리적 및 기능적 경계가 점점 흐려지고 있습니다. 특히 소프트/하드 IP 칩 (지적 재산권 칩; 지적재산권 핵심 (등록재산권이 있는 회로 설계) 산업이 급속히 발전하면서 임베디드 범용 및 표준 FPGA 부품이 눈에 띄면서 SOC (Slice On Communications) 가 지척에 다다랐다. 지식경제 특징을 지닌 IP 칩 산업이 부상하면서 FPGA/CPLD 는 대체불가의 지위로 업계 관계자들의 관심을 받고 있다.
2. 2. 1 FPGA/CPLD 소개
FPGA 와 CPLD 는 모두 고밀도 필드 프로그래밍 가능 논리 칩으로, 대량의 논리 기능을 단일 단일 집적 회로에 통합할 수 있으며, 그 통합은 현재 백만 문으로 발전하고 있습니다. 복잡한 프로그래밍 가능 논리 장치 CPLD 는 PAL (프로그래밍 가능 어레이 논리) 또는 GAL (범용 어레이 논리) 에서 개발되었습니다. 글로벌 금속 상호 연결을 사용하므로 지연 예측 가능성이 높고 타이밍 논리를 쉽게 제어할 수 있습니다. 그러나 전력 소비량은 비교적 크다. FPGA (Field Programmable Door Array) 는 MPGA (Programmable Door Array) 와 프로그래머블 로직 디바이스 (PGA) 에서 진화한 것으로, FPGA 는 게이트 어레이의 높은 논리적 밀도와 공통성, 프로그래머블 로직 디바이스의 사용자 프로그래밍 가능 기능을 모두 갖추고 있습니다. FPGA 는 일반적으로 어레이 주변의 프로그래밍 가능한 Ir0 유닛으로 구성된 케이블 리소스로 구분된 프로그래밍 가능한 논리 유닛 (또는 매크로 유닛) 으로 구성됩니다. 내부 자원은 세그먼트 상호 연결이므로 지연은 예측할 수 없으며 프로그래밍 후에만 측정할 수 있습니다.
CPLD 와 FPGA 사이에 내부 프로그래밍 가능한 논리적 연결을 설정하는 프로그래밍 기술에는 세 가지가 있습니다. 즉, 반퓨즈 기술을 기반으로 하는 장치는 한 번만 프로그래밍할 수 있으며 프로그래밍 후에는 수정할 수 없습니다. 그 장점은 통합도가 높고, 작동 주파수가 높고, 안정성이 뛰어나며, 전자기 복사 간섭이 강한 열악한 환경에 적합하다는 것이다. EEPROM 스토리지 기술을 기반으로 한 프로그래밍 가능한 논리 칩은 반복 가능한 프로그래밍 100 회 이상 시스템 정전 후 프로그래밍 정보가 손실되지 않습니다. 프로그래밍 방식은 프로그래머에서 프로그래밍하는 것과 다운로드 라인으로 프로그래밍하는 것으로 나뉜다. 다운로드 케이블로 프로그래밍된 부품의 경우 먼저 인쇄 회로 보드에 부품을 용접하면 PC, SUN 워크스테이션, ATE (자동 테스터) 또는 임베디드 마이크로프로세서 시스템을 통해 프로그래밍할 수 있는 표준 5V, 3.3V 또는 2.5V 논리 수평 신호를 생성할 수 있습니다. ISP (시스템 프로그래밍 가능) 프로그래밍이라고도 하며 디버깅 및 유지 관리도 매우 편리합니다. SRAM 기술을 기반으로 한 장치 프로그래밍 데이터는 장치의 RAM 영역에 저장되어 사용자 설계 기능을 제공합니다. 시스템에 전원이 들어오지 않을 때 프로그래밍 데이터는 EPROM, 하드 드라이브 또는 플로피 디스크에 저장됩니다. 시스템에 전원이 들어오면 이러한 프로그래밍 데이터가 즉시 프로그램 가능 장치에 기록되므로 보드 수준 또는 시스템 수준의 동적 구성이 가능합니다.
2.2.2 EDA 도구 기반 FPGA/CPLD 개발 프로세스.
FPGA/CPLD 개발 프로세스: 설계 초기에 설계 의도를 텍스트 (예: VHDL, Verilog-HDL 프로그램) 또는 그래픽 (구조도, 상태 다이어그램 등) 으로 표현합니다. ) EDA 도구를 사용하는 텍스트 또는 그래픽 편집기를 통해. 디자인 설명이 완료되면 컴파일러를 통해 디버깅하고 컴파일하여 특정 텍스트 형식으로 변경하여 다음 단계를 완벽하게 준비할 수 있습니다. 여기서는 대부분의 EDA 소프트웨어에서 초기 설계에 사용되는 입력 형식이 선택 사항이거나 혼합되어 있습니다. 일반적인 구조도 입력 방식은 비교적 쉽게 파악할 수 있고 직관적이고 편리하다. 그려진 회로도 (이 구조도와 PROTEL 이 그린 구조도는 본질적인 차이가 있음) 는 기존의 부품 연결 방식과 정확히 동일하여 쉽게 받아들일 수 있습니다. 또한 편집기에서 사용할 수 있는 많은 기성 장치 부품을 사용할 수 있으며 필요에 따라 구성 요소를 설계할 수 있습니다 (구성 요소의 기능은 HDL 또는 구조도로 표시할 수 있음). 물론 가장 일반적이고 일반적인 입력기 역시 HDL 프로그램의 텍스트 패턴입니다. 이 방법이 가장 흔하다. 컴파일된 파일이 표준 VHDL 파일이면 작성 전에 설명된 내용을 시뮬레이션할 수 있습니다. 이를 동작 시뮬레이션이라고 합니다. 디자인 된 소스 프로그램을 시뮬레이션을 위해 VHDL 시뮬레이터로 직접 보내는 것입니다. 이 시점에서 시뮬레이션은 VHDL 기반 의미일 뿐 특정 회로와는 관계가 없기 때문입니다. 시뮬레이션에서는 시뮬레이션 제어에 적합한 VHDL 의 문을 최대한 활용할 수 있습니다. 대규모 회로 시스템 설계에는 이 시뮬레이션 프로세스가 필요하지만 일반적으로 이 단계는 생략할 수 있습니다.
그림 2-2 FPGA/CPLD 개발 프로세스
설계의 세 번째 단계는 소프트웨어 설계와 하드웨어 구현을 종합적으로 연결하는 것입니다. 소프트웨어를 하드웨어 회로로 변환하는 핵심 단계입니다. 합성기는 FPGA/CPLD 공급업체의 제품군에 대한 소스 파일을 합성하므로 합성 결과는 하드웨어에서 얻을 수 있습니다. 종합 후 HDL 합성기는 일반적으로 EDIF, XNF 또는 VHDL 형식의 네트워크 테이블 파일을 생성하여 문 수준에서 가장 기본적인 문 구조를 설명합니다. 일부 EDA 소프트웨어에는 디자이너가 사용할 수 있도록 네트 테이블 파일을 다양한 레벨의 회로 다이어그램으로 그리는 기능이 있습니다. 결합된 결과 메쉬 테이블 파일을 기능 시뮬레이션에 사용하여 설계 설명과 설계 의도의 일관성을 이해할 수 있습니다. 기능 시뮬레이션은 설계에 설명된 논리적 기능만 테스트하고 시뮬레이션하여 구현된 기능이 원래 설계의 요구 사항을 충족하는지 확인합니다. 시뮬레이션 프로세스에는 지연 특성과 같은 특정 부품의 하드웨어 특성이 포함되지 않습니다. 일반적인 디자인, 이 수준의 시뮬레이션도 생략할 수 있습니다. 통합 후 FPGA/CPLD 레이아웃/케이블 연결 어댑터를 사용하여 통합 네트워크 테이블 파일 논리를 기본 구성, 논리적 분할, 논리적 최적화, 레이아웃 및 케이블 연결을 포함한 특정 대상 장치에 매핑해야 합니다. 적응이 완료되면 EDA 소프트웨어는 해당 설계에 대해 여러 가지 결과를 생성합니다. 1 맞춤 보고서: 칩의 리소스 할당 및 활용, 핀 잠금, 설계된 부울 방정식 설명 등이 포함됩니다. 2 타이밍 시뮬레이션 네트워크 테이블 파일; 3 JED 또는 POF 파일과 같은 파일 다운로드; 4 적응 오류 보고 등. 타이밍 시뮬레이션은 실제 부품 작동에 가까운 시뮬레이션으로, 시뮬레이션 중에 부품의 하드웨어 특성을 고려하므로 시뮬레이션 정확도가 훨씬 높습니다. 타이밍 시뮬레이션의 네트워크 테이블 파일에는 보다 정확한 지연 정보가 포함되어 있습니다. 컴파일, 통합, 케이블 연결/적응 및 동작 시뮬레이션, 기능 시뮬레이션, 타이밍 시뮬레이션 등 위의 모든 프로세스가 원래 설계의 요구 사항을 충족하는 문제를 발견하지 못한 경우 FPGA/CPLD 프로그래머 또는 다운로드 라인을 통해 어댑터에서 생성된 구성/다운로드 파일을 대상 칩 FPGA 또는 CPLD 로 로드한 다음 그림으로 들어갈 수 있습니다. 여기서 소위 하드웨어 시뮬레이션은 ASIC 용으로 설계되었습니다. ASIC 설계에서 일반적으로 사용되는 방법은 FPGA 를 사용하여 시스템 설계의 기능을 테스트한 다음 ASIC 형식으로 VHDL 설계를 구현하는 것입니다. 하드웨어 테스트는 회로 시스템 테스트에서 FPGA 또는 CPLD 를 직접 적용하는 것입니다.
2.2.3 FPGA/CPLD 로 개발한 장단점
EMC 는 EDA 기술을 기반으로 한 FPGA/CPLD 장치의 개발과 적용이 MCU 에서 발생하는 문제를 근본적으로 해결할 수 있다고 믿습니다. FPGA/CPLD 의 장점은 MCU 에 비해 다양하고 기본적인 장점입니다.
1. 프로그래밍 모드는 간단하고 진보적입니다. FPGA/CPLD 제품은 점점 더 고급 IEEE1149.1BST (boundary scan test) 기술 (JTAG 개발) 과 ISP 를 채택하고 있습니다 +5V 의 작업 레벨에서 언제든지 작업 시스템의 FPGA/CPLD 를 전체적으로 또는 부분적으로 프로그래밍할 수 있으며, 이른바 국화 체인 멀티칩 직렬 프로그래밍을 할 수 있습니다. SRAM 구조의 FPGA 의 경우 다운로드 프로그래밍 횟수에 제한이 거의 없습니다 (예: Altera 의 FLEXI 10K 시리즈). 이 프로그래밍 방법은 적외선 프로그래밍, 초음파 프로그래밍 또는 무선 프로그래밍 또는 전화선을 통한 원격 온라인 프로그래밍을 쉽게 수행할 수 있습니다. 이러한 기능은 산업 통제, 지능형 계기, 통신 및 군사적으로 특별한 용도로 사용됩니다.
2. 고속. FPGA/CPLD 의 클럭 지연은 나노초 수준에 이를 수 있습니다. 병렬 작업 모드와 함께 초고속 애플리케이션 및 실시간 측정 및 제어에 대한 광범위한 애플리케이션 전망을 제공합니다.
3. 신뢰성이 높습니다. 신뢰성이 높은 응용 분야에서 단일 칩 마이크로 컴퓨터의 단점은 FPGA/CPLD 응용 프로그램에 많은 공간을 남겼습니다. FPGA/CPLD 의 높은 신뢰성은 MCU 리셋의 불안정성, PC 편차 등의 고유 결함 외에도 거의 전체 시스템을 동일한 칩에 다운로드할 수 있어 부피를 크게 줄여 관리 및 마스킹이 용이합니다.
개발 도구 및 디자인 언어 표준화, 개발 주기가 짧습니다. FPGA/CPLD 의 통합 규모가 매우 크기 때문에 통합 정도는 백만 문에 달할 수 있습니다. 따라서 FPGA/ CPLD 의 설계 및 개발은 강력한 EDA 도구를 사용하여 VHDL 또는 Verilog-HDL 과 같은 국제 표준 호환 하드웨어 설명 언어를 통해 전자 시스템을 설계하고 제품을 개발해야 합니다. 개발 도구의 공통성, 설계 언어 및 설계 프로세스의 표준화로 인해 사용되는 FPGA/ CPLD 장치의 하드웨어 구조와 거의 무관합니다.
따라서 성공적으로 설계된 다양한 논리적 기능 블록 소프트웨어는 호환성과 이식성이 뛰어나 거의 모든 유형의 FPGA/ CPLD 에서 사용할 수 있으며 지적 재산권 확인을 통해 소위 IP 칩으로 등록할 수 있습니다. 따라서 온칩 시스템의 제품 설계 효율성이 크게 향상됩니다. 해당 EDA 소프트웨어는 완벽하고 강력한 기능, 편리한 실시간 시뮬레이션 모드, 생동감 있고 직관적인 개발 프로세스, 관련된 하드웨어 요소가 적기 때문에 단시간에 매우 복잡한 시스템 설계를 완료할 수 있습니다. 이는 제품이 시장에 빠르게 진입하는 가장 가치 있는 특징입니다. 미국 TI 는 ASIC 의 기능 중 80% 가 IP 칩 등 기성품 논리로 합성될 수 있다고 보고 있다. EDA 전문가들은 향후 대규모 시스템의 FPGA/CPLD 설계는 다양한 재사용 논리와 IP 칩의 조립일 뿐이며, 설계 주기는 최소 몇 분 정도 걸릴 것으로 전망했다.
5. 강력하고 널리 사용됩니다. 현재 FPGA/ CPLD 는 다양한 애플리케이션에 따라 다양한 용량의 칩을 선택할 수 있는 선택의 폭이 넓다. 이를 사용하여 거의 모든 형태의 디지털 회로 또는 디지털 시스템을 설계할 수 있습니다. 이러한 부품의 광범위한 적용과 비용이 크게 감소함에 따라 시스템에서 FPGA/CPLD 의 직접 적용률이 ASIC 의 발전에 근접하고 있습니다. 또한 FPGA/CPLD 의 설계 방법에는 한계가 있습니다. 이것은 주로 다음 사항에 반영됩니다.
(1). 일반 FPGA/CPLD 설계 소프트웨어는 회로 최적화를 위한 논리가 필요합니다 ((논리 합성 & amp;; 최적화) 를 통해 쉽게 달성할 수 있는 결과를 얻을 수 있으므로 최종 설계와 원래 설계 간에 논리적 구현과 지연에 약간의 차이가 있습니다. 따라서 기존 설계 방법에 자주 사용되는 일부 회로 형식 (특히 비동기 순차 회로) 은 FPGA/CPLD 설계 방법에 적합하지 않습니다. 이를 위해서는 디자이너가 최적의 설계를 얻기 위해 FPGA/CPLD 설계 소프트웨어의 특징을 더 잘 이해해야 합니다.
(2) FPGA 는 일반적으로 조회 테이블 (LUT) 구조 (Xilinx), AND-OR 구조 (Altera) 또는 재사용기 구조 (Actel) 를 사용합니다. 이러한 구조의 장점은 프로그래밍 가능이며, 지연이 너무 커서 원래 설계에서 동기화 신호 사이의 타이밍 오프셋이 발생한다는 단점이 있습니다. 동시에 회로가 크면 분할 구현이 필요합니다. 내보내기의 지연 시간으로 인해 지연 시간과 타이밍 오프셋이 더 커집니다. 시간 지연은 ASIC 설계의 일반적인 문제입니다. 특히 FPGA/CPLD 와 같은 프로그래밍 가능한 논리에서는 회로의 지연을 정확하게 제어하기가 매우 어렵습니다.
(3)FPGA/CPLD 의 용량과 I/O 수가 제한되어 있습니다. 따라서 하나의 큰 회로는 논리적으로 분할해야 여러 FPGA/CPLD 칩에 의해 구현될 수 있으며, 분할 알고리즘의 좋고 나쁨은 설계 성능에 직접적인 영향을 미칩니다.
(4) 대상 시스템 PCB 수정 비용이 높기 때문에 일반적으로 지시선 분포가 고정된 상태에서 회로를 수정하고자 합니다. 그러나 칩 활용도가 증가하거나 칩에 많은 입출력 터미널이 있을 경우 작은 수정으로 칩 유통률이 떨어지는 경우가 많습니다.
(5) 초기 FPGA 칩은 메모리, 아날로그 회로 등 일부 특수 회로를 구현할 수 없었다. 일부 최신 FPGA 제품에는 범용 RAM 구조가 통합되어 있습니다. 그러나, 이 구조는 비효율적이거나 디자이너의 요구를 완전히 충족시키지 못한다. 이 모순은 FPGA 자체의 구조적 제약에서 비롯되어 단기간에 해결하기 어렵다.
6. FPGA 는 ASIC 설계의 하드웨어 시뮬레이션을 구현했지만 FPGA 의 지연 특성이 기존 도어 배열, 표준 단위 등의 ASIC 형식과 다르기 때문에 FPGA 설계를 다른 ASIC 설계로 전환할 때 지연 불일치로 인해 설계가 실패할 가능성이 있습니다. 이 문제를 해결하기 위해 FPGA 어레이를 사용하는 ASIC 하드웨어 에뮬레이션 시스템 (예: Quicktum 의 하드웨어 에뮬레이션 시스템) 이 국제적으로 등장했습니다. 이 전용 하드웨어 시뮬레이션 시스템은 하드웨어 및 소프트웨어를 결합하여 FPGA 어레이를 사용하여 ASIC 의 신속한 프로토타입을 구현하고 테스트를 위해 시스템에 연결합니다. 이 시스템은 지정된 테스트 지점을 수용할 수 있으며 소프트웨어 시뮬레이션에서처럼 FPGA 어레이에서 직접 관찰할 수 있으므로 시뮬레이션의 정확도와 효율성이 크게 향상됩니다.
2.3 하드웨어 설명 언어
하드웨어 설명 언어 (HDL) 는 C, Pascal 과 같은 범용 컴퓨터 소프트웨어 언어와 대조됩니다. HDL 은 하드웨어 전자 시스템을 설계하는 데 사용되는 컴퓨터 언어로, 전자 시스템의 논리적 기능, 회로 구조 및 연결 방법을 설명합니다. 설계자는 HDL 프로그램을 사용하여 필요한 회로 시스템을 설명하고 구조적 특성과 회로 동작을 지정할 수 있습니다. 그런 다음 합성기와 어댑터를 사용하여 이 프로그램을 문급 이하의 구조화 네트워크 테이블 파일 및 다운로드 파일로 변경하여 FPGA 및 CPLD 의 내부 구조를 제어하여 해당 논리 기능을 구현할 수 있습니다. 하드웨어 설명 언어에는 다음과 같은 장점이 있습니다. A. 설계 기술이 완벽하고, 방법이 유연하며, 지원이 광범위합니다. B, 하드웨어 회로의 설계 주기를 가속화하고 하드웨어 회로의 설계 난이도를 줄입니다. C. 초기 시스템 시뮬레이션을 통해 초기 시스템 설계에서 기존 문제를 발견하고 제거할 수 있습니다. 언어 디자인은 프로세스 기술과 독립적 일 수 있습니다. E. * * * * 와 쉽게 공유하고 재사용할 수 있는 언어 표준, 사양. FPGA/CPLD 의 발전에 있어서 VHDL 언어는 가장 널리 사용되는 하드웨어 설명 언어 중 하나입니다. 이번 디자인은 VHDL 언어를 선택하는데, 다음은 주로 VHDL 언어를 소개합니다.
2.3. 1 VHDL 언어 소개
VHDL 은 초고속 집적 회로 하드웨어 설명 언어 영어 접두사의 약어이며, 영어 전체 이름은 초고속 집적 회로 하드웨어 설명 언어입니다. 미국 국방부가 1970 ~ 80 년대에 지원한 VHSIC (초고속 집적 회로) 프로젝트에 의해 개발되었으며 1982 에서 태어났습니다. 1987 년 말, VHDL 은 IEEE (Electronic Electronics Engineer Association) 에서 표준 하드웨어 설명 언어로 인정했습니다. IEEE 가 VHDL 의 표준 버전 (IEEE STD 1076- 1987 표준) 을 발표한 이후 각 EDA 회사는 자체 VHDL 설계 환경을 잇따라 출시했습니다. 이후 VHDL 은 전자 설계 분야에서 널리 받아들여지고 최초의 비표준 HDL 을 점차 대체했습니다. 1993 년 IEEE 는 VHDL 을 개정하고, 더 높은 추상화 수준과 시스템 설명 능력에서 VHDL 의 내용을 확장하고, VHDL 의 새 버전인 ANSI/IEEE STD 1076 을 발표했습니다 1996 IEEE 1076.3 은 VHDL 의 종합 표준이 되었습니다.
VHDL 은 주로 디지털 시스템의 구조, 동작, 기능 및 인터페이스를 설명하는 데 사용되며 프로그래밍 가능한 논리 칩의 응용 프로그램 설계에 적합합니다. VHDL 은 다른 HDL 보다 더 강력한 동작 설명 기능을 갖추고 있어 시스템 설계 분야에서 최고의 하드웨어 설명 언어가 됩니다. 강력한 동작 설명 기능은 특정 장치 구조 없이 논리적 동작에서 대규모 전자 시스템을 설명하고 설계하는 중요한 보증입니다. 현재 유행하는 EDA 도구와 VHDL 합성기의 경우 추상적인 행동 설명 스타일에 기반한 VHDL 프로그램을 FPGA, CPLD 등의 대상 장치에 통합하는 구체적인 네트워크 테이블 파일은 더 이상 문제가 되지 않습니다.
하드웨어 설계에서 VHDL 언어는 소프트웨어 설계에서 C 및 C++ 와 같은 역할을 합니다. 대형 디지털 시스템 설계에서는 논리 상태 테이블, 논리 회로도 등 저급하고 번거로운 하드웨어 설명 방법을 점차 대체하여 주요 하드웨어 설명 도구가 됩니다. 모든 디지털 시스템 설계 분야의 기술자가 반드시 익혀야 하는 언어가 될 것이다. VHDL 과 프로그래밍 가능한 논리 장치의 결합은 디자이너의 제품을 시장에 출시하는 데 기록적인 속도를 제공하는 강력한 설계 방법입니다.
2.3.2 VHDL 언어 설계 단계
VHDL 언어를 사용한 설계는 다음 단계로 나눌 수 있습니다.
1. 설계 요구 사항 정의. VHDL 코드를 설계하고 작성하기 전에 설계 목적과 요구 사항을 명확하게 이해해야 합니다. 예를 들어, 디자인하고 싶은 기능은 무엇입니까? 필요한 신호 생성 시간, 클럭/출력 시간, 최대 시스템 작동 주파수, 중요 경로 등에 대한 명확한 정의 디자인에 도움이 될 것이며, 적절한 설계 방법과 그에 상응하는 부품 구조를 선택하여 설계를 종합할 수 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 디자인명언)
2. VHDL 언어를 사용하여 설계를 설명합니다.
(1) 설계 방법을 결정해야 합니다. 일반적으로 하향식 설계, 상향식 설계 및 평평한 설계의 세 가지 설계 방법이 있습니다.
처음 두 가지 방법에는 설계 계층 생성이 포함되며, 다른 방법은 설명된 회로를 단일 모듈 회로로 간주합니다. 하향식 접근 방식을 사용하려면 설계를 각각 특별히 정의된 입력과 출력이 있는 기능 구성 요소로 나누고 특수 논리 기능을 수행해야 합니다. 먼저 기능 컴포넌트 상호 연결로 구성된 최상위 모듈을 생성하여 네트 테이블을 만든 다음 각 컴포넌트를 설계합니다. 바닥에서 위로 올라가는 방법은 정반대다. 평평한 설계란 모든 기능 구성요소가 동일한 바닥, 동일한 도면에서 상세하게 설계된다는 의미입니다.
(2) 설계 코드를 작성합니다. VHDL 코드를 작성하는 것은 다른 컴퓨터 프로그래밍 언어로 코드를 작성하는 것과는 매우 다릅니다. 하드웨어를 설계하고 있으며, 작성된 VHDL 코드는 프로그래밍 가능한 논리 장치 구현의 디지털 논리에 통합될 수 있어야 합니다. EDA 도구에서 시뮬레이션 소프트웨어 및 통합 소프트웨어의 일반적인 워크플로우를 이해하면 우수한 코드를 작성하는 데 도움이 됩니다.
3. VHDL 시뮬레이터를 사용하여 VHDL 소스 코드의 기능을 시뮬레이션합니다. 대규모 설계의 경우 VHDL 시뮬레이션 소프트웨어를 사용하여 시뮬레이션하면 시간을 절약할 수 있으며 설계 초기에 설계 오류를 찾아 설계 진행에 미치는 영향을 최소화할 수 있습니다. 대규모 설계의 경우 통합 최적화 및 구성에 몇 시간이 걸리는 경우가 많기 때문입니다. 종합하기 전에 원본 코드를 시뮬레이션하면 설계 반복 및 오류 수정 횟수와 시간을 크게 줄일 수 있습니다. 그러나 소형 디자인의 경우 원본 VHDL 코드를 먼저 시뮬레이션할 필요가 없는 경우가 많으며, 설령 해도 의미가 크지 않습니다. 소규모 설계에서는 전체 최적화 및 구성에 시간이 거의 걸리지 않지만, 전체 최적화 후에는 성능 목표를 달성하기 위해 설계를 수정해야 한다는 것을 알게 될 수 있습니다. (데이비드 아셀, Northern Exposure (미국 TV 드라마), 예술명언) 이 경우 사용자가 미리 시간을 보내는 것은 원래 코드 시뮬레이션에서 의미가 없습니다. 설계를 변경하면 시뮬레이션을 다시 해야 하기 때문입니다.
4. VHDL 종합 최적화 소프트웨어를 이용하여 원본 VHDL 코드를 종합적으로 최적화합니다. 대상 장치를 선택하고 제약 조건을 입력하면 VHDL 통합 최적화 소프트웨어 도구가 VHDL 원본 코드를 처리하고 최적화된 네트워크 테이블을 생성하여 대략적인 시간 시뮬레이션을 수행합니다. 종합적인 최적화 소프트웨어 도구의 일반적인 처리 프로세스는 다음과 같습니다. 먼저 구문 및 의미 오류를 감지합니다. 그런 다음 통합 처리를 통해 CPLD 부품에 대해 특정 프로세스의 논리 방정식 세트를 가져오고 FPGA 부품에 대해 특정 프로세스의 네트워크 테이블을 얻습니다. 마지막으로 최적화합니다. CPLD 최적화에는 일반적으로 논리를 최소 곱 항목으로 단순화하고 지정된 표현식에 필요한 논리 블록 입력 수를 줄이는 작업이 포함됩니다. 이러한 방정식은 자원 할당을 위해 장치에 의해 더욱 최적화됩니다. FPGA 최적화는 일반적으로 제품 항목의 합으로 논리를 나타내야 합니다. 장치별 자원 및 최적화 목표를 구동하는 지침에 따라 방정식 시스템을 분해할 수 있습니다. 분해 요소는 구현의 유효성을 평가하는 데 사용할 수 있으며, 기준은 다른 프로그램 시스템을 다르게 분할할지 아니면 기존 요소를 보존할지 결정하는 데 사용할 수 있습니다. Criterion 은 일반적으로 동일한 계수를 공유하는 기능을 말합니다. 즉, 새로 생성된 계수와 비교하기 위해 임시로 저장할 수 있습니다.
5. 구성. 종합 최적화 후 얻은 최적화 네트워크 테이블은 이전에 선택한 CPLD 또는 FPGA 대상 장치에 배치됩니다. 이 과정을 구성이라고 합니다. 최적화 중