Xilinx Spartan-6 FPGA를 디바이스 마트에서 구입했다. 컴퓨터 아키텍처 관련 공부를 하면서 FPGA를 이용한 실습도 해보고, 기회가 된다면 프로젝트를 수행보기도 할 예정이다. 보드는 디바이스 마트에서 구매하였다.
https://www.devicemart.co.kr/goods/view?no=1327682
GB1 Xilinx Spartan-6 FPGA EVB
Xilinx Spartan-6 XC6SLX9 FPGA / FTDI FT2232H USB-JTAG- Serial IC / SPI program flash (4Mbit) / 14pin JTAG connector / 4 digit 7 segment / 2x 8P Connectors / 40P Connector / DC-JACK
www.devicemart.co.kr
FPGA(Field Programmable Gate Array) : 설게 가능 논리 소자와 프로그래밍이 가능한 내부 회로가 포함된 반도체 소자
AND, OR, XOR, NOT, 디코더 등 논리 게이트의 기능을 복제하여 프로그래밍 할 수 있다. 프로그래밍 가능 논리 요소 + 간단한 플립플롭 지원, 주문형 반도체(ASIC)의 대용품으로 느리고 복잡한 설계에 대응할 수 없으며, 전력 소비가 심하다는 단점이 있으나 개발 시간이 짧고 오류를 재수정할 수 있다는 것은 매력적이다.
=> MCU가 메모리에 저장된 프로그램을 차례로 실행한다면, FPGA는 보다 하드웨어에 가까워서 입력이 주워지고, 사용자가 설계한 회로를 거쳐서 결과를 출력하는 것에 가깝다고 볼 수 있다.
항목FPGAMCU
항목 | FPGA | MCU |
정의 | 사용자가 하드웨어 논리를 프로그래밍할 수 있는 디지털 집적회로 | 내장된 프로세서(코어), 메모리, 주변장치 등을 포함하는 소형 컴퓨터 |
구성 요소 | LUT(Look-Up Table), Flip-Flop, 스위치 매트릭스 등으로 구성된 재구성 가능한 논리 블록 | CPU, Flash, RAM, I/O 포트, 타이머, UART, SPI 등 고정된 기능의 주변 장치 포함 |
프로그래밍 대상 | 하드웨어 회로 구성 자체를 설계 | 소프트웨어(펌웨어)를 코어 위에서 실행 |
실행 방식 | 병렬 처리 (동시에 여러 로직 실행 가능) | 순차 처리 (명령어 기반 직렬 실행) |
타이밍 | 클럭 동기화 또는 비동기 회로 가능 | 클럭 기반 프로세서 제어 구조 |
구성 변경 | 새로운 회로 구조를 하드웨어 수준에서 구현 가능 (재구성 가능) | 소프트웨어 변경으로 기능 변경 (하드웨어 구조는 고정) |
설계 언어 | 하드웨어 기술 언어(HDL) - VHDL, Verilog 등 | 고급 언어 - C, C++, 어셈블리 등 |
개발 도구 | Vivado, Quartus, ISE 등 (시뮬레이션, 합성, 배치 등 필요) | Keil, STM32CubeIDE, MPLAB X 등 |
설계 복잡도 | 하드웨어 구조 설계 필요 → 상대적으로 복잡함 | 펌웨어 중심 설계 → 상대적으로 단순함 |
디버깅 방식 | 시뮬레이터 사용, 타이밍 분석 필요 | 디버거, 시리얼 모니터, 브레이크포인트 설정 등 |
속도 | 특정 연산이나 병렬 연산에 대해 매우 빠름 | 일반적인 제어나 순차 연산에 적합 |
전력 소비 | 상대적으로 높음 (구조적 특성상) | 저전력 동작 가능 (배터리 기반 시스템 적합) |
유연성 | 높은 유연성 (구조 자체 변경 가능) | 구조 변경 불가 (펌웨어 수준 변경만 가능) |
Spartan-6 모델의 경우 구형이어서, Vitis나 Vivado가 지원하지 않는다. ISE를 깔아야 하는데 최신 버전은 14.7이다. (개발 도구가 모델을 지원하는지 확인이 필요하다.) 회원 가입하고 설치하면 된다.
Downloads
Vivado, Vitis, Vitis Embedded Platform, PetaLinux, Device models
www.xilinx.com
일단 이 분 영상을 보고 설치했다. 14.7 for window 10을 설치했고, virtual box를 이용하였다.
https://www.youtube.com/watch?v=drnEkVvZJD0
설치 이전에 반드시 BIOS 상에서 가상화가 되어 있어야 한다. Dell 노트북의 경우 부팅시 Dell 로고가 보일 때 F2 키를 연타하면 BIOS 설정으로 들어가진다. Hyper-V도 꺼주어야 한다. cmd에서 systeminfo를 쳤을 때 다음과 같게 떠야한다.
...
Hyper-V 요구 사항: VM 모니터 모드 확장: 예
펌웨어에 가상화 사용: 예
두 번째 수준 주소 변환: 예
데이터 실행 방지 사용 가능: 예
이 글을 참고하기를 바란다.
https://beaniejoy.tistory.com/45
[Docker] Window 10 Home에서 docker 설치/실행하기 (+ hyper-v 완전히 작동 중지하기)
Docker for Window는 Window 10 Pro or EnterPrise 64-bit에서 지원을 한다는 문구가 있습니다. Window에서도 가상화를 사용할 수 있게 해주는 Hyper-V가 필요해서입니다. 저는 Home 버전을 사용하고 있어서 여기에
beaniejoy.tistory.com
참고로 설치에 시간이 좀 걸린다. 설치가 완료되고 간단하게 프로젝트를 만들어서 and gate를 만들고 시뮬레이션 해보았다. 실제 기기에 이식하는 건 좀 더 찾아봐야 할 것 같다.