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

FPGA를 사용한 임베디드 디자인:프로젝트 구축

편집자 주:스마트 제품 설계를 위한 고급 알고리즘이 계속 등장함에 따라 개발자는 종종 이러한 알고리즘의 관련 처리 요구를 충족할 수 있는 임베디드 시스템을 구현하는 데 어려움을 겪고 있습니다. FPGA는 필요한 성능을 제공할 수 있지만 FPGA를 사용한 설계는 오랫동안 FPGA 프로그래밍 전문가의 범위에 국한된 것으로 여겨져 왔습니다. 그러나 오늘날에는 더욱 강력한 FPGA와 보다 효과적인 개발 환경을 이용할 수 있게 되면서 FPGA 개발에 폭넓게 접근할 수 있게 되었습니다. Architecting High-Performance Embedded Systems 책의 4장에서 발췌한 내용에서 저자는 FPGA 디바이스, 구현 언어, FPGA 개발 프로세스에 대한 포괄적인 검토와 FPGA 구현을 시작하는 방법에 대한 자세한 설명을 제공합니다. 설계. 전체 발췌 내용은 다음 시리즈로 제공됩니다.
1:하드웨어 리소스
2:구현 언어
3:개발 프로세스
4:프로젝트 구축(이 문서)
5:구현

Jim Ledin의 Architecting High-Performance Embedded Systems에서 각색


첫 FPGA 프로젝트 개발

이 섹션에서는 Digilent Arty A7 개발 보드에 설치된 Xilinx Artix-7 FPGA 장치를 사용하여 간단하지만 완전한 프로젝트를 개발하고 구현합니다. 이 보드는 모델 번호가 -35T로 끝나는 저렴한 버전(US $129)과 -100T로 끝나는 모델 번호가 있는 더 기능이 있지만 더 비싼 버전(US $249)의 두 가지 변형으로 제공됩니다. 두 보드의 유일한 차이점은 보드에 설치된 Artix-7 FPGA 모델입니다. 예상대로 -35T는 -100T보다 사용 가능한 리소스가 적습니다.

이 프로젝트에 -35T 또는 -100T 변형을 사용할 수 있습니다. 개발 프로세스의 유일한 차이점은 필요할 때마다 올바른 보드 모델을 지정하는 것입니다. 그러나 이후 장에서는 예시 디지털 오실로스코프 프로젝트 설계의 리소스 요구 사항으로 인해 -100T 변형이 필요하므로 더 성능이 좋은 보드를 권장합니다.

Arty A7 보드는 https://store.digilentinc.com/arty-a7-artix-7-fpga-development-board-for-makers-and-hobbyists/ 및 Amazon과 같은 다른 출처에서 구입할 수 있습니다.

이 프로젝트의 목적을 위해 관심 있는 보드의 리소스는 FPGA 장치 자체뿐만 아니라 4개의 스위치, 4개의 푸시버튼 및 5개의 LED입니다. 이 프로젝트는 Vivado 도구 모음을 설치하고, 프로젝트를 만들고, HDL 코드를 입력하고, 코드를 테스트하고, 궁극적으로 비트스트림을 생성하고 보드에 다운로드하는 방법을 보여줍니다. 비트스트림을 보드에 다운로드한 후 시스템 작동을 수동으로 테스트할 수 있습니다. 또한 FPGA 이미지를 Arty A7 보드의 플래시 메모리에 프로그래밍하여 보드 전원을 켤 때마다 로드 및 실행되도록 하는 방법도 볼 수 있습니다.

프로젝트 설명

이 프로젝트는 FPGA에서 4비트 바이너리 가산기를 구현합니다. 여기에서는 복잡한 HDL 모델을 구현하는 것이 아니라 도구를 설정하고 사용하는 방법을 배우는 데 중점을 두고 있기 때문에 이것은 의도적으로 매우 단순한 디자인입니다.

보드에 있는 4개의 스위치는 하나의 4비트 2진수를 나타내고 4개의 푸시버튼은 또 다른 4비트 숫자를 나타냅니다. FPGA 로직은 이 두 숫자 사이에 계속해서 더하기 연산을 수행하고 캐리 비트를 나타내는 다섯 번째 LED와 함께 4개의 LED에 4비트 이진수로 결과를 표시합니다.

