고성능 임베디드 시스템 설계

FPGA, 맞춤형 회로 기반 고성능 실시간 디지털 시스템 설계와 구축
$42.26
SKU
9791161756721
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Fri 12/6 - Thu 12/12 (주문일로부 10-14 영업일)

Express Shipping estimated by Tue 12/3 - Thu 12/5 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2022/09/23
Pages/Weight/Size 188*235*30mm
ISBN 9791161756721
Categories IT 모바일 > OS/데이터베이스
Description
최신 기술의 디바이스를 설계하기 위해 고성능 임베디드 시스템 개발 과정 및 FPGA를 이용한 펌웨어 개발을 설명한다. 세 파트에서 각각 임베디드 시스템과 FPGA 개념 소개, FPGA 기능, 고성능 회로 설계, 펌웨어 개발 및 테스트를 자세히 설명한다. 이 책으로 임베디드 개발자가 고성능 임베디드 디바이스 전체 개발 과정을 알 수 있다.
Contents
1부. 고성능 임베디드 시스템 기초

1장. 고성능 임베디드 시스템 설계

__기술 요구 사항
__임베디드 시스템 요소
____전원
____시간 축
____디지털 처리
____메모리
____소프트웨어와 펌웨어
____특수 회로
____환경으로부터 입력
____환경으로 출력
____네트워크 통신
____사물인터넷
__실시간 동작
____주기적 동작
____이벤트 기반 동작
____실시간 운영체제
__임베디드 시스템에서의 FPGA
____디지털 논리 게이트
____플립플롭
____FPGA 요소
____FPGA 합성
____하드웨어 설계 언어
____임베디드 시스템 설계에서 FPGA 사용의 장점
____자일링스 FPGA 및 개발 도구
__요약

2장. 세계를 감지하기

__기술 요구 사항
__수동 선서, 능동 센서, 스마트 센서의 개요
__아날로그-디지털 변환기 적용
__임베디드 시스템이 사용하는 센서 유형
____빛
____온도
____압력
____습도
____유체 흐름
____힘
____초음파
____오디오
____자기
____화학
____이온화 방사선
____레이더
____라이다
____비디오와 적외선
____관성
____GPS
__센서와의 통신
____GPIO
____아날로그 전압
____I2C
____SPI
____CAN 버스
____무선
__센서 데이터 처리
__요약

3장. 실시간 동작

__기술 요구사항
__실시간의 의미
__실시간 임베디드 시스템의 속성
____다중 작업 수행하기
____비율 단조 스케줄링
__주요 RTOS 기능 및 과제 이해
____뮤텍스
____세마포어
____큐
____이벤트 플래그
____타이머
____동적 메모리 할당
____교착상태
____우선순위 역전
__많이 사용되는 실시간 운영체제
____embOs
____FreeRTOS
____INTEGRITY
____Neutrino
____μc/OS-III
____VxWorks
__요약

2부. 고성능 임베디드 시스템 설계 및 구축

4장. FPGA 프로그램 개발 시작하기

__기술 요구사항
__실시간 임베디드 시스템 설계에서 FPGA 사용
____블록 램과 분산 램
____FPGA 입출력 핀과 관련 기능
____전문 하드웨어 자원
____프로세서 코어
__FPGA 0구현 언어
____VHDL
____Verilog
____블록 다이어그램
____C/C++
__FPGA 개발 과정
____시스템 요구사항 정의하기
____FPGA에 기능 할당하기
____필요한 FPGA 기능 식별하기
____FPGA 설계 구현하기
__첫 FPGA 프로젝트 개발
____프로젝트 설명
____Vivado 도구 설치하기
____프로젝트 만들기
____VHDL 소스 파일 만들기
____로직 동작 테스트하기
____입출력 신호 정의하기
____최상위 VHDL 파일 만들기
____FPGA 비트스트림 합성 및 구현하기
____비트스트림을 보드에 다운로드하기
____비트스트림을 탑재된 플래시 메모리에 프로그램하기
__요약

5장. FPGA로 시스템 구현하기

__기술 요구사항
__FPGA 컴파일 과정
____설계 엔트리
____로직 합성
____설계 최적화
____상위 수준 합성
____최적화와 제약사항
__FPGA 구현에 최적인 알고리듬 유형
____고속 데이터 스트림을 처리하는 알고리듬
____병렬 알고리듬
____비표준 데이터 크기를 사용하는 알고리듬
__오실로스코프 FPGA 프로젝트 시작
____프로젝트 설명
____기본 Vivado 프로젝트
__요약

6장. KiCad를 이용한 회로 설계하기

__기술 요구사항
__KiCad 소개
__KiCad 기본 절차
____회로 부품 배치 및 연결
____부품 심볼 생성
__프로젝트 회로도 다이어그램 개발
____텍스트 주석 추가
____신호 레이블 추가
____전역 레이블 추가
____차동 신호 쌍 생성
____외장 연결 생성
____심볼 주석 및 전기 규칙 확인
__PCB 레이아웃 만들기
__회로기판 프로토타입 만들기
__요약

7장. 고성능 디지털 회로 만들기

