CPLD 또는 FPGA의 회로도 설계보다 Verilog 또는 VHDL을 선택하게 만드는 이유는 무엇입니까?


13

프로그래밍 가능한 로직에 대한 배경 지식이 전혀 없으며 프로젝트에서 주로 마이크로 컨트롤러를 사용하지만 최근에는 비디오 작업이 필요했고 마이크로 컨트롤러가 너무 느려서 CPLD로 게임을 시작했습니다.

CPLD 만 회로도 설계를 사용하여 좋은 결과를 얻을 수 있었지만 CPLD에 대한 정보를 검색 할 때 VHDL과 Verilog를 사용하여 많은 예제를 보았습니다. 이 언어 중 하나로 내 장치를 정의하고 싶은 것이 무엇인지 궁금합니다. 회로도 설계가 할 수없는 것은 무엇입니까? 그들은 주로 기능에 사용됩니까?

지금까지 CPLD 만 사용 했으므로 FPGA 디자인은 이러한 언어를 사용함으로써 CPLD보다 더 많은 이점을 얻습니까?


1
주류 부품에 대해 Verilog 및 VHDL 모두에 대해 공급 업체가 제공 한 합성 도구를 찾을 수 있습니다. 그러므로 선택은 순전히 의견입니다. 두 가지를 모두보고 원하는 것을 결정하도록 권장합니다. 자일링스는 두 언어 모두에서 좋은 예를 제공한다. 다른 벤더들도 그렇게 생각한다.
David

3
논리 설계를 위해 회로도 캡처에서 벗어나야합니다. 그것은 느낀다 시작에 쉽게,하지만 그건 착각이다. 언어에 대한 $ 0.02 : VHDL은 혐오입니다. Verilog를 사용하십시오.
markt

@ markt, 왜 VHDL이 그렇게 나쁘다고 생각합니까?
stanri

2
Verilog가 가증 한 것이라고 VHDL을 사용하는 것도 마찬가지로 말할 수 있습니다. VHDL은 Verilog가 추측하는 동안 원하는 것을 정확하게 말할 것을 기대합니다. 하지만 그건 내 £ 0.02입니다.
Brian Drummond

1
@ markt, 나는 VHDL로 시작 했으므로 어느 시점에서 VHDL의 강력한 형식을 높이 평가했습니다. 그것은 내가 원했던 것에 대해 생각하고 내가 시작할 때 좋은 습관을 만들도록 강요했습니다. 이제 저는 SystemVerilog 캠프에 너무 멀리 들어가서 정직하게 너무 많이 돌 보았습니다.
stanri

답변:


14

회로도 디자인은 상용 모듈 (카운터, 가산기, 메모리 등)을 함께 묶을 때만 유용합니다. 그러나 실제 알고리즘 (예 : 암호화 해싱 알고리즘)을 구현하는 것은 HDL (VHDL 또는 Verilog와 같은) 없이는 거의 불가능합니다. 왜냐하면 회로도 기호가있는 행동 수준에서 시스템을 설명 할 방법이 없기 때문입니다.

대부분의 프로젝트는 손으로 합성하기가 너무 복잡하여 로직 프리미티브를 개략적으로 사용하기 때문에 행동 스타일 HDL로 수행됩니다.

CPLD는 일반적으로 글루 로직에 사용되며 처리에는 덜 사용되며 일반적으로 로직은 개략적으로 구현하기 쉬우므로 FPGA 기반 디자인이 HDL을 사용하면 더 많은 이점을 얻을 수 있다고 제안 할 때 적절하다고 생각합니다.


상징적 회로도 시스템에서 매우 복잡한 작업을 수행 할 수 있습니다 . HDL에서 수행 할 수있는 모든 것은 유지 관리 비용이 들지만 회로도 기반 시스템으로 구현할 수 있다고 말할 있습니다. 툴셋이 단일 심볼로 작동하는 심볼 블록을 정의 할 수 있다면 거의 모든 작업을 수행 할 수 있습니다.
코너 울프

1
여기서 좋은 예는 labview입니다. 사람들이 전체 공장을 자동화하는 매우 복잡한 시스템을 설계 한 상징적 프로그래밍 인터페이스입니다. 최종 결과는 거의 유지 불가능 하지만 가능합니다 (참고 : 그것이 좋은 아이디어 인지 아닌지 , 기본 생존 가능성에 대해서만 말하고 있지는 않습니다 ).
코너 울프