4비트 가산기 코드는 하드웨어 설계 언어에 설명된 단일 비트 전가산기 회로를 기반으로 합니다. 1장 섹션 , 고성능 임베디드 시스템 설계 .

Vivado 도구 설치

우리는 이 프로젝트와 향후 챕터의 프로젝트에 Xilinx Vivado FPGA 개발 도구 제품군을 사용할 것입니다. 이러한 도구는 무료로 제공되며 Windows 및 Linux 운영 체제에서 지원됩니다. 두 운영 체제 중 하나에 도구를 설치할 수 있습니다. 이 섹션의 설명은 Windows 버전의 도구를 다루지만 Linux에 설치하는 경우 차이점이 분명해야 합니다. Vivado 도구로 작업하는 것은 서로 다른 운영 체제에서 거의 동일해야 합니다.

<올>
  • 아직 계정이 없다면 https://www.xilinx.com/registration/create-account.html에서 Xilinx 사용자 계정을 만드십시오.
  • https://xilinx.com을 방문하여 사용자 계정에 로그인합니다. 로그인하면 https://www.xilinx.com/support/download.html의 도구 다운로드 페이지로 이동합니다.
  • Xilinx 통합 설치 프로그램:Windows 자동 압축 풀림 웹 설치 프로그램 다운로드 . 사용 가능한 최신 버전을 선택해야 하지만 이 책에 사용된 버전을 따르려면 2020.1 버전을 선택하세요. .
  • 설치 프로그램 파일의 이름은 Xilinx_ 1_0602_1208_Win64.exe와 유사합니다. 다운로드 디렉토리에서 이 파일을 찾아 실행하십시오. Microsoft에서 인증하지 않은 앱을 설치하라는 대화상자가 표시되면 어쨌든 설치를 클릭합니다. .
  • 환영합니다 화면이 나타나면 다음을 클릭합니다. :

  • 그림 4.3 – 설치 프로그램 시작 대화 상자

    1. 다음 화면에서 xilinx.com 사용자 ID와 비밀번호를 입력하고 다음을 클릭합니다. :


    그림 4.4 – 설치 프로그램 로그인 대화 상자

    <올 시작="7">
  • 다음 대화 상자는 일부 라이센스 계약에 동의하도록 요청합니다. 동의합니다 확인란을 선택합니다. , 다음을 클릭합니다. .
  • 다음 대화 상자에서 Vitis 를 종료합니다. 설치할 제품으로 선택하고 다음을 클릭합니다. . Vitis에는 Vivado 도구 제품군과 다른 Xilinx 개발 도구 모음이 포함되어 있습니다.

  • 그림 4.5 – 설치 프로그램 제품 선택 대화 상자

    1. 다음 대화 상자에서는 설치할 소프트웨어 구성 요소를 선택할 수 있습니다. 선택 항목을 기본값으로 두고 다음을 클릭합니다. .
    2. 다음 대화 상자에서는 대상 디렉토리를 선택하고 프로그램 바로 가기 옵션을 지정할 수 있습니다. C:\Xilinx의 대상 디렉토리가 적절한 위치입니다. 존재하지 않는 경우 이 디렉토리를 작성하십시오. 다음을 클릭합니다. .
    3. 다음 대화 상자는 설치 옵션에 대한 요약을 표시합니다. 설치 를 클릭하십시오. 설치를 진행합니다. 컴퓨터 속도와 인터넷 연결에 따라 설치를 완료하는 데 몇 시간이 걸릴 수 있습니다.


    그림 4.6 – 설치 완료 대화 상자

    설치가 완료되면 다음으로 첫 번째 프로젝트를 생성합니다.

    프로젝트 만들기

    Arty A7 보드용 4비트 바이너리 가산기 프로젝트를 만들고 빌드하려면 다음 단계를 따르세요.

    <올>
  • Vivado 2020.1 이라는 제목의 바탕 화면 아이콘을 찾습니다. (또는 다른 경우 버전 번호를 찾거나) 두 번 클릭합니다.
  • Vivado가 메인 화면을 표시하면 프로젝트 생성 을 클릭하십시오. 빠른 시작 섹션:

  • 그림 4.7 – Vivado 빠른 시작 대화 상자

    1. 이렇게 하면 새 Vivado 프로젝트 만들기가 시작됩니다. 마법사. 다음 을 클릭하십시오. 프로젝트 이름 에 도달하려면 페이지를 열고 프로젝트 이름으로 ArtyAdder를 입력합니다. 프로젝트에 적절한 디렉토리 위치를 선택하고 확인란을 선택하여 하위 디렉토리를 만든 후 다음을 클릭합니다. . 이 책의 예에서는 C:\Projects 디렉토리를 모든 프로젝트의 위치로 사용합니다.


    그림 4.8 – 프로젝트 이름 대화 상자

    1. 프로젝트 유형 대화 상자에서 RTL 프로젝트 를 선택합니다. 지금은 출처를 지정하지 않음 옆의 확인란을 선택합니다. . 다음을 클릭합니다. :


    그림 4.9 – 프로젝트 유형 대화 상자

    1. 기본 부분 대화상자에서 보드 를 클릭합니다. 탭을 누르고 검색에 Arty를 입력합니다. 들. 가지고 있는 보드 유형에 따라(또는 아직 보드가 없는 경우) Arty A7-100 또는 Arty A7-35 다음을 클릭합니다. :


    그림 4.10 – 기본 부품 대화 상자

    1. 새 프로젝트 요약 대화상자에서 마침을 클릭합니다. .

    이제 빈 프로젝트를 만들었습니다. 다음 섹션에서는 이 프로젝트에 대한 논리 회로 설계를 포함하는 VHDL 소스 파일을 생성합니다.

    VHDL 소스 파일 만들기

    다음 단계는 VHDL 소스 파일 생성, 소스 코드 입력, FPGA 디자인 컴파일 과정을 설명합니다.

    <올>
  • 소스 하위 창에서 디자인 소스 를 마우스 오른쪽 버튼으로 클릭 소스 추가…를 선택합니다. :

  • 그림 4.11 – 소스 추가… 메뉴 선택

    1. 소스 추가 대화 상자에서 디자인 소스 추가 또는 생성 확인 선택한 후 다음을 클릭합니다. .
    2. 디자인 소스 추가 또는 만들기 대화상자에서 파일 만들기를 클릭합니다. :


    그림 4.12 – 디자인 소스 추가 또는 만들기 대화 상자

    1. 파일 이름 FullAdder.vhdl을 입력하고 확인을 클릭합니다. :


    그림 4.13 – 소스 파일 만들기 대화 상자

    1. 이전 두 단계를 반복하여 Adder4.vhdl이라는 다른 파일을 생성한 다음 마침 을 클릭하십시오. 디자인 소스 추가 또는 생성 대화.
    1. 모듈 정의 다음에 대화 상자가 나타납니다. 우리는 여기에 아무것도 입력하지 않을 것입니다. 확인 을 클릭하십시오. 이 값을 사용할 것인지 묻는 메시지가 표시됩니다. 를 클릭합니다. :


    그림 4.14 – 모듈 정의 대화 상자

    <올 시작="7">
  • 비모듈 파일 확장 디자인 소스 아래 을 클릭한 다음 FullAdder.vhdl을 두 번 클릭합니다. 빈 FullAdder.vhdl 파일을 표시하는 편집기 창이 열립니다.

  • 그림 4.15 – 새로 생성된 소스 파일

    1. FullAdder.vhdl 편집기 창에 다음 VHDL 코드를 입력합니다.
    -- IEEE 표준 라이브러리 라이브러리를 로드합니다. IEEE.STD_LOGIC_1164.ALL 사용;-- 전체 가산기 입력 및 출력 엔티티 정의 FULL_ADDER는 포트( A:std_logic, B:std_logic, C_IN:std_logic, S:std_logic, C_OUT:std_logic _FULL 출력), 엔터티 종료 -- FULL_ADDER isbegin S <=(A XOR B) XOR C_IN의 전체 추가 아키텍처 BEHAVIORAL의 동작을 정의합니다. C_OUT <=(A AND B) OR ((A XOR B) AND C_IN);종료 아키텍처 BEHAVIORAL;

    이것은 하드웨어 디자인 언어 에서 조사한 것과 동일한 단일 비트 전가산기 코드입니다. 1장, 고성능 임베디드 시스템 설계 섹션 . 그림 4.16 Vivado 편집기 창에 코드 표시:


    그림 4.16 – FullAdder.vhdl 소스 코드

    1. 같은 방법으로 Adder4(Behavioral) (Adder4.vhdl) 를 두 번 클릭합니다. 디자인 소스 아래 . Adder4.vhdl의 자동으로 채워진 콘텐츠를 삭제합니다. 편집기 창에서 Adder4.vhdl 에 다음 코드를 입력합니다. 편집자:
    -- IEEE 표준 라이브러리 라이브러리를 로드합니다. IEEE.STD_LOGIC_1164.ALL 사용;-- 4비트 가산기 입력 및 출력 항목 정의 ADDER4는 포트입니다( A4:in std_logic_vector(3 downto 0); B4:in std_logic_vector(3 downto 0); SUM4:out std_logic_vector(3 downto0). ); C_OUT4:out std_logic );end entity ADDER4;-- ADDER4의 BEHAVIORAL 4비트 가산기 아키텍처의 동작 정의 -- 전체 가산기 구성 요소의 이전 정의 참조 FULL_ADDER는 포트( A:std_logic, B:in std_logic, C_IN:std_logic에서, S:std_logic에서, C_OUT:std_logic에서 ); 최종 구성 요소; -- 4비트 가산기 신호에서 내부적으로 사용되는 신호 정의 c0, c1, c2 :std_logic;begin -- 첫 번째 가산기에 대한 캐리 입력이 0으로 설정됨 FULL_ADDER0 :FULL_ADDER 포트 맵( A => A4(0), B => B4(0), C_IN => '0', S => SUM4(0), C_OUT => c0 ); FULL_ADDER1 :FULL_ADDER 포트 맵 ( A => A4(1), B => B4(1), C_IN => c0, S => SUM4(1), C_OUT => c1 ); FULL_ADDER2 :FULL_ADDER 포트 맵 ( A => A4(2), B => B4(2), C_IN => c1, S => SUM4(2), C_OUT => c2 ); FULL_ADDER3 :FULL_ADDER 포트 맵 ( A => A4(3), B => B4(3), C_IN => c2, S => SUM4(3), C_OUT => C_OUT4 ); 아키텍처 종료 BEHAVIORAL;

    이 코드는 단일 비트 전가산기의 복사본 4개를 인스턴스화합니다. 최하위 가산기로의 캐리는 0으로 설정되고 각 가산기의 캐리는 다음 최상위 가산기로 파급됩니다. 두 개의 4비트 숫자를 더한 결과는 4비트 결과와 단일 비트 캐리가 됩니다.


    그림 4.17 – Adder4.vhdl 소스 코드

    다음 기사에서는 디자인을 테스트하고 Arty 보드에 대한 디자인을 구현하는 방법을 보여줍니다.

    Packt Publishing의 허가를 받아 재인쇄했습니다. 저작권 © 2021 팩트 퍼블리싱


    짐 레딘 Ledin Engineering, Inc.의 CEO입니다. Jim은 임베디드 소프트웨어 및 하드웨어 설계, 개발 및 테스트 전문가입니다. 그는 또한 임베디드 시스템 사이버 보안 평가 및 침투 테스트를 수행합니다. 그는 학사 학위가 있습니다. Iowa State University에서 항공우주 공학 학위 및 M.S. Georgia Institute of Technology에서 전기 및 컴퓨터 공학 학위를 취득했습니다. Jim은 캘리포니아에 등록된 전문 전기 엔지니어이자 CISSP(공인 정보 시스템 보안 전문가), CEH(공인 윤리 해커) 및 CPT(공인 침투 테스터)입니다.

    관련 콘텐츠:

    더 많은 Embedded를 보려면 Embedded의 주간 이메일 뉴스레터를 구독하세요.


    임베디드

    1. 액체 적층 제조:액체로 3D 물체 만들기
    2. 임베디드 시스템 디자인이란:디자인 프로세스의 단계
    3. 내장된 AI로 빅 데이터를 스마트 데이터로 전환
    4. Arrow Electronics, 유럽 FPGA 개발자 대회 개최
    5. 광학 센서로 혈압을 측정하는 디자인 키트
    6. 방위용 FPGA가 조기 액세스로 데뷔
    7. Raspberry Pi 및 Python으로 로봇 구축
    8. Raspberry Pi로 세그웨이 구축
    9. Windows IoT 기반 GoPiGo v2
    10. 첨가제 결합