하드웨어 설명 언어
Hardware description language![]() |
컴퓨터 공학에서 하드웨어 기술 언어(HDL)는 전자 회로, 그리고 가장 일반적으로 디지털 논리 회로의 구조와 동작을 기술하는 데 사용되는 특수 컴퓨터 언어입니다.
하드웨어 기술 언어를 사용하면 전자회로를 정밀하고 형식적으로 기술할 수 있으므로 전자회로의 자동 분석 및 시뮬레이션을 할 수 있습니다.또한 HDL 기술을 넷리스트(물리 전자 부품의 사양 및 그것들이 어떻게 연결되어 있는지)로 합성할 수 있으며, 넷리스트는 배치 및 라우팅되어 집적회로를 만드는 데 사용되는 마스크 세트를 생성할 수 있습니다.
하드웨어 기술 언어는 C 또는 ALGOL과 같은 프로그래밍 언어와 매우 유사하며 표현식, 문 및 제어 구조로 구성된 텍스트 기술입니다.대부분의 프로그래밍 언어와 HDL의 한 가지 중요한 차이점은 HDL에 시간 개념이 포함되어 있다는 것입니다.
HDL은 특히 애플리케이션 고유의 집적회로, 마이크로프로세서, 프로그래머블 로직 디바이스와 같은 복잡한 회로에 대한 전자 설계 자동화(EDA) 시스템의 필수적인 부분을 구성합니다.
동기
1970년대 이후 디지털 전자 회로의 폭발적인 복잡성으로 인해(무어의 법칙 참조), 회로 설계자들은 ECL, TTL 또는 CMOS와 같은 특정 전자 기술에 얽매이지 않고 높은 수준에서 디지털 로직 기술을 수행해야 했습니다. HDL은 DAT 모델인 레지스터-전송 레벨 추상화를 구현하기 위해 만들어졌습니다.회로의 [1]흐름과 타이밍
VHDL과 Verilog의 두 가지 주요 하드웨어 기술 언어가 있습니다.데이터 흐름, 행동 및 구조 등 다양한 유형의 설명이 있습니다.VHDL의 데이터 흐름 예:
도서관 IEEE; 사용하다 IEEE.STD_LOGIC_1164모든.; 독립체 안 돼 있지 않다1 IS 항구( a : 입력 STD_Logic; b : 나가. STD_Logic; ); 끝. 안 돼 있지 않다1; 아키텍처 동작의 의 안 돼 있지 않다1 IS 시작한다. b <=> 것은 아니다. a; 끝. 동작의;
HDL 구조
HDL은 전자 시스템의 구조와 시간 경과에 따른 동작에 대한 표준 텍스트 기반 표현입니다.동시 프로그래밍 언어와 마찬가지로 HDL 구문 및 의미론에는 동시성을 표현하기 위한 명시적 표기가 포함됩니다.그러나 대부분의 소프트웨어 프로그래밍 언어와 달리 HDL에는 하드웨어의 주요 속성인 시간 개념이 포함되어 있습니다.블록 계층 간의 회로 접속성을 표현하는 것이 유일한 특징인 언어는 전기 컴퓨터 지원 설계에 사용되는 넷리스트 언어로 적절히 분류된다.HDL은 동일한 회로 기능에 대한 구조, 행동 또는 레지스터 전송 수준의 아키텍처에서 설계를 표현하기 위해 사용할 수 있습니다. 후자의 경우 신시사이저가 아키텍처와 논리 게이트 레이아웃을 결정합니다.
HDL은 하드웨어의 실행 가능한 사양을 기술하기 위해 사용됩니다.언어 스테이트먼트의 기본 의미론을 구현하고 시간의 경과를 시뮬레이션하도록 설계된 프로그램은 하드웨어 설계자에게 하드웨어가 물리적으로 생성되기 전에 이를 모델링할 수 있는 능력을 제공합니다.HDL이 보다 정확하게 사양 언어 또는 모델링 언어로 분류될 때 HDL이 프로그래밍 언어로 착각하게 하는 것은 바로 이 실행 기능입니다.이산 이벤트(디지털) 및 연속 시간(아날로그) 모델링을 지원할 수 있는 시뮬레이터가 존재하며, 각각을 대상으로 하는 HDL을 사용할 수 있습니다.
제어 흐름 언어와의 비교
C++와 같은 전통적인 프로그래밍 언어를 사용하여 하드웨어 시멘틱스를 나타낼 수 있습니다.C++는 데이터 흐름과 반대로 제어 흐름 시멘틱스에서 동작하지만, 그렇게 기능하기 위해서는 프로그램이 광범위하고 다루기 어려운 클래스 라이브러리로 증강되어야 합니다.그러나 일반적으로 소프트웨어 프로그래밍 언어에는 시간을 명시적으로 표현하는 기능이 포함되어 있지 않기 때문에 하드웨어 기술 언어로서 기능할 수 없습니다.2002년 System Verilog가 도입되기 전에 C++와 논리 시뮬레이터의 통합은 하드웨어 검증에서 객체 지향 프로그래밍을 사용하는 몇 안 되는 방법 중 하나였다.System Verilog는 객체 지향 및 가비지 수집을 제공하는 최초의 주요 HDL입니다.
하드웨어 기술 언어의 적절한 서브셋을 사용하여 신시사이저 또는 논리 합성 도구라고 불리는 프로그램은 언어 문장에서 하드웨어 논리 연산을 추론할 수 있으며 [citation needed]지정된 동작을 구현하기 위해 범용 하드웨어[jargon] 프리미티브의 동등한 넷 리스트를 생성할 수 있습니다.신시사이저는 일반적으로 텍스트의 타이밍 구성 식을 무시합니다.예를 들어 디지털 로직 신시사이저는 일반적으로 클럭 에지를 회선의 타이밍으로 사용하여 타이밍 구성을 무시합니다.합성 가능한 언어의 서브셋을 가지는 것 자체가 하드웨어 기술 언어를 만드는 것은 아닙니다.
역사
최초의 하드웨어 기술 언어가 등장한 것은 1960년대 후반으로, 보다 전통적인 [2]언어처럼 보입니다.첫 번째 지속적인 효과는 1971년 C에서 설명되었다. Gordon Bell과 Allen Newell의 텍스트 Computer Structures.[3]이 텍스트에서는 Digital Equipment Corporation(DEC) PDP-8의 [4]동작을 설명하기 위해 ISP 언어로 최초로 사용되는 레지스터 전송 수준의 개념을 소개합니다.
이 언어는 DEC의 PDP-16 RT-Level Module(RTM; RDP-16 RT-Level Module)과 [5]그 사용을 설명하는 책이 소개되면서 더욱 널리 보급되었습니다.그 후,[6][7] 적어도 2개의 기본 ISP 언어(ISPL 및 ISPS)가 실장되었습니다.ISPS는 설계의 입력과 출력 간의 관계를 기술하는 데 매우 적합했으며, DEC의 상업 팀 및 미국과 NATO 동맹국 모두의 다수의 연구 팀에 의해 빠르게 채택되었다.
RTM 제품은 상업적으로 성공하지 못했으며, 새로운 기술, 특히 대규모 통합(VLSI)이 보급됨에 따라 DEC는 1980년대 중반부터 마케팅을 중단했습니다.
1979년경 카이저슬라우테른 대학에서 수행된 개별 작업은 KARL(KAiserslautern Register Transfer Language)이라는 언어를 생산했으며, 여기에는 VLSI 칩 평면도와[jargon] 구조화된 하드웨어 설계를 지원하는 설계 미적분 언어 특징이 포함되어 있습니다.이 작업은 또한 KARL의 인터랙티브 그래픽 자매 언어 ABL의 기초가 되었으며, 그 이름은 "A Block diagram Language"[8]의 이니셜리즘이었다.ABL은 1980년대 초 이탈리아 토리노에 있는 Centro Studi e Laboratori Telecomunicazioni(CSELT)에 의해 구현되어 ABLED 그래픽 VLSI 디자인 에디터를 생산했습니다.1980년대 중반, 유럽 [9]연합 위원회의 자금 지원을 받는 국제 컨소시엄에 의해 KARL과 ABL 주위에 VLSI 설계 프레임워크가 구현되었다.
1970년대 후반에는 PLD(Programmable Logic Device)를 사용한 설계가 인기를 끌었지만, 이러한 설계는 주로 유한 상태 기계 설계에만 국한되었습니다.1980년 Data General의 작업에서는 이와 동일한 장치를 사용하여 Data General Eclipse MV/8000을 설계했으며, 이러한 장치에 잘 매핑되는 언어에 대한 상업적 필요성이 증가하기 시작했습니다.1983년까지 데이터 I/O는 이러한 요구를 충족시키기 위해 ABEL을 도입했습니다.
1985년 설계가 VLSI로 이행함에 따라 Gateway Design Automation은 Verilog를 도입하고 Intermetrics는 VHSIC Hardware Description Language(VHDL)의 첫 번째 완성된 버전을 출시했습니다.VHDL은 미국 국방부의 지시에 따라 개발되었으며, 이 프로그램에 기반했습니다.ISPS의 [10]초기 개발로 얻을 수 있었습니다.처음에 Verilog와 VHDL은 이미 캡처되어 다른 형식(예: 개략도 파일)으로 기술된 회로 설계를 문서화하고 시뮬레이션하기 위해 사용되었습니다.HDL 시뮬레이션을 통해 엔지니어는 도식 수준에서 시뮬레이션보다 더 높은 수준의 추상화 작업을 수행할 수 있었고, 따라서 설계 용량을 수백 개의 트랜지스터에서 [citation needed]수천 개로 늘렸습니다.1986년 미국 국방부의 지원을 받아 VHDL은 IEEE 표준(IEEE 규격 1076)으로 후원되었으며, 1987년 12월 IEEE 규격의 첫 번째 버전인 IEEE 규격 1076-1987이 승인되었습니다.이후 Cadence Design Systems는 향후 10년간 Verilog 시뮬레이터의 사실상의 표준이 될 HDL 시뮬레이터인 Verilog-XL에 대한 권리를 위해 Gateway Design Automation을 인수했습니다.
HDL을 위한 논리 합성의 도입은 HDL을 배경에서 디지털 디자인의 선두로 밀어냈다.합성 툴은 HDL 소스 파일(RTL이라고 불리는 제한된 형식으로 작성)을 게이트 및 트랜지스터 측면에서 제조 가능한 넷리스트 설명으로 컴파일했습니다.합성 가능한 RTL 파일을 작성하려면 설계자의 연습과 훈련이 필요했습니다. 기존 설계도에 비해 합성된 RTL 넷리스트는 거의 항상 면적이 넓고 성능이[citation needed] 느렸습니다.숙련된 엔지니어가 설계한 회로는 노동 집약적인 개략도 캡처/핸드 레이아웃을 사용하여 논리적으로 동기화된 동등한 성능을 거의 항상 능가하지만, 곧 합성에 의해 디지털 개략도 캡처가 RTL 합성에 문제가 있는 영역(초고속, 저전력)으로 대체되었습니다.또는 비동기 회선.
몇 년 만에 VHDL과 Verilog는 전자 업계에서 지배적인 HDL로 부상한 반면, 오래되고 성능이 떨어지는 HDL은 점차 사용되지 않게 되었습니다.단, VHDL과 Verilog는 아날로그 또는 혼합 신호 회선 시뮬레이션에 적합하지 않은 등 많은 동일한 제한을 공유합니다.Verilog 및 VHDL의 특정 제한을 수정한다는 명확한 목표를 가지고 특수 HDL(Conversence 등)이 도입되었지만 이를 대체하려는 의도는 없었습니다.
수년간 HDL 개선에 많은 노력을 기울여 왔습니다.공식적으로 IEEE 1800-2005 SystemVerilog로 알려진 Verilog의 최신 반복에서는 더 나은 테스트 벤치 랜덤화, 설계 계층화 및 재사용에 대한 증가하는 요구에 대응하기 위해 많은 새로운 기능(클래스, 랜덤 변수 및 속성/어설)이 도입되었습니다.VHDL의 향후 리비전도 개발 중이며[when?] SystemVerilog의 개선 사항에 필적할 것으로 예상됩니다.
HDL을 사용한 설계
HDL을 사용한 효율 향상으로 인해 현대 디지털 회로 설계의 대부분은 HDL을 중심으로 진행됩니다.대부분의 설계는 일련의 요구사항 또는 높은 수준의 아키텍처 다이어그램에서 시작됩니다.제어 및 의사결정 구조는 흐름도 애플리케이션에서 프로토타입으로 제작되거나 상태 다이어그램 편집기에 입력되는 경우가 많습니다.HDL 설명을 작성하는 프로세스는 회로의 특성과 코딩 스타일에 대한 설계자의 선호도에 따라 크게 달라집니다.HDL은 단순히 '캡처 언어'일 뿐이며, 종종 C++ 수학 모델과 같은 높은 수준의 알고리즘 설명으로 시작합니다.설계자는 많은 경우 Perl 등의 스크립트 언어를 사용하여 HDL 언어로 반복 회선 구조를 자동으로 생성합니다.특수 텍스트 편집기는 엔티티/아키텍처/신호 선언의 자동 들여쓰기, 구문 의존 색상 지정 및 매크로 기반 확장을 위한 기능을 제공합니다.
그 후 HDL 코드는 코드 리뷰 또는 감사를 받습니다.합성에 대비하여 HDL 기술은 일련의 자동 체커를 따릅니다.체커는 표준화된 코드 가이드라인에서 벗어난 내용을 보고하고, 잘못된 해석을 일으키기 전에 모호한 코드구조를 식별하고, 플로팅 포트나 쇼트 출력 등의 일반적인 논리 코딩 오류를 확인합니다.이 프로세스는 코드가 합성되기 전에 오류를 해결하는 데 도움이 됩니다.
업계 용어로는 HDL 설계는 일반적으로 합성 단계에서 종료됩니다.합성 툴이 HDL 기술을 게이트 넷리스트에 매핑하면 넷리스트는 백엔드 스테이지로 넘어갑니다.물리 테크놀로지(FPGA, ASIC 게이트 어레이, ASIC 표준 셀)에 따라서는 HDL이 백엔드 흐름에서 중요한 역할을 할 수도 있고 그렇지 않을 수도 있습니다.일반적으로 설계 플로우가 물리적으로 실현 가능한 형태로 진행됨에 따라 설계 데이터베이스에는 일반적인 HDL 설명에 저장할 수 없는 기술 고유의 정보가 점점 더 많이 추가된다.마지막으로 집적회로를 제조 또는 프로그램하여 사용한다.
HDL 코드 시뮬레이션 및 디버깅
HDL 설계에 필수적인 것은 HDL 프로그램을 시뮬레이트하는 기능입니다.시뮬레이션을 통해 설계(모델이라고 함)의 HDL 기술이 설계 검증을 통과할 수 있습니다. 이는 HDL 설명의 코드 구현에 대해 설계의 의도된 기능(사양)을 검증하는 중요한 이정표입니다.그것은 또한 건축 탐사를 가능하게 한다.엔지니어는 기본 설계의 여러 변형을 작성한 다음 시뮬레이션에서 이들의 동작을 비교하여 설계 선택을 실험할 수 있습니다.따라서 HDL 설계를 성공시키기 위해서는 시뮬레이션이 매우 중요합니다.
HDL 모델을 시뮬레이션하기 위해 엔지니어가 최상위 시뮬레이션 환경(테스트 벤치라고 함)을 작성합니다.테스트벤치에는 적어도 모델의 인스턴스화(테스트 대상 장치 또는 DUT라고 함), 모델의 I/O에 대한 핀/신호 선언 및 클럭 파형이 포함됩니다.테스트벤치 코드는 이벤트 기반입니다. 엔지니어는 HDL 문을 작성하여 (테스트벤치 생성) 재설정 신호를 구현하고, 인터페이스 트랜잭션(호스트 버스 읽기/쓰기 등)을 모델링하고, DUT 출력을 모니터링합니다.테스트벤치를 실행하는 프로그램인 HDL 시뮬레이터는 테스트벤치 시뮬레이션의 모든 이벤트에 대한 마스터 레퍼런스인 시뮬레이터 클럭을 유지합니다.이벤트는 테스트벤치 HDL에 의해 지시된 인스턴스(테스트벤치에 코드화된 재설정-토글 등) 또는 자극 및 트리거 이벤트에 대한 반응(모델에 의해)에서만 발생한다.최신 HDL 시뮬레이터는 풀기능의 그래피컬 사용자 인터페이스를 갖추고 있으며 디버깅툴 스위트를 갖추고 있습니다.이를 통해 사용자는 언제든지 시뮬레이션을 중지 및 재시작하고 시뮬레이터 중단점(HDL 코드와 무관)을 삽입하고 HDL 모델 계층의 요소를 모니터링 또는 수정할 수 있습니다.최신 시뮬레이터는 정의된 PLI/VHPI 인터페이스를 통해 HDL 환경을 사용자 컴파일 라이브러리에 연결할 수도 있습니다.HDL 시뮬레이터와 사용자 라이브러리는 HDL 환경 밖에서 컴파일 및 링크되므로 링크는 시스템에 의존합니다(Windows/Linux/Solaris를 실행하는 x86, SPARC 등).
디바이스의 기능 사양, 설계자의 사양 해석, HDL 언어의 부정확성[citation needed] 사이의 단절 때문에 설계 검증은 설계 프로세스에서 가장 많은 시간이 소요됩니다.초기 테스트/디버깅 사이클의 대부분은 HDL 시뮬레이터 환경에서 실행됩니다.설계 초기 단계는 빈번하고 주요 회로 변경의 영향을 받기 때문입니다.HDL 기술은 하드웨어에서 프로토타입으로 제작 및 테스트할 수도 있습니다.프로그램 가능한 로직 디바이스는 이 목적으로 자주 사용됩니다.하드웨어 프로토타이핑은 HDL 시뮬레이션보다 상대적으로 비용이 많이 들지만 설계를 실제로 볼 수 있습니다.프로토타이핑은 다른 하드웨어 장치 및 하드웨어 프로토타입과 인터페이스 상태를 확인하는 가장 좋은 방법입니다.저속 FPGA로 동작하는 경우에도 순수 HDL 시뮬레이션보다 훨씬 짧은 시뮬레이션 시간을 제공합니다.
HDL을 사용한 설계 검증
역사적으로 설계 검증은 테스트 대상 설계에 대한 시뮬레이션 테스트 케이스를 작성하고 실행하는 번거롭고 반복적인 루프였습니다.칩 디자인이 커지고 복잡해지면서 설계 검증 작업이 설계팀의 일정을 장악할 정도로 커졌다.설계 생산성을 향상시키는 방법을 모색하기 위해 전자 설계 자동화 업계는 속성 사양 언어를 개발했습니다.
공식 검증 용어로 속성은 다른 개체의 예상 또는 가정된 동작에 대한 사실 진술입니다.주어진 HDL 설명에 대해 성질은 공식 수학적 방법을 사용하여 참 또는 거짓을 증명할 수 있는 것이 이상적입니다.실제로 많은 속성은 무한한 솔루션 공간을 차지하기 때문에 입증할 수 없습니다.다만, 일련의 조작상의 전제 조건이나 제약이 있는 경우, 속성 체커는 솔루션 공간을 좁혀서 특정 속성을 증명(또는 반증)할 수 있습니다.
어설션은 회로 활동을 모델링하는 것이 아니라 설계자의 의도를 HDL 코드로 캡처하여 문서화합니다.시뮬레이션 환경에서 시뮬레이터는 지정된 모든 어설션을 평가하여 위반의 위치와 심각도를 보고합니다.합성 환경에서 합성 도구는 일반적으로 위반 시 합성을 정지하는 정책으로 동작한다.어설션 기반 검증은 아직 초기 단계이지만 HDL 설계 도구 세트의 필수적인 부분이 될 것으로 예상됩니다.
HDL 및 프로그래밍 언어
HDL은 소프트웨어 프로그래밍 언어와 매우 유사하지만 큰 차이가 있습니다.대부분의 프로그래밍 언어는 본질적으로 절차적(단일 스레드)이며 동시성을 처리하기 위한 구문 및 의미적 지원이 제한됩니다.한편 HDL은 서로 독립적으로 자동으로 실행되는 여러 병렬 프로세스(플립 플랍 및 애드더 등)를 모델링하는 기능에서 동시 프로그래밍 언어와 유사합니다.프로세스 입력을 변경하면 시뮬레이터의 프로세스 스택에서 업데이트가 자동으로 트리거됩니다.
프로그래밍 언어와 HDL은 모두 컴파일러(HDL의 경우 신시사이저라고 함)에 의해 처리되지만, 목적은 다릅니다.HDL의 경우 "컴파일링"은 논리 합성을 의미합니다. 즉, HDL 코드 목록을 물리적으로 실현 가능한 게이트 넷리스트로 변환하는 프로세스입니다.netlist 출력은 게이트 지연 정보가 포함된 "시뮬레이션" 넷리스트, 합성 후 배치 및 반도체 금형 라우팅용 "핸드오프" 넷리스트 또는 일반 업계 표준 전자 설계 교환 포맷(EDIF)(이후 JEDEC 형식 파일로 변환용) 중 하나입니다.
한편 소프트웨어 컴파일러는 소스 코드 리스트를 타깃 마이크로프로세서 상에서 실행하기 위한 마이크로프로세서 고유의 오브젝트 코드로 변환한다.HDL과 프로그래밍 언어가 서로 개념과 기능을 차용함에 따라, 그 경계는 점점 더 명확해지고 있습니다.그러나 범용 프로그래밍 언어가 하드웨어 모델링에 바람직하지 않은 것처럼 순수 HDL은 범용 애플리케이션 소프트웨어 [why?]개발에는 적합하지 않습니다.
그러나 전자 시스템이 점점 더 복잡해지고 재구성 가능한 시스템이 점점 더 보편화됨에 따라 업계에서 하드웨어 설계와 소프트웨어 프로그래밍의 일부 태스크를 모두 수행할 수 있는 단일 언어에 대한 욕구가 커지고 있습니다.SystemC는 이러한 예로서 임베디드 시스템하드웨어를 비상세 아키텍처 블록(신호 입력 및 출력 드라이버의 모델화 블랙박스)으로 모델링할 수 있습니다.대상 애플리케이션은 임베디드 CPU 또는 에뮬레이트된 CPU의 호스트 시뮬레이션이 필요한 임베디드 CPU와 달리 C 또는 C++로 작성되어 호스트 개발 시스템용으로 네이티브하게 컴파일됩니다.
으로 건축 변경 쉽게signal-level 구현 문제들을 위한 작은 관심과 함께 평가할 수 있도록 SystemC 모델의 추상화의 높은 수준 초 구조 탐사에 적합합니다.하지만, 스레딩 모델 SystemC에 사용되는 공유 메모리에 잘 병렬 수행이나 낮은 수준의 모델 잡지 않도록 그 언어를 일으키고 의존하고 있다.
높은 수준의 합성
추상화 수준에서, HDLs 어셈블리 언어에 비교되어 왔다.[표창 필요한]시도를 하드웨어 설계의 추상화 수준을 끌어올리게 되기 위해, sub-field라고 불리는 높은 수준의 합성을 만들어 프로그래밍의 HDLs의 복잡성 줄일 수 있다.
Cadence에서는 Synopsys와 민첩성 설계 개선 방안 같은 회사들은 방법을 동시성 모델과의 전통적인 HDLs을 사용하여 FPGAs의 더욱 빨라진 설계 주기보다 가능하다 허용하는 고 수준의 언어를 결합하기로 SystemC을 홍보하고 있다.접근 표준 C또는 C++(도서관이나 다른 확장 병렬 프로그래밍을 허용하는으로)에 기초한 멘토 그래픽스의 투석기 C도구에,과 충격 가속 기술의 충격 C도구 발견된다.
데이터 병렬 C++, SYCL과 관련된에 대한 높은 수준의 합성어로 인텔에서 비슷한 계획이 사용되는 것이다.
아나폴리스 마이크로 시스템 주식 회사의 CoreFire 설계 Suite[11]와 내셔널 인스트루먼트 LabVIEW가 FPGA의 높은 수준의 설계 진입과 SystemVerilog, SystemVHDL, Handel-C와 같은 언어 같은 목표를 달성하기 위해서 기존의 하드웨어 엔지니어들 하기보다는 더 FPGA 만드는 것보다 생산적인 만드는 것을 목표로 하고 있는 방안을 모색하는 그래픽 dataflow 접근을 제공한다.산성 부식E기존의 소프트웨어 엔지니어들에게 접근 가능하다.
또한 인텔 FPGAs[13]또는 자일링스 시스템 생성기(XSG)자일링스에서 MathWorks HDLCoder tool[12]이나 DSP빌더를 사용하여 하드웨어 모듈 MATLAB과 Simulink을 사용하여 설계할 수 있다.[14]
HDLs의 예는
HDLs 아날로그 회로 설계.
이름. | 묘사 |
---|---|
HDL-A | 독자적인 아날로그 HDL |
SpectreHDL | Cadence Design Systems의 스펙터 회로 시뮬레이터 전용 아날로그 HDL |
Verilog-AMS(아날로그 및 혼합 시그널용 Verilog) | 아날로그 및 혼합 신호 시뮬레이션을 위한 IEEE 표준 1364 Verilog Accelera 표준 확장 |
VHDL-AMS(아날로그/혼합 시그널 확장 기능을 가진 VHDL) | 아날로그 및 혼합 신호 시뮬레이션을 위한 VHDL의 IEEE 표준 확장(IEEE 규격 1076.1) |
디지털 회로 설계용 HDL
업계에서 가장 널리 사용되고 잘 지원되는 HDL 2종은 Verilog와 VHDL입니다.
이름. | 묘사 |
---|---|
Advanced Boolean Expression Language(ABEL) | 1983년 Data I/O Corporation이 만든 구식 HDL |
Altera 하드웨어 기술 언어(AHDL) | 알테라에서 유래한 언어 |
AHPL | 하드웨어 프로그래밍 언어 |
아마란스 | Python 기반 |
블루스펙 | Haskell 기반 하이레벨 HDL(내장 [15]DSL 아님) |
Bluespec SystemVerilog(BSV) | Bluespec, Verilog HDL과 같은 구문을 사용하여 Bluespec, Inc.에 기반합니다. |
C-to-Verilog | C에서 Verilog로의 변환기 |
끌(스칼라 임베디드 [16]언어로 하드웨어 구성) | Scala 기반(내장 DSL) |
Clash Clash 최신 기능 하드웨어 기술 언어 | Clash는 기능적 프로그래밍 언어 Haskell에서 구문과 의미론을 모두 차용한 기능적 하드웨어 기술 언어입니다. |
COLAMO (다중 [17]객체 아키텍처를 위한 공통 지향 언어) | "슈퍼컴퓨터 및 신경컴퓨터 연구 센터" 주식회사의 독점 언어 |
합류점 | 기능성 HDL은 단종되었습니다. |
CoWareC | C 기반의 HDL을 제공합니다.System C를 위해 단종되었습니다. |
CUPL(Universal Programmable [18]Logic용 컴파일러) | Logical Devices, Inc.의 독자 언어 |
엘라 | 더 이상 일반적으로 사용되지 않는다 |
ESys.net | C#로 작성된 .NET 프레임워크 |
헨델-C | C와 같은 디자인 언어 |
하드캠 | OCaml(임베디드 DSL)에 근거하고 있습니다.온라인으로 시험해 보세요. |
HDL | Haskell(임베디드 DSL)을 기반으로 합니다. |
하드웨어 참여 Java(HJJ) | Join Java 기반 |
HML(하드웨어 ML) | 표준[19] ML에 의거 |
히드라 | Haskell에 의거하여 |
임펄스 C | 다른 C라이크 HDL |
ISPS | CMU의 오리지널 HDL은 더 이상 일반적으로 사용되지 않습니다. |
ParC(패럴렐 C++) | 작업 병렬 프로그래밍을 위한 HDL 스타일 스레드 및 통신으로 확장된 kusu |
JHDL | Java 기반 |
칼 | KAiserslautern Register Language(챕터 in)[9]는 파스칼식 하드웨어 기술 언어이며 더 이상 일반적으로 사용되지 않습니다. |
용암 | Haskell(임베디드 DSL)[20][21][22][23]을 기반으로 합니다. |
롤라 | 가르치는 데 사용되는 간단한 언어 |
M | Mentor 그래픽스의 HDL |
MyHDL | Python 기반(내장 DSL) |
팔레즘 | Programmable Array Logic(PAL; 프로그래머블 어레이 로직) 디바이스용 |
파이프라인c | 언어 구성/컴파일러 기능으로 고급 합성 유사 자동 파이프라인을 추가하는 C형 하드웨어 기술 언어입니다. |
PyMTL | Python을 기반으로 코넬 대학의 |
PyRTL | Python을 기반으로 캘리포니아 대학 샌타바바라에서 온 |
ROCCC(구성 가능한 컴퓨팅을 위한 리버사이드 최적화 컴파일러) | 프리 오픈 소스 C to HDL 툴 |
RHDL | 루비 프로그래밍 언어에 기반하여 |
ROHD(신속한 오픈 하드웨어 개발 프레임워크)[24] | 하드웨어 설계와 검증을 위한 프레임워크(다트로 작성) |
Ruby(하드웨어 기술 언어) | |
시스템 C | 높은 수준의 추상화, 즉 시스템 수준의 디지털 하드웨어의 높은 수준의 동작 및 트랜잭션 모델링을 위한 표준화된 클래스 C++ 라이브러리 |
시스템 Verilog | Verilog의 슈퍼셋으로 시스템 수준의 설계와 검증에 대응하기 위한 기능 강화 |
척수 HDL | Scala 기반(내장 DSL) |
시스템 TCL | Tcl 기반의 SDL |
THDL++ (C++에서 영감을 얻은 템플릿 HDL) | 상속, 고급 템플릿 및 정책 클래스를 사용한 VHDL 확장 |
베릭 | HDL의 의미를 재해석한 Kotlin.SystemVerilog로 변환됩니다. |
TL-Verilog(트랜잭션레벨 Verilog) | 파이프라인 및 트랜잭션용 구성을 포함하는 Verilog/SystemVerilog의 확장입니다. |
베릴로그 | 가장 널리 사용되고 잘 지원되는 HDL 중 하나 |
VHDL(VHSIC HDL) | 가장 널리 사용되고 잘 지원되는 HDL 중 하나 |
프린트 기판 설계용 HDL
언어 기반의 텍스트 입력 방법을 사용하여 프린트 기판의 접속을 정의하는 몇 가지 프로젝트가 있습니다.
이름. | 묘사 |
---|---|
PHDL(PCB HDL) | 프린트 기판 접속을 정의하기 위한 프리 오픈 소스 HDL |
EDA솔러 | 제약조건에 기초한 설계도를 해결하기 위한 HDL |
SKiDL | 전자 회로를 설계하기 위한 오픈 소스 파이썬 모듈 |
「 」를 참조해 주세요.
레퍼런스
- ^ Ciletti, Michael D. (2011). Advanced Digital Design with Verilog HDL (2nd ed.). Prentice Hall. ISBN 9780136019282.
- ^ Barbacci, M. "컴퓨터와 디지털 시스템을 기술하기 위한 레지스터 전송 언어 비교", Carnegie-Mellon University, Computer Science, 1973년 3월
- ^ Bell, C. G.; Newell, A. (1971). Computer Structures: Readings and Examples. McGraw-Hill. ISBN 0-07-004357-4.
- ^ Reilly, E.D. (2003). Milestones in computer science and information technology. Greenwood Press. p. 183. ISBN 1-57356-521-0.
- ^ Bell, C.G.; Grason, J.; Newell, A. (1972). Designing Computers and Digital Systems. Digital Press. LCCN 72-89566. OCLC 440245727.
- ^ Barbacci, M.C. (1976). "The Symbolic Manipulation of Computer Descriptions: ISPL Compiler and Simulator". Department of Computer Science, Carnegie-Mellon University. doi:10.1184/R1/6610790.v1.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Barbacci, M.C.; Barnes, G.E.; Cattell, R.G.G.; Siewiorek, D.P. (1977). "The ISPS Computer Description Language". Department of Computer Science, Carnegie-Mellon University. doi:10.1184/R1/6610637.v1.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Girardi, G.; Hartenstein, R. (1983). ABL specification (Report). CSELT and University of Kaiserslautern.
- ^ a b Hartenstein, Reiner W. (2012) [1993], "KARL and ABL", in Mermet, J. (ed.), Fundamentals and Standards in Hardware Description Languages, Nato Science Series E, vol. 249, Springer, pp. 447–, ISBN 9789401119146
- ^ Barbacci, M.C.; Grout, S.; Lindstrom, G.; Maloney, M.P. (1984). "Ada as a hardware description language : an initial report". Department of Computer Science, Carnegie-Mellon University. CiteSeerX 10.1.1.938.8003. doi:10.1184/R1/6602984.v1.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "VHDL-Based FPGA Programming Application Software Tool". Annapolis Micro Systems, Inc. Retrieved 2018-12-01.
- ^ "VHDL code - HDL Coder - MATLAB & Simulink". Mathworks.com. 2011-04-30. Retrieved 2012-08-11.
- ^ "Digital Signal Processing (DSP) Builder - Intel® FPGAs". Intel. Retrieved 2021-09-20.
- ^ "System Generator for DSP". Xilinx.com. Archived from the original on 2012-07-12. Retrieved 2012-08-11.
- ^ 하스켈의 역사: 클래스 § 12.4.2에서 게으름 피우는 것
- ^ "Chisel/FIRRTL Hardware Compiler Framework".
- ^ "Higher-level language COLAMO НИЦ супер-ЭВМ и нейрокомпьютеров".
- ^ Eurich, J.P.; Roth, G. (1990). "EDIF grows up". IEEE Spectrum. 27 (11): 68–72. doi:10.1109/6.62219. S2CID 381119.
- ^ Yanbing Li; Leeser, M. (1995). "HML: An innovative hardware description language and its translation to VHDL". Proceedings of ASP-DAC'95/CHDL'95/VLSI'95 with EDA Technofair. pp. 691–696. doi:10.1109/ASPDAC.1995.486388. ISBN 4-930813-67-0. S2CID 14198160.
- ^ 찰머스 용암
- ^ 시린스 용암
- ^ 캔자스 라바
- ^ 요크 라바아
- ^ "Rapid Open Hardware Development (ROHD) Framework". GitHub. 17 November 2021.
외부 링크
- Verilog-AMS 기술 소위원회
- HCT - 설계의 복잡도를 판단하기 위해 사용되는 HDL 복잡도 도구입니다.