"대부분의 프로젝트는 행동 스타일 HDL로 수행됩니다 ..."는 지원할 수 없으며 실제로 디자인 흐름이 작동하는 방식이 아닙니다.
플레이스 홀더

@ConnorWolf Labview 코드가 유지 관리가 불가능하다는 것에 동의하지 않아야합니다. 실제로 도움이되는 모범 사례가 있습니다. 저에게는 보통 G 언어에 내재 된 것과는 달리 유지 관리 문제를 야기하는 정방향 또는 역방향 호환성에 대한 희망에서 포기합니다.)
Scott Seidman

4

Jay의 탁월한 답변 외에도 몇 가지 실용적인 측면 :

  • 버그. 회로도 도구는 나머지 도구 세트보다 버그가 많은 * 경향이 있습니다. 이는 업계의 회로도보다 Verilog / VHDL을 선호하기 때문일 수 있으므로 소프트웨어 개발자는 회로도 입력에 덜 관심을 기울입니다.
  • 속도. 회로도를 합성 도구로 전달하기 전에 먼저 HDL로 변환해야합니다. 이는 빌드 시간에 부정적인 영향을 줄 수 있습니다. 어떤 이유로 검사해야 할 경우 생성 된 HDL을 읽을 수 없을 수도 있습니다.
  • 이식성. 사용 된 공급 업체 특정 프리미티브의 양에 따라 Verilog 및 VHDL은 장치간에 어느 정도 이식성이 있습니다. 포팅 회로도는 모든 것을 다시 그리거나 제공된 가져 오기 / 내보내기 기능 (있는 경우)에 의존해야합니다.

Xilinx ISE에서 가장 좋아하는 버그는 수직 와이어를 선택할 수 없다는 점입니다.


2

Entry 디자인 입력 표준으로서 HDL (하드웨어 설명 언어)의 많은 장점이 있습니다.

기능에 대한 설명은 더 높은 수준에있을 수 있으며, HDL 기반 디자인은 선택한 기술에 대한 게이트 수준 설명으로 합성 될 수 있으며, HDL 디자인은 게이트 수준 넷 목록 또는 회로도 설명 및 HDL보다 이해하기 쉽습니다. 강력한 유형 검사로 인한 오류를 줄입니다.

하드웨어 설명 언어 VHDL 및 Verilog는 동시성, 타이밍, 계층 구조, 구성 요소 재사용, 상태 동작, 동기 동작, 비동기 동작, 동기화 및 고유 병렬 처리와 같은 기능을 포함하여 더 높은 추상화 레벨에서 모델링 할 의도로 하드웨어를 모델링하기 위해 설계되었습니다. .

설계 설명을 특정 프로세스 및 게이트 구현에 매핑하여 합성하는 동안 문제가 발생합니다. 이를 위해서는 HDL의 고급 기능을 사용할 수 없어야합니다. "합성 가능한 Verilog / VHDL"을 생성해야합니다.

따라서 합성을위한 HDL과 시뮬레이션을위한 HDL이 있으며 합성 가능한 서브셋은 도구마다 다릅니다.

동작 설계 설명에서 넷리스트 / 레이아웃으로 이동할 수 없습니다. 그러나 서로 비교할 수있는 합성 가능한 측면을 가진 동작 구성 요소를 갖도록 디자인을 구성 할 수 있습니다. 동작으로 시작한 다음 일단 작동하면 합성을 위해 다시 작성합니다 (일부 항목 임). 당신은 일반에서 특정으로 이동하고 그 과정에서 테스트 벤치를 구축합니다.


1

또 하나의 장점은 HDL이 표준 버전 제어 시스템에서 사용될 수 있고 변경 사항을 검사하기 위해 다른 점에서 일반 프로그래밍 언어와 동일한 이점을 모두 얻을 수 있다는 것입니다.


0

이미 언급 한 것 외에도 텍스트 표현은 특히 대규모 프로젝트에서 훨씬 더 관리하기 쉽습니다. 합성 할 수있는 HDL을 회로도로 변환 할 수는 있지만 수백 가지의 도식 요소보다 수백 줄의 일반 텍스트 작업이 더 쉽습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.