산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

FPGA 개발 입문: Xilinx Artix-7에서 4비트 가산기 구현하기

FPGA 개발 입문: Xilinx Artix-7에서 4비트 가산기 구현하기 편집자 주: 고급 알고리즘이 계속 진화함에 따라 임베디드 설계자들은 현대 애플리케이션의 처리 요구를 충족하기 위해 고군분투합니다. FPGA가 필요한 성능을 제공하며, 최근 하드웨어와 툴링 발전으로 FPGA 개발이 더 넓은 청중에게 접근 가능해졌습니다. Jim Ledin의 Architecting High-Performance Embedded Systems에서 파생된 시리즈의 네 번째 기사인 이 글은 단순하지만 완전한 FPGA 프로젝트를 구축하는 실습 연습을 제공합니다.


첫 FPGA 프로젝트 개발하기

Digilent Arty A7 개발 보드에 탑재된 Xilinx Artix-7 FPGA에서 4비트 이진 가산기를 구축하겠습니다. 두 가지 보드 변형이 있습니다: 비용 효율적인 35T 모델(미화 $129)과 더 강력한 100T 모델(미화 $249). 유일한 차이는 사용 가능한 로직 리소스에 영향을 주는 FPGA 변형입니다. 100T는 디지털 오실로스코프 예제 같은 향후 더 많은 리소스를 요구하는 프로젝트에 더 적합합니다.

구매 옵션: Digilent Store, Amazon 및 기타 소매점.

이 튜토리얼에서는 FPGA 코어, 4개 사용자 스위치, 4개 푸시버튼, 5개 LED에 집중합니다. 아래 단계는 Vivado 툴 스위트 설치, 프로젝트 생성, VHDL 코드 작성, 비트스트림을 보드에 로드하는 것(휘발성 구성 메모리와 온보드 플래시로 영구 동작 모두)을 다룹니다.

프로젝트 개요

설계는 4비트 가산기를 구현합니다. 4개 스위치가 첫 번째 4비트 피연산자를, 4개 푸시버튼이 두 번째 피연산자를 제공합니다. FPGA는 이 피연산자를 지속적으로 더해 4비트 합을 4개 LED에 표시하고, 5번째 LED로 캐리 아웃을 표시합니다. 이 단순한 설계로 복잡한 로직 대신 툴체인 워크플로에 집중할 수 있습니다.

Vivado 설치

Windows와 Linux에서 무료로 사용할 수 있는 Xilinx Vivado를 사용합니다. 다음 지침은 Windows를 가정하며, Linux 설치 단계는 유사합니다.

  1. Xilinx 사용자 계정 생성: https://www.xilinx.com/registration/create-account.html
  2. https://xilinx.com에 로그인하고 다운로드 페이지로 이동
  3. Xilinx Unified Installer(Windows Self-Extracting Web Installer) 다운로드. 이 책과의 일관성을 위해 버전 2020.1 선택, 아니면 최신 릴리스 사용
  4. 설치 프로그램 실행(예: Xilinx_1_0602_1208_Win64.exe). Windows가 다운로드를 차단하면 "Install anyway" 선택
  5. 환영 화면에서 Next 클릭
  6. Xilinx 자격 증명 입력 후 Next 클릭
  7. 라이선스 동의 확인 후 Next 클릭
  8. Vitis를 제품으로 선택(Vitis는 Vivado와 추가 도구를 번들로 포함). Next 클릭
  9. 기본 구성 요소 선택 유지 후 Next 클릭
  10. 대상 디렉토리 선택(예: C:\Xilinx) 후 Next 클릭
  11. 요약 검토 후 Install 클릭. 설치에 몇 분 소요

설치 완료 후 바탕화면 바로가기나 시작 메뉴에서 Vivado를 실행합니다.

프로젝트 생성

  1. Vivado를 열고 Quick Start 패인에서 Create Project 클릭
  2. 프로젝트 이름으로 ArtyAdder 입력, 디렉토리 선택(예: C:\Projects), Create a subdirectory for this project 체크 후 Next 클릭
  3. RTL Project 선택, Do not specify sources at this time 체크 후 Next 클릭
  4. Boards 탭에서 "Arty" 검색 후 하드웨어에 따라 Arty A7-100 또는 Arty A7-35 선택, Next 클릭
  5. 마법사 완료로 빈 프로젝트 생성

