본문 바로가기
Electric Engineering/System on Chip

디지털논리회로설계, Quartus II / FPGA / VHDL?

by 공대생 교블 2020. 9. 5.
728x90

안녕하세요 

최근 대학원 수업을 시작하게 되었는데

고급디지털논리회로설계 수업에서 사용되는 툴, 그리고 간단한 용어들을 정리해보겠습니다.

 

고급 디지털 논리회로 설계 수업사진

우선 수업에 이용되고 있는 툴은 Quartus II.

쿼터스 II는 논리회로의 설계와 시뮬레이션 기능을 가진 소프트웨어입니다.

알테라 코퍼레이션에서 만든 CPLD, FPGA 및 ASIC 디자인 등

하드웨어 기술 언어 설계의 분석과 합성에 사용되는 소프트웨어 도구이며

개발자가 설계를 컴파일 하여, 타이밍 분석을 수행하며, RTL 다이어그램을 검사하고

프로그래머로 대상소자에 설정하는 것을 가능하게 합니다. 

 

이 Quartus 를 만든 알테라 주식회사는 프로그래머블 논리 소자의 선두 제조업체입니다.

알테라가 개발한 다양한 기능들은 프로그래머블 칩기반 시스템(SOPC)을 가능하게 했습니다. 

최근에는 임베디드 메모리, 임베디드 프로세서, 고속 트랜시버를 포함하고 있죠 :)

2015년에 인텔이 알테라를 주당 54달러, 167억 달러에 인수했습니다.

 

 

FPGA란? (field programmable gate array,필드 프로그래머블 게이트 어레이)

FPGA는 설계 가능 논리 소자와 프로그래밍이 가능한 내부 회로가 포함된 반도체 소자 입니다.

설계 가능 논리 소자는 AND, OR, XOR, NOT 더 복잡한 디코더나 계산기능의 조합 기능같은

기본적인 논리 게이트의 기능을 복제하여 프로그래밍이 가능합니다.

대부분에 FPGA는 프로그래밍 가능 논리 요소에 간단한 플립플롭이나

더 완벽한 메모리 블록으로 된 메모리 요소를 포함하고 있습니다.

프로그램이 가능한 내부선 계층구조는 FPGA의 논리블록을 시스템 설계자가 요구하는 대로

단일 칩 프로그래밍 가능 브레드보드처럼 내부연결을 할 수 있습니다.

이 논리블록과 내부선은 제조공정 이후에 소비자/설계자가 프로그램할 수 있으므로

요구되는 어떠한 논리기능도 수행할 수 있습니다

 

FPGA는 일반적으로 주문형 반도체(ASIC) 대용품보다 느리고, 복잡한 설계에 적용할 수 없으며 소비전력이 큽니다.

그러나 개발시간이 짧고 오류를 현장에서 재수정할 수 있고 초기 개발비가 저렴하다는 장점이 있습니다.

 

 

 

VHDL이란? (VHSIC Hardware Description Language)

VHDL은 디지털 회로 및 혼합 신호(Mixed-signal, 아날로그 신호 포함)를 표현하는 하드웨어 기술 언어입니다.

디지털 회로의 설계 자동화에 사용하는 하드웨어 기술 언어 즉 회로 설계라고 생각하시면 쉬울 것 같아요.

하지만 일반 프로그래밍 언어로 보기는 어렵습니다.

전자 회로를 정밀하게 기술하는데 사용하는 컴퓨터 언어이긴 하지만

시간과 동시성(Concurrency)를 표현할 수 있는 표기법이 있다는 점, 컴파일 과정이 다르기 때문에

일반적인 프로그래밍 언어와는 좀 다르겠죠?

VHDL은 FPGA나 직접회로 등의 전자공학 회로를 처리하는 설계 자동화에 사용됩니다.

주로 디지털 회로 설계에 사용되고 기존의 심볼에 의한 회로도 작성 대신 언어적 형태로 전자회로의 기능을 표현합니다.

아날로그 신호(Mixed-signal)는 VHDL-AMS (VHDL Analog and Mixed-Signal Extension)로 표현하나

실제 활용면에서는 디지털회로에 많이 적용되어 사용되는 언어입니다. 

VHDL로 표현된 회로는 실제 동작하는 기능적 소자로 변환하는 합성과정을 거치면 동작할 수 있는 회로가 완성됩니다. 이 때 FPGA나 ASIC 등을 위한 환경에 다라 합성된 실제회로의 소자가 달라지기 때문에

칩 설계 시 목적에 맞는 소자가 합성되도록 하는 개발도구가 존재합니다. 

 

 

<VHDL을 이용한 간단한 논리연산 중 AND게이트>

출처 : 위키백과

 

 

 

그럼 정리해보자면,

FPGA는 프로그래밍이 가능한 반도체 소자

그리고 이를 프로그래밍하는 언어는 VHDL

그리고 이러한 프로그래밍을 할 수 있는 툴은 QUARTUS다.

라고 생각하시면 쉽겠죠?ㅎㅎㅎㅎㅎ

 

 

공부하면서 VHDL에 대해서는 틈틈히 꼼꼼하게 정리해볼게요 :)

공부하는 학생이니 틀린 부분이나 더할 부분이 있다면 알려주시면 감사하겠습니다

 

 

제가 공부하고 있는 공대 대학원생 브이로그도 보러와주세요 :)

youtu.be/3vdR_2S7skA

 

728x90