고성능 임베디드 시스템 설계 (FPGA, 맞춤형 회로 기반 고성능 실시간 디지털 시스템 설계와 구축)

고성능 임베디드 시스템 설계 (FPGA, 맞춤형 회로 기반 고성능 실시간 디지털 시스템 설계와 구축)

$36.33
Description
최신 기술의 디바이스를 설계하기 위해 고성능 임베디드 시스템 개발 과정 및 FPGA를 이용한 펌웨어 개발을 설명한다. 세 파트에서 각각 임베디드 시스템과 FPGA 개념 소개, FPGA 기능, 고성능 회로 설계, 펌웨어 개발 및 테스트를 자세히 설명한다. 이 책으로 임베디드 개발자가 고성능 임베디드 디바이스 전체 개발 과정을 알 수 있다.
저자

짐레딘

JimLedin
레딘엔지니어링사의CEO로,임베디드소프트웨어/하드웨어설계및개발,테스트전문가다.임베디드시스템사이버보안평가및모의해킹에참여했다.아이오와주립대학교에서항공공학을전공했고,조지아공과대학에서전기및컴퓨터공학으로석사를받았다.캘리포니아주공인전문전기기사이며,CISSP(CertifiedInformationSystemSecurityProfessional),CEH(CertifiedEthicalHacker),CPT(CertifiedPenetrationTester)이다.

목차

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입출력핀과관련기능
____전문하드웨어자원
____프로세서코어
__FPGA0구현언어
____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장.임베디드시스템테스트및디버깅
__기술적요구사항
__시스템수준테스트설계
____요구사항주도테스트
____수행가능한조건과수행가능하지않은조건에서테스트
____단위테스트와기능테스트
____음성테스트와침투테스트
____시뮬레이션된환경에서테스트
____반복가능한테스트결과얻기
____테스트계획개발
__테스트수행및결과기록
____수집할데이터식별
____테스트할시스템구성
____테스트절차수행
____테스트결과에관한빠른평가
____필요시테스트반복
____기존코드의회귀테스트
__포괄적인테스트범위보장
____요구사항추적성매트릭스
____코드적용범위추적
____어느수준의테스트가충분한지정의하는기준설정
__효과적인디버깅기법
____문법혹은컴파일에러및경고처리
____정적코드분석과단위테스트사용
____문제를명확히정의하고재현하기
____입력이올바른지결정하기
____시스템에대한가시성확보방법찾기
____이진탐색디버깅과정사용
____기능의일부를임시로제거하기
____문제를나타내는가장작은프로그램만들기
__고성능임베디드시스템개발의모범사례요약
____테스트를위한설계
____개선을위한여지남기기
____미래의기능을고려한하드웨어설계
____현재필요한코드만개발하기
____철저한버전제어유지하기
____코드개발중에단위테스트개발하기
____기능이구현되는시점부터시스템수준테스트시작하기
__요약

출판사 서평

◈이책에서다루는내용◈

◆실시간임베디드시스템과센서의기본
◆FPGA의기능과개발도구사용법
◆디지털회로설계와KiCad를사용한PCB레이아웃
◆저렴한비용으로고속회로보드프로토타입제작
◆FPGA용고성능알고리듬설계및개발
◆C를이용한견고하고안정적이며효과적인펌웨어개발
◆임베디드디바이스하드웨어와펌웨어의완전한테스트및디버깅

◈이책의대상독자◈

소프트웨어개발자나하드웨어엔지니어,사물인터넷개발자,고성능임베디드시스템개발과정을이해하고자하는이들을위한책이다.FPGA개발의기본및C나C++로작성된펌웨어개발에관심이있다면도움이될것이다.C언어와디지털회로,전자부품납땜(솔더링)등의기초를알고있어야한다.

◈이책의구성◈

1장,‘고성능임베디드시스템설계’에서는임베디드시스템구조를이루는요소를소개하고여러임베디드애플리케이션에서공통적으로사용하는주요시스템기능을소개한다.
2장,‘세계를감지하기’에서는다양한임베디드애플리케이션에서사용되는센서의이론및구현을소개한다.
3장,‘실시간동작’에서는임베디드시스템이센서나다른자원들로부터측정된입력에대해실시간응답을생성해야할필요성을다룬다.실시간운영체제(RTOS)의개념및주요기능을소개하며,실시간애플리케이션에서멀티태스킹을구현할때흔히겪는어려움도알아본다.
4장,‘FPGA프로그램개발시작하기’에서는실시간임베디드시스템에서FPGA장치의효과적인사용법이무엇인지설명한다.표준FPGA에포함된기능적요소를알아본다.HDL(하드웨어명세언어)와블록다이어그램기법,C나C++같은자주사용되는소프트웨어프로그래밍언어를포함하는다양한FPGA설계언어를소개한다.
5장,‘FPGA로시스템구현하기’에서는FPGA를사용한임베디드디바이스설계및구현과정을깊게살펴본다.
6장,‘KiCad를이용한회로설계하기’에서는훌륭한전자설계및자동화도구오픈소스인KiCad를소개한다.KiCad을통해회로도를사용한회로를설계하고해당인쇄회로기판레이아웃을개발한다.
7장,‘고성능디지털회로만들기’에서는표면실장(surfacemount)과삽입실장(throughhole)전자부품을사용한프로토타입고성능디지털회로조립관련과정과기법을설명한다.그리고솔더링스테이션과확대경,현미경,작은부품을처리하기위한핀셋등의도구들을추천한다.
8장,‘처음으로보드브링업하기’에서는이미설계및구성,청소,검사된인쇄회로기판에전원을공급하는방법즉,악명높은기초안전성검사(스모크테스트)수행하는법을다룬다.
9장,‘펌웨어개발과정’에서는기본동작하는회로보드에아날로그-디지털변환기(ADC)와의통신을포함한FPGA알고리듬의남은주요과정들을다루며,마이크로블레이즈프로세서펌웨어를개발한다.
10장,‘임베디드시스템테스트및디버깅’에서는이제임베디드시스템개발이거의완성됐으므로시스템이동작할환경에서완전한테스트방법을설명한다.또한권장하는디버깅과정에관한논의와고성능임베디드시스템개발의모범사례를살펴본다.