VHDL 소스 파일 추가

  1. Sources 패인에서 Design Sources 우클릭 → Add Sources…
  2. Add or create design sources 선택 후 Next 클릭
  3. Create File 선택, 파일명을 FullAdder.vhdl로 지정 후 OK 클릭
  4. Adder4.vhdl 생성 반복 후 Finish 클릭
  5. Define Modules 대화상자 무시, OK 클릭 후 Yes로 확인
  6. FullAdder.vhdl 열기 후 다음 코드 붙여넣기:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity FULL_ADDER is port ( A : in std_logic; B : in std_logic; C_IN : in std_logic; S : out std_logic; C_OUT : out std_logic ); end entity FULL_ADDER; architecture BEHAVIORAL of FULL_ADDER is begin S <= (A XOR B) XOR C_IN; C_OUT <= (A AND B) OR ((A XOR B) AND C_IN); end architecture BEHAVIORAL;
  1. Adder4.vhdl 열기 후 내용 교체:
library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity ADDER4 is port ( A4 : in std_logic_vector(3 downto 0); B4 : in std_logic_vector(3 downto 0); SUM4 : out std_logic_vector(3 downto 0); C_OUT4: out std_logic ); end entity ADDER4; architecture BEHAVIORAL of ADDER4 is component FULL_ADDER is port ( A : in std_logic; B : in std_logic; C_IN : in std_logic; S : out std_logic; C_OUT : out std_logic ); end component; signal c0, c1, c2 : std_logic; begin FULL_ADDER0 : FULL_ADDER port map ( A => A4(0), B => B4(0), C_IN => '0', S => SUM4(0), C_OUT => c0 ); FULL_ADDER1 : FULL_ADDER port map ( A => A4(1), B => B4(1), C_IN => c0, S => SUM4(1), C_OUT => c1 ); FULL_ADDER2 : FULL_ADDER port map ( A => A4(2), B => B4(2), C_IN => c1, S => SUM4(2), C_OUT => c2 ); FULL_ADDER3 : FULL_ADDER port map ( A => A4(3), B => B4(3), C_IN => c2, S => SUM4(3), C_OUT => C_OUT4 ); end architecture BEHAVIORAL;

다음 단계

다음 기사에서는 이 설계를 시뮬레이션하고, Arty 보드용으로 합성하고, 결과 비트스트림을 FPGA에 프로그래밍하는 과정을 안내합니다.

Packt Publishing 허가 하에 재인쇄. Copyright © 2021 Packt Publishing


FPGA 개발 입문: Xilinx Artix-7에서 4비트 가산기 구현하기 Jim Ledin은 Ledin Engineering, Inc.의 CEO입니다. 임베디드 소프트웨어 및 하드웨어 설계, 개발, 테스트 전문가이며 임베디드 시스템 사이버보안, 침투 테스트, 윤리적 해킹 전문성을 보유합니다. Iowa State University에서 항공우주공학 학사, Georgia Institute of Technology에서 전기컴퓨터공학 석사 학위를 취득했습니다. 캘리포니아 면허 전문 전기 엔지니어, CISSP, CEH, CPT 보유.

관련 콘텐츠

Embedded의 주간 뉴스레터를 구독해 더 많은 통찰을 얻으세요.

임베디드

  1. 액체 적층 제조: 액체 소재로 3D 객체 제작하기
  2. 임베디드 시스템 설계: 단계, 원칙, 실전 적용 사례
  3. 임베디드 AI로 빅데이터를 실행 가능한 스마트 인사이트로 변환
  4. Arrow Electronics, 유럽 FPGA 설계 콘테스트 개최 - 무료 개발 보드와 푸짐한 상품
  5. MAXREFDES220#: 광학 센서로 커프리스 혈압 모니터링 구현
  6. 마이크로칩, 조기 액세스 프로그램으로 방산 등급 PolarFire SoC FPGA 출시
  7. 라즈베리 파이와 파이썬으로 로봇 만들기: 완전 가이드
  8. 라즈베리 파이로 셀프 밸런싱 세그웨이 만들기
  9. 고피고(GoPiGo) v2 윈도우 10 IoT 코어 라즈베리파이 3 확장 프로젝트
  10. 첨단 적층 제조 소프트웨어로 생산 극대화