__기술 요구사항
__회로 기판 조립 도구 및 과정
____광학 확대
____핀셋
____플럭스
____땜납
____정전기 보호
____수작업 납땜
____솔더 윅
____솔더 페이스트 애플리케이션
____리플로우 납땜
____조립 준비 및 부품 배치
__리플로우 납땜과 수작업 납땜
____리플로우 납땜
____수작업 납땜
__조립 후 보드 세척 및 검사
____플럭스 제거
____조립 후 시각적 검사
____전기적 단락 검사
__요약

3부. 실시간 펌웨어 구현 및 테스트

8장. 처음으로 보드 브링업하기

__기술적 요구사항
__전원 켜기 준비
____기판 전원 공급
__회로 기본 기능 검사
____기판 전원 공급 검사
____아날로그 증폭기 검사
____ADC 검사
__문제 발생 시 회로 수정
____PCB 트레이스 절단
____솔더 점퍼와 점퍼 와이어 설치
____부품 제거
____부품 추가
__FPGA 로직 추가 및 I/O 신호 검사
ADC 인코더 클럭과 1KHz 보정 신호 생성
__요약

9장. 펌웨어 개발 과정

__기술 요구사항
__FPGA 알고리듬 설계 및 구현
____디지털 오실로스코프 시스템 개요
____직병렬 변환기 추가
____FIFO 버퍼 추가
____AXI 버스 인터페이스 추가
____MQTT 프로토콜 추가
__코딩 스타일
____이름 규칙
____코드 내 주석
____리터럴 숫자 값 피하기
____괄호와 들여쓰기, 세로 간격
____가독성과 정확도에 우선순위 두기
____어설픈 최적화 피하기
____구현 정의된 동작 피하기
____무조건 점프 피하기
____식별자 범위 최소화
____상수 항목은 상수로 표현하기
____코드 자동 포맷팅
__소스코드 정적 분석
____소스코드 정적 분석의 의미
____정적 소스 분석 도구
____정적 코드 분석을 효과적으로 사용하기
____가장 중요한 메시지부터 시작하기
____분석기 출력 메시지 해결하기
____일반적인 소스 코드 분석기 메시지
__소스코드 버전 제어
____Git을 사용한 버전 제어
____테스트 주도 개발
____임베디드 시스템에 적용되는 TDD
__요약

10장. 임베디드 시스템 테스트 및 디버깅

__기술적 요구사항
__시스템 수준 테스트 설계
____요구사항 주도 테스트
____수행 가능한 조건과 수행 가능하지 않은 조건에서 테스트
____단위 테스트와 기능 테스트
____음성 테스트와 침투 테스트
____시뮬레이션된 환경에서 테스트
____반복 가능한 테스트 결과 얻기
____테스트 계획 개발
__테스트 수행 및 결과 기록
____수집할 데이터 식별
____테스트 할 시스템 구성
____테스트 절차 수행
____테스트 결과에 관한 빠른 평가
____필요 시 테스트 반복
____기존 코드의 회귀 테스트
__포괄적인 테스트 범위 보장
____요구사항 추적성 매트릭스
____코드 적용 범위 추적
____어느 수준의 테스트가 충분한지 정의하는 기준 설정
__효과적인 디버깅 기법
____문법 혹은 컴파일 에러 및 경고 처리
____정적 코드 분석과 단위 테스트 사용
____문제를 명확히 정의하고 재현하기
____입력이 올바른지 결정하기
____시스템에 대한 가시성 확보 방법 찾기
____이진 탐색 디버깅 과정 사용
____기능의 일부를 임시로 제거하기
____문제를 나타내는 가장 작은 프로그램 만들기
__고성능 임베디드 시스템 개발의 모범사례 요약
____테스트를 위한 설계
____개선을 위한 여지 남기기
____미래의 기능을 고려한 하드웨어 설계
____현재 필요한 코드만 개발하기
____철저한 버전 제어 유지하기
____코드 개발 중에 단위 테스트 개발하기
____기능이 구현되는 시점부터 시스템 수준 테스트 시작하기
__요약
Author
짐 레딘,정병혁,곽종원
레딘 엔지니어링사의 CEO로, 임베디드 소프트웨어/하드웨어 설계 및 개발, 테스트 전문가다. 임베디드 시스템 사이버 보안 평가 및 모의 해킹에 참여했다. 아이오와 주립대학교에서 항공 공학을 전공했고, 조지아 공과대학에서 전기 및 컴퓨터 공학으로 석사를 받았다. 캘리포니아주 공인 전문 전기기사이며, CISSP(Certified Information System Security Professional), CEH(Certified Ethical Hacker), CPT(Certified Penetration Tester)이다.
레딘 엔지니어링사의 CEO로, 임베디드 소프트웨어/하드웨어 설계 및 개발, 테스트 전문가다. 임베디드 시스템 사이버 보안 평가 및 모의 해킹에 참여했다. 아이오와 주립대학교에서 항공 공학을 전공했고, 조지아 공과대학에서 전기 및 컴퓨터 공학으로 석사를 받았다. 캘리포니아주 공인 전문 전기기사이며, CISSP(Certified Information System Security Professional), CEH(Certified Ethical Hacker), CPT(Certified Penetration Tester)이다.