G
Guest
Guest
내가이 책을 찾기 위해 도움이 될까요? :
C - 높은 성능의 FPGA 가속 소프트웨어 애플 리케이션을 구축하기위한 기반 기술
회로, 장치 및 시스템
C - 최적화의 FPGA의 성능, 설계 유연성을위한 기반 기술, 그리고 시간을 시장에
앞으로 클라 이브로 "최고"Maxfield 기록됩니다.고성능의 FPGA 가속 소프트웨어 애플 리케이션 분야의 커뮤니케이션 및 이미지 프로세싱 및 과학적 컴퓨팅과 생물 의학에 이르기까지 수요가 증가됩니다.이 책은 강력한 C 도입 기반의 병렬 이러한 응용 프로그램을 만들기위한 프로그래밍 기법들을 검증 및 FPGA 하드웨어로 이동.
저자 다리가 기존의 "소프트웨어 개발 방법 및 FPGA의 철학을"사이의 차이 기반의 디지털 설계.그 까닭은 그들의 코드의 양을 직접 하드웨어에서 실행되는 동안 경이적인 성능을 달성하는 소프트웨어 엔지니어로 FPGA를보고 ","다른 프로그램의 컴퓨팅 리소스를 배우게됩니다.하드웨어 엔지니어들은 그들을 디자인하면서 대안을 탐구하고 훨씬 더 신속하게 프로토 타입을 제작할 수 있도록 완벽하게 기존의 HDL을 전문 지식, 기술을 마스터를 보완하는 것입니다.두 그룹은 어떻게 / 소프트웨어 공동 설계 및 개선 컴파일, 디버깅 및 테스트를 효율적으로 하드웨어를 지원하는 C를 활용 방법을 배웁니다.
이해하면 C와 FPGA 개발의 의미가 어디에 귀하의 기존 프로세스에 맞는
활용 C 혼합 직접 하드웨어에 소프트웨어 애플 리케이션을 구현할 수 / 소프트웨어 플랫폼
데스크톱 PC 환경 및 시스템을 사용하여 임베디드 프로세서에서 실행 및 테스트 같은 C 알고리즘
새로운 마스터는 C 기반의 프로그래밍 모델과 기술이 고도로 병렬의 FPGA 플랫폼에 최적화된
자동으로 컴파일을 통해 성능을 최적화하여 과급
다중을 사용하여 프로세스를 진정으로 놀라운 성능을 제공하는 프로그래밍 모델을 스트리밍
FPGA를 컴퓨팅의 미래 미리보기
현실적인 C 코드 예제를 광범위하게 설정 연구
웹 사이트에 대하여
충분히 시간을 운영 - C의 제한된 버전의 컴파일러를 기반으로 FPGA 설계 http://www.ImpulseC.com/practical 다운로드뿐만 아니라, 추가적인 예제와 프로그래밍 도움말을 참조하십시오.이야 저작권 피어슨 교육.판권 소유.목차
머리말 클라 이브로 "최대"Maxfield.
이유는 하드웨어에 여러분의 관심이 책은 무엇입니까?
그리고 소프트웨어는 남자와 여자들은 어떡하고?
그럼 어떻게 잡을거야?
서문.
C 언어의 FPGA를위한 하드웨어 디자인을 바탕으로?
소프트웨어 가속을위한 매력적인 플랫폼.
실험에 전원.
예약하는 방법이 구성되어있다.
이 도서는 어디에서 왔어.
Acknowledgments /
1.FPGA를 컴퓨팅 플랫폼이다.
빠른 FPGA를 소개합니다.
FPGA 기반의 프로그래밍 하드웨어 플랫폼.
비용을 낮추는 한편 성능 향상.
도구 역할을합니다.
FPGA를 임베디드 소프트웨어 플랫폼이다.
프로그래밍 추상화의 중요성.
언제 FPGA 디자인을위한 C 언어 적절한인가요?
도서를 사용하는 방법이있습니다.
2.프로그래머블 플랫폼의 간략한 역사.
출처 프로그래머블 로직있습니다.
Reprogrammability, HDLs, 그리고 FPGA의 일어나라.
프로그래머블 시스템 칩있습니다.
병렬 컴퓨팅을위한 FPGA를.
요약.
3.프로그래밍 모델 FPGA를위한 기반 애플 리케이션.
병렬 처리 모델.
병렬 컴퓨팅 머신으로 FPGA를.
병렬 처리를위한 프로그래밍.
의사 소통 프로세스 프로그래밍 모델.
임펄스 C 프로그래밍 모델.
요약.
4.회사 소개 임펄스 C.에게
임펄스 C. 뒤에 동기 부여
임펄스 C 프로그래밍 모델.
최소 임펄스 C 프로그램.
프로세스, 스트림, 신호, 및 메모리.
임펄스 C 서명과 서명되지 않은 데이터 유형.
이해를 처리합니다.
이해 스트림.
출력 스트림을 사용합니다.
입력 스트림을 사용합니다.
스트림 교착 상태 방지.
신호 생성 및 사용하기.
이해 레지스터.
공유 메모리를 사용하여.
메모리 및 스트림의 성능 고려 사항.
요약.
5.에는 FIR 필터를 묘사.
설계 개요.
하드웨어에는 FIR 필터 공정.
소프트웨어 테스트 벤치.
데스크탑 시뮬레이션.
응용 프로그램을 모니터링.
요약.
6.생성 FPGA 하드웨어.
하드웨어 세대 흐름.
생성된 구조 이해.
스트림 및 신호 인터페이스.
이해 스트리밍 프로토콜에 HDL을 시뮬레이션을 사용합니다.
생성된 하드웨어 디버깅.
하드웨어 차세대 노트.
효율적인 최적화 도구를 사용하여 만들기.
하드웨어, 프로세스에 대한 언어 제약.
요약.
7.증가 정책 수준 평행.
모델 FPGA를 계산합니다.
C 언어 의미론과 평행.
취약점을 명령 수준 평행.
단계 명령 제한.
Unrolling 루프.
파이프 라이닝 설명했다.
요약.
8.충동 C.하는 레거시 응용 프로그램을 포팅
트리플 데 알고리즘입니다.
스트리밍 모델 변환 알고리즘.
소프트웨어 시뮬레이션을 수행.
하드웨어 컴파일.
예선 하드웨어 분석.
요약.
9.임베디드 테스트 벤치를 작성합니다.
혼합 하드웨어 및 소프트웨어 어프로치.
임베디드 프로세서 생성기를 테스트합니다.
역할 하드웨어 시뮬레이터.
테스트 트리플 데 알고리즘을 하드웨어했다.
소프트웨어 스트림 매크로 인터페이스.
테스트 시스템 구축.
요약.
10.C의 FPGA의 성능을 최적화합니다.
알고리즘의 성능에 대한 재검토.
루프 상세 검색을 도입하여 1 : 크기 줄이기.
수정 2 : 배열을 분할.
상세 검색 3 : 스트리밍 성능 향상.
상세 검색 4 : 루프 Unrolling.
상세 검색 5 : 메인 루프 파이프 라이닝.
요약.
11.묘사 시스템 레벨 평행.
설계 개요.
데스크탑 시뮬레이션을 수행.
수정 1 : 만들기 병렬 8 비트 필터.
수정 2 : 생성 시스템 - 레벨 파이프라인.
하드웨어 응용 프로그램을 이동.
요약.
12.임베디드 운영 체제와 임펄스 C 결합.
uClinux는 운영 체제.
uClinux는 시범 프로젝트.
요약.
13.만델브로 이미지 생성.
설계 개요.
C로 알고리즘을 표현
고정 소수점 등가 만들기.
스트리밍 버전 만들기.
알고리즘 Parallelizing.
미래의 수정.
요약.
14.미래의 FPGA 컴퓨팅.
FPGA를 고성능 컴퓨터이다.
미래의 FPGA 컴퓨팅.
요약.
부록 A. 임베디드 프로세서의 FPGA의 대부분의 방법.
임베디드 프로세서의 FPGA 개요.
주변 기기 및 메모리 컨트롤러.
프로세서 성능 향상.
최적화 기법의 FPGA되지 않습니다 - 다릅니다.
FPGA용으로 특정 최적화 기법.
요약.
부록 B. 사용자 정의 스트림 인터페이스를 작성합니다.
응용 프로그램 개요.
데이터 스트리밍을위한 DS92LV16 직렬 연결합니다.
스트림 인터페이스 상태 머신을 설명합니다.
데이터 전송.
요약.
부록 C. 임펄스 C 함수 레퍼런스.
부록 D. 트리플 - 데스 소스 리스팅.
부록 E. 이미지 필터를 리스팅.
부록 D. 선택한 참조.
색인.
서문
이것은 FPGA를위한 소프트웨어 프로그래밍에 대한 책이있다.더 이상이 책에 대해 병렬 프로그래밍 기법을 사용하는 조합의 C 언어와 FPGA를 만들고 가속 소프트웨어 응용 프로그램을 특정해야합니다.
우리는 방법은 다리 격차는 소프트웨어 개발 방식과 철학 사이에 존재 사실 큰 차이 도움이 책이 쓰여 있는데 FPGA의 철학을 기반으로 디지털 디자인.우리가 이해는 우리가 두 개의 매우 다른 대상 : 소프트웨어 응용 프로그램 개발자 및 디지털 하드웨어 설계자에게 서면으로 결과 수있습니다.
소프트웨어 엔지니어를 위해, 우리의 목표는 소프트웨어의 FPGA 프로그래밍의 컴퓨팅 리소스가 존재하는 것입니다.우리가 이러한 장치에 적절한 방법을 사용하면 프로그램, 이렇게 다른 다른 비되지 않습니다 - DSP는 등 전통적인 컴퓨팅 플랫폼, 보여줄 수 있도록 노력하겠습니다.우리는, 예를 들어 통해 소프트웨어 개발 방법과 소프트웨어를 언어로 FPGA를 만드는 실질적인 방법으로 사용될 수있는 기반이 표시됩니다 고성능 컴퓨팅 애플 리케이션, 하드웨어 디자인의 깊은 지식없이도.
하드웨어 설계자에 대한 우리의 의도와 비슷하지만 주의해야와 함께, 우리는 설계하여 기존 방법을 대체하려고하지 않거나 것이 좋습니다하는 방법과 도구를이 책에 설명된 하드웨어 엔지니어링의 "차세대"를 나타냅니다.어쨌든, 만약 당신이 다음의 FPGA 설계자이 책은, C에서 실용의 FPGA 프로그래밍의 제목이 복잡한 전자 시스템을 만들 VHDL 또는 Verilog를 사용하는 당착 어법과 같은 소리가있습니다.어떻게 C가 소프트웨어 프로그래밍 언어, 디지털 전자 제품의 하드웨어를 설명하는 실용적인 방법이있을 수 있습니까?사실은, 때로는 명시적으로 정확한 설명을 하드웨어 설명 언어 (HDLs)에 의해 제공됩니다 설계 목표를 달성하기 위해 필수적입니다.그러나, 우리는, 하드웨어 이상이 명시적인 제어가 필요하지 않습니다 항상 나타납니다.같은 방법으로 한 최초의 그리고 C에서 소프트웨어를 작성할 수있습니다 어셈블러의 주요 부분을 레코딩에서는 하드웨어 디자이너의 도구들을 섞어 높은 레벨과 낮은 레벨의 설명대로 최대한 빨리 설계 목표를 달성하는 데 필요한 도움을받을 수 있도록 .심지어 때 전체 하드웨어 설계 결국 낮은 수준의 HDL을 함께 recoded 될 것입니다 높은 수준의 디자인 언어로 하드웨어 설계 엔지니어들이 빠르게 공간을 찾아보기 위해 노력하고 프로토 타입을 제작할 수있습니다.
경험 많은 하드웨어 엔지니어, 당신을 위해 그럼, 우리끼리 상태를 바로 앞에 우리가 당신과 함께 동의합니다.우리는 C 및 C (같은 프로그래머들이 전세계의 군대에 의해 사용) 믿지 않는 VHDL, Verilog 또는 다른 HDL을위한 실질적인 대체됩니다.그리고 우리는 당신이 C 및 C 일반적인 목적을위한 ASIC 및 FPGA 설계, 적어도 우리가 같은 디자인을 잘 알고 설계 항목을 언어로 오늘날의 역할, 또는 심지어 중요한, 최고의 재생되지 않을 수있습니다 동의합니다.그럼에도 불구하고 우리는 거기에 C는 장소를 기반 설계 하드웨어 디자인의 흐름을 믿습니다.아직도 확신하지?힘내십시오 순간을 위해 우리가 설명해 줄게.
C 언어의 FPGA 기반 하드웨어 디자인?
같은 사건을 하드웨어 디자인이 될 수있습니다 좀 더 C 또는 역할의 부족의 역할에 대해 생각하자.왜 표준 C 기존의 하드웨어 설계 언어에 대한 대체로서 적절하지?왜냐하면 좋은 프로그래밍 언어에 중요한 한 가지 : 목표의 유용한 추상화를 제공합니다.VHDL 및 Verilog (또는 좀더 정확히 말해, 이러한 언어의 합성 하위 집합) 매우 잘하기 때문에 하드웨어의 특정 클래스의 합리적, 효율적으로 추상화 : 레벨 및 첨단 재설정 및 클럭 로직 민감한 레지스터, 임의의 논리 게이트를 제공, 성공 다소 큰 클럭 로직 엘리먼트 고도의 병렬 방식으로 마련하였습니다.전체 오늘의 FPGA는이 패턴에 맞게, 그것도 오늘날의 ASIC 설계의 대부분에서, 아무리 복잡한 패턴을 발견했다.
표준 C 언어 (우리는 전송 수준 또는 등록은 RTL)의 전화, 그래서는 "C 추상화의 수준을 제공하지 않는 하드웨어에 대한"언어를 기반으로 추가할 수있습니다 RTL과 같은 구문을 장식, 추가 기능 또는 키워드의 형태로 구성, 컴파일러 힌트 및 자세한 내용 병렬 표현 및 클럭 및 리셋과 같은 낮은 수준의 하드웨어 구조를 설명하는 몇 가지 의미있는 방법으로 만들 수있습니다.하지만이 사건에서 우리는 단지 새로운 구문을 사용하여 다른 HDL을 가지고있다.다른 한편은 RTL의 혜택없이는 다음과 같이 구성, FPGA 및 기타 비 수 있도록, C 컴파일러의 개발 - 전통적인 목표를 거의 불가능한 문제에 직면할 수도있다 : 얼마나 효율적으로 처리 알고리즘 및 애플 리케이션을 하나의 수업 목표를 위해 작성된지도 ( 뭔가 완전히 다른 전통적인 마이크로 프로세서) (임의의 논리 게이트 및 등록과 함께 다소 높은 수준의 논리 구조).비록 우리가 더 나은 방법이있습니다 그것은 아직 아무도 어떻게 효율성을 합리적인 수준의 순수 소프트웨어 응용 프로그램에서 매핑을 어떻게 밖으로 생각했다.
그럼 왜이 모든 FPGA 설계에 대한 C를 사용합니까?거기에 대한 잠재적인 하드웨어 - 소프트웨어 통합 설계 등 상당한 이점, 테스트 벤치는 C로 작성의 작성 및 수있습니다 (해당되는 경우 수정된 C 언어) 능력을 컴파일하고 FPGA를 응용 프로그램의 표준 C 개발 환경을 사용하여 디버그 그것을 지원합니다.그리고 만약 중간 하드웨어 추상화 수준의 접근 방식, 그리고 하나는 프로그래머가 하드웨어를 타겟의 모든 내용을 이해를 필요로하지 않습니다 아직 반영되어 그때 우리는 소프트웨어 간의 균형을 공격할 수있다는 코딩이 더 적절한 방법을 향해 프로그래밍 모델에 의해 가이드입니다 설계 생산성 및 하드웨어 설계 결과로 시스템의 성능과 크기를 측정했다.
매력적인 플랫폼 소프트웨어 가속
어디로 소프트웨어 개발자들이 애플 리케이션 안으로 들어오세요 여기에있어 고성능 컴퓨팅을위한 하드웨어 가속기로 FPGA를 사용하는 방향으로 증가 추세 쪽.수요와 같은 고성능의 통신, 이미지 프로세싱을 포함하는 여러 도메인에 존재하는 어플 리케이션, 미디어 및 기타 범용 신호 처리 스트리밍.다른 한편, 금융 생명 과학 대표하는 이러한 응용 프로그램의 대부분의 임베디드 소프트웨어의 공간에서, 그리고 다른 큰 규모의 컴퓨팅 솔루션입니다.
가속이 필요하면, 이러한 응용 프로그램은 일반적으로, C 언어를 자주, 그리고 나서 수동으로 다시 소프트웨어를 모델로 자신의 인생을 시작 작성된 및 하드웨어의 VHDL 또는 Verilog를 사용하여 구현했습니다.하드웨어와 소프트웨어 알고리즘이 수동으로 전환을 그렇게 오래있을 수있는 극도로 지루한 과정이고, 따라서 그곳에서 일하는 더 빠른 하드웨어 경로에 대한 수요이다.또한 강한 욕망을 나중에 하드웨어 소프트웨어 알고리즘 업데이 트를 반영하는 방법에 redesigns 않도록하는 것입니다.하드웨어의 전환은 매우 하드웨어 프로토 타입을 만드는 목적을위한 최소한의 소프트웨어 프로세스를 자동화하므로 매우 매력적이다.또한 이것은 자동화 설계 및 개발 팀들의 도착 시간은 광범위한 하드웨어 디자인 전문 지식, 또는 어디에 하드웨어 설계 비용 으로서는 전통적인 접근 방식을 이용할 수 없어 하드웨어 가속 가져온다.하드웨어를 C 컴파일은 애플 리케이션 개발자의 완전히 새로운 클래스에 대한 하드웨어 가속을 최대 열 수 있도록 잠재력을 가진 기술입니다.
하드웨어 측면에서, 저기 FPGA에서 최근의 진보 프로그래머블 플랫폼에서 응용 프로그램 가속기로 사용하기 위해 FPGA를 더욱 실용적인 확인을 기반으로하고있다.사실, 임베디드 프로세서 코어와 FPGA를 가지고가 될 비용 전체를 임베디드 시스템에 대한 대체 효과.FPGA를 "마침내 현실에 대한 전체"시스템 구축의 개념, 주요 FPGA를 제공하고 타사의 지적 재산권 (IP)을 공급 업체의 지속적인 노력에 감사합니다.이러한 새로운 FPGA를 무엇에 관한 일반적인 플랫폼을 기반으로 그들이 결합하여 하나 이상의 일반적인 프로그래머블 로직들이 로열티, 중고 부품 무료 테스트에 상당한 금액을 갖춘 와서 많은 양의과 (와 마찬가지로 상당히)와 목적 프로세서 코어 시간의 문제 제 3 자 라이센스 및 조립 될 수있는 오픈 소스 컴포넌트 칩 및 적 성장 잠재력 수집 하드웨어의 놀라울 정도의 다양한 세트를 만들 / 소프트웨어 프로세싱 플랫폼.
무엇이 새로운 장치와 그들이 대표하는 새로운 컴퓨팅 플랫폼에 대한 흥미로운 도구의 관점에서 그들이 충분한 소프트웨어 개발 세계의 전통적인 소프트웨어 디버거가 포함되지 않도록하는 방법과 도구의 사용을 지원하는 유연하고있습니다.C 및 C와 같은 언어를 사용하는 소프트웨어와 함께 - 하드웨어 컴파일러가 그것을 실천에 직접 혼합 하드웨어에 소프트웨어 애플 리케이션을 구현할 수있게 / 소프트웨어 플랫폼입니다.
여기는 FPGA 설계자들은 누구 요점을 놓치고있을 수있습니다 소프트웨어 설계 언어 및 FPGA를위한 방법 중 하나를 사용하여 질문입니다.C VHDL 및 Verilog와 같은 HDLs 교체에 대한 가능성이없는 기존의 일반적인 목적의 하드웨어 설계.C를하지만, 혼합 하드웨어의 종류에 강력한 역할을 할 것이다 / 그 어느 사이에 선 어떤 소프트웨어가 어떤 하드웨어가 오늘은 응용 프로그램에 등장하고있다 소프트웨어 애플 리케이션을 점점 흐리게 해지고, 어디 능력을 신속하게 프로토 타이핑 및 실험을 함께 구현 대안 중요합니다.
또한 FPGA를 임베디드 프로세서의 보급 때문에 있음, C 언어는 이미 수천 명의 소프트웨어 엔지니어로 FPGA를 위해 사용되고있습니다.문제는 대부분의 경우 이러한 소프트웨어 엔지니어만이 프로그램의 FPGA 내에 임베디드 마이크로 프로세서 수있습니다.이 책은 우리의 목표를 확인하는 것입니다 C 언어 프로그래밍 전체의 FPGA, 그 안에서뿐만 아니라 임베디드 마이크로 프로세서에 적용.
실험 전원
FPGA를 위해 원조로서 C 언어 프로그래밍을 사용하여 기반 하드웨어 설계 실험에 전원을 제공합니다.다른 하드웨어로 대체 알고리즘 접근법과 실험, / 소프트웨어 파티셔닝 및 대체 대상 플랫폼이다.같은 디자인 언어를 사용하여 항목, 당신은 지금 당신의 능력과 응용 프로그램을 평가하고 자신의 구성 다른 하드웨어와 소프트웨어를 대상으로 사용하는 알고리즘이있다.
이 책에서 우리는, 예를 들어, 어떤 동일한 C 언어 알고리즘, 단지 작은 수정과 데스크탑 컴퓨팅 환경에서 C를 디버거의 제어 (아래와 같은 실행될 수있는 테스트를 설정할 수있는 방법을 보여줍니다 Visual Studio에서 gbd 또는 이클립스) 기능 시뮬레이션의 목적에 대한 발견에서 실행될 수 - 임베디드 프로세서에 대한 시스템 및 직접 FPGA를 위해 전용 하드웨어로 컴파일됩니다., 근본적으로 다른 컴퓨팅의 대안 및 대체 재판을받을 수있는 하드웨어 / 소프트웨어 파티션 전략을 평가할 수있는이 방법을 사용합니다.마찬가지로 우리가 보는거야,이 전력을 신속하게 생성 및 하드웨어와 실험 / 소프트웨어 프로토 타입의 소프트웨어를 사용하는 주요 장점 - FPGA를위한 방법 및 도구를 기반으로합니다.
예약하는 방법이 조직
소프트웨어 및 하드웨어 개발자들을 위해, 우리는 FPGA 디바이스, 그들의 역사 및 그들을위한 도구를 사용할 수있는 형식에 대한 중요한 배경 정보 현재, 그리고 우리뿐만 아니라 몇 가지 가능한 FPGA의 설문 조사 컴퓨팅 플랫폼을 기반으로.
무대를 설정한 후, 우리는 그때, C 언어를 사용하여, 그리고 그 높은 병렬 프로그래밍 하드웨어 플랫폼에서 사용에 적합한 프로그래밍 모델을 프로그래밍 방법을 제시.이것은 전통적인 프로그래밍 모델을 어느 정도에서 더 많은 절차적 C 언어 프로그래밍지만, 경험이 풍부한 소프트웨어 엔지니어를 데리러 쉽게 사용 다르다.
우리는 다음 예제의 방법에 FPGA를 사용할 수있습니다 병렬 처리 기반의 대규모 수준의 플랫폼을 활용하는 방법을 보여줍니다 시리즈, 모든 C로 작성된로 이동이 재단.우리는 소프트웨어의 C 나은 최적화 컴파일러 자동화 도구를하여 언어 구문을 허용 코딩 기법을 설명합니다.이러한 기법을 이해하기 어렵지만없습니다 FPGA를 응용 프로그램의 성능에 크게 영향을 미칠 수있습니다.
나중에 챕터 현재의 스트리밍하는 방법 예제 프로그래밍 모델의 성능을보다 높은 수준을 생성하는 데 사용될 수있습니다.다중 프로세스를 프로그래밍 모델을 사용하여 스트리밍 성능 정말 놀라운 수준이 비교적 적은 노력하지만, 이러한 방법의 성능 수준을 달성하는 데 사용되는 전통적인 C 프로그래머에게 새로운 수도있습니다 다소 다른 결과가있습니다.
어디 갔었어요로부터 예약
현실 세계에서 많은 프로젝트와 같은이 책은, 프로토 타입, 하나, 선반 이륙했다와 반복 년간의 숫자 이상으로 돌려 줘요 fiddled로서의 인생을 시작했다.초기 임신에서 기진 맥진, 몇 달 전부터 긴 프로세스가 이제 당신의 손에 책이 꽤 다른 중점을 한 재구성 가능한 하드웨어 플랫폼에서 모두의 FPGA 및 FPGA를 기반으로가 아닌 다른 제목이었다 잡고 책을 만들 수 기반으로합니다.그 책 중 하나가 기록하지 못했지만 그 비트 및 특정 챕터의 조각이 도서에 따라 프로그래머블 로직 디바이스 데이비드 Pellerin 마이클 홀리와 실용적인 디자인을 사용하여 제목에 의해 작성된에 대한 이전의 도서로 태어 났다고 상상의 통과 프로그래머블 로직 (프렌 티스 홀, 1991).
언제 그런 책을 버나드 굿윈에 프렌 티스 홀, 그의 초기 대응에서 발표됐다위한 아이디어 "하지만 코스였다!"(그것은 인수의 본질 편집자, 우리는 모든 프로젝트에 대해 사전에 실제로 첫 번째 예제 챕터의 끔찍한 슬러지를 만나는 열정을해야 겠지.) 우리가 제안을 좁히는 일을 버나드, 우리가에 중점을 증가 하나의 특별한 제안 지역, 이는 우리가 우리의 현재 역할에 기술을 시작으로 인해 지역의 수도 일반적인 이해를보다.FPGA를위한 C 프로그래밍에 따라서 강조, 그리고 설계 및 FPGA 타겟을위한 병렬 애플 리케이션을 최적화합니다.버나드, 물론, 하단에 라인 eying 및 판매 (C 인기가 많습니다 그리고 FPGA를 극대화할 것이라고 방향으로 우리가 스티어링의 인기가 높습니다, 우리는 제목에서 두 용어를하는 데 더 많은 독자를 유치할 예정) 했지.버나드 우리 들중 아무도 무엇을 알고 무엇 몰랐어요, 정말 FPGA를위한 수용 될 수있는 방법을 널리 C 프로그래밍입니다.시간, 물론 말할 것입니다.우리는 당신을 설득 희망이 책은 이러한 접근법을 실제로 실천 중 하나입니다.
데이비드 Pellerin
커클랜드, 워싱턴
스콧 티보
Colchester, 버몬트샘플 장 (들)
샘플 다운로드 장이 제목과 관련.
머리말
다운로드 머리말이 제목으로 관련 파일을 엽니다.
색인
다운로드 색인이 제목으로 관련 파일을 엽니다.
온라인 샘플 장
컴퓨팅 플랫폼의 FPGA로
스콧 티보, 데이빗 Pellerin으로.
C - 높은 성능의 FPGA 가속 소프트웨어 애플 리케이션을 구축하기위한 기반 기술
회로, 장치 및 시스템
C - 최적화의 FPGA의 성능, 설계 유연성을위한 기반 기술, 그리고 시간을 시장에
앞으로 클라 이브로 "최고"Maxfield 기록됩니다.고성능의 FPGA 가속 소프트웨어 애플 리케이션 분야의 커뮤니케이션 및 이미지 프로세싱 및 과학적 컴퓨팅과 생물 의학에 이르기까지 수요가 증가됩니다.이 책은 강력한 C 도입 기반의 병렬 이러한 응용 프로그램을 만들기위한 프로그래밍 기법들을 검증 및 FPGA 하드웨어로 이동.
저자 다리가 기존의 "소프트웨어 개발 방법 및 FPGA의 철학을"사이의 차이 기반의 디지털 설계.그 까닭은 그들의 코드의 양을 직접 하드웨어에서 실행되는 동안 경이적인 성능을 달성하는 소프트웨어 엔지니어로 FPGA를보고 ","다른 프로그램의 컴퓨팅 리소스를 배우게됩니다.하드웨어 엔지니어들은 그들을 디자인하면서 대안을 탐구하고 훨씬 더 신속하게 프로토 타입을 제작할 수 있도록 완벽하게 기존의 HDL을 전문 지식, 기술을 마스터를 보완하는 것입니다.두 그룹은 어떻게 / 소프트웨어 공동 설계 및 개선 컴파일, 디버깅 및 테스트를 효율적으로 하드웨어를 지원하는 C를 활용 방법을 배웁니다.
이해하면 C와 FPGA 개발의 의미가 어디에 귀하의 기존 프로세스에 맞는
활용 C 혼합 직접 하드웨어에 소프트웨어 애플 리케이션을 구현할 수 / 소프트웨어 플랫폼
데스크톱 PC 환경 및 시스템을 사용하여 임베디드 프로세서에서 실행 및 테스트 같은 C 알고리즘
새로운 마스터는 C 기반의 프로그래밍 모델과 기술이 고도로 병렬의 FPGA 플랫폼에 최적화된
자동으로 컴파일을 통해 성능을 최적화하여 과급
다중을 사용하여 프로세스를 진정으로 놀라운 성능을 제공하는 프로그래밍 모델을 스트리밍
FPGA를 컴퓨팅의 미래 미리보기
현실적인 C 코드 예제를 광범위하게 설정 연구
웹 사이트에 대하여
충분히 시간을 운영 - C의 제한된 버전의 컴파일러를 기반으로 FPGA 설계 http://www.ImpulseC.com/practical 다운로드뿐만 아니라, 추가적인 예제와 프로그래밍 도움말을 참조하십시오.이야 저작권 피어슨 교육.판권 소유.목차
머리말 클라 이브로 "최대"Maxfield.
이유는 하드웨어에 여러분의 관심이 책은 무엇입니까?
그리고 소프트웨어는 남자와 여자들은 어떡하고?
그럼 어떻게 잡을거야?
서문.
C 언어의 FPGA를위한 하드웨어 디자인을 바탕으로?
소프트웨어 가속을위한 매력적인 플랫폼.
실험에 전원.
예약하는 방법이 구성되어있다.
이 도서는 어디에서 왔어.
Acknowledgments /
1.FPGA를 컴퓨팅 플랫폼이다.
빠른 FPGA를 소개합니다.
FPGA 기반의 프로그래밍 하드웨어 플랫폼.
비용을 낮추는 한편 성능 향상.
도구 역할을합니다.
FPGA를 임베디드 소프트웨어 플랫폼이다.
프로그래밍 추상화의 중요성.
언제 FPGA 디자인을위한 C 언어 적절한인가요?
도서를 사용하는 방법이있습니다.
2.프로그래머블 플랫폼의 간략한 역사.
출처 프로그래머블 로직있습니다.
Reprogrammability, HDLs, 그리고 FPGA의 일어나라.
프로그래머블 시스템 칩있습니다.
병렬 컴퓨팅을위한 FPGA를.
요약.
3.프로그래밍 모델 FPGA를위한 기반 애플 리케이션.
병렬 처리 모델.
병렬 컴퓨팅 머신으로 FPGA를.
병렬 처리를위한 프로그래밍.
의사 소통 프로세스 프로그래밍 모델.
임펄스 C 프로그래밍 모델.
요약.
4.회사 소개 임펄스 C.에게
임펄스 C. 뒤에 동기 부여
임펄스 C 프로그래밍 모델.
최소 임펄스 C 프로그램.
프로세스, 스트림, 신호, 및 메모리.
임펄스 C 서명과 서명되지 않은 데이터 유형.
이해를 처리합니다.
이해 스트림.
출력 스트림을 사용합니다.
입력 스트림을 사용합니다.
스트림 교착 상태 방지.
신호 생성 및 사용하기.
이해 레지스터.
공유 메모리를 사용하여.
메모리 및 스트림의 성능 고려 사항.
요약.
5.에는 FIR 필터를 묘사.
설계 개요.
하드웨어에는 FIR 필터 공정.
소프트웨어 테스트 벤치.
데스크탑 시뮬레이션.
응용 프로그램을 모니터링.
요약.
6.생성 FPGA 하드웨어.
하드웨어 세대 흐름.
생성된 구조 이해.
스트림 및 신호 인터페이스.
이해 스트리밍 프로토콜에 HDL을 시뮬레이션을 사용합니다.
생성된 하드웨어 디버깅.
하드웨어 차세대 노트.
효율적인 최적화 도구를 사용하여 만들기.
하드웨어, 프로세스에 대한 언어 제약.
요약.
7.증가 정책 수준 평행.
모델 FPGA를 계산합니다.
C 언어 의미론과 평행.
취약점을 명령 수준 평행.
단계 명령 제한.
Unrolling 루프.
파이프 라이닝 설명했다.
요약.
8.충동 C.하는 레거시 응용 프로그램을 포팅
트리플 데 알고리즘입니다.
스트리밍 모델 변환 알고리즘.
소프트웨어 시뮬레이션을 수행.
하드웨어 컴파일.
예선 하드웨어 분석.
요약.
9.임베디드 테스트 벤치를 작성합니다.
혼합 하드웨어 및 소프트웨어 어프로치.
임베디드 프로세서 생성기를 테스트합니다.
역할 하드웨어 시뮬레이터.
테스트 트리플 데 알고리즘을 하드웨어했다.
소프트웨어 스트림 매크로 인터페이스.
테스트 시스템 구축.
요약.
10.C의 FPGA의 성능을 최적화합니다.
알고리즘의 성능에 대한 재검토.
루프 상세 검색을 도입하여 1 : 크기 줄이기.
수정 2 : 배열을 분할.
상세 검색 3 : 스트리밍 성능 향상.
상세 검색 4 : 루프 Unrolling.
상세 검색 5 : 메인 루프 파이프 라이닝.
요약.
11.묘사 시스템 레벨 평행.
설계 개요.
데스크탑 시뮬레이션을 수행.
수정 1 : 만들기 병렬 8 비트 필터.
수정 2 : 생성 시스템 - 레벨 파이프라인.
하드웨어 응용 프로그램을 이동.
요약.
12.임베디드 운영 체제와 임펄스 C 결합.
uClinux는 운영 체제.
uClinux는 시범 프로젝트.
요약.
13.만델브로 이미지 생성.
설계 개요.
C로 알고리즘을 표현
고정 소수점 등가 만들기.
스트리밍 버전 만들기.
알고리즘 Parallelizing.
미래의 수정.
요약.
14.미래의 FPGA 컴퓨팅.
FPGA를 고성능 컴퓨터이다.
미래의 FPGA 컴퓨팅.
요약.
부록 A. 임베디드 프로세서의 FPGA의 대부분의 방법.
임베디드 프로세서의 FPGA 개요.
주변 기기 및 메모리 컨트롤러.
프로세서 성능 향상.
최적화 기법의 FPGA되지 않습니다 - 다릅니다.
FPGA용으로 특정 최적화 기법.
요약.
부록 B. 사용자 정의 스트림 인터페이스를 작성합니다.
응용 프로그램 개요.
데이터 스트리밍을위한 DS92LV16 직렬 연결합니다.
스트림 인터페이스 상태 머신을 설명합니다.
데이터 전송.
요약.
부록 C. 임펄스 C 함수 레퍼런스.
부록 D. 트리플 - 데스 소스 리스팅.
부록 E. 이미지 필터를 리스팅.
부록 D. 선택한 참조.
색인.
서문
이것은 FPGA를위한 소프트웨어 프로그래밍에 대한 책이있다.더 이상이 책에 대해 병렬 프로그래밍 기법을 사용하는 조합의 C 언어와 FPGA를 만들고 가속 소프트웨어 응용 프로그램을 특정해야합니다.
우리는 방법은 다리 격차는 소프트웨어 개발 방식과 철학 사이에 존재 사실 큰 차이 도움이 책이 쓰여 있는데 FPGA의 철학을 기반으로 디지털 디자인.우리가 이해는 우리가 두 개의 매우 다른 대상 : 소프트웨어 응용 프로그램 개발자 및 디지털 하드웨어 설계자에게 서면으로 결과 수있습니다.
소프트웨어 엔지니어를 위해, 우리의 목표는 소프트웨어의 FPGA 프로그래밍의 컴퓨팅 리소스가 존재하는 것입니다.우리가 이러한 장치에 적절한 방법을 사용하면 프로그램, 이렇게 다른 다른 비되지 않습니다 - DSP는 등 전통적인 컴퓨팅 플랫폼, 보여줄 수 있도록 노력하겠습니다.우리는, 예를 들어 통해 소프트웨어 개발 방법과 소프트웨어를 언어로 FPGA를 만드는 실질적인 방법으로 사용될 수있는 기반이 표시됩니다 고성능 컴퓨팅 애플 리케이션, 하드웨어 디자인의 깊은 지식없이도.
하드웨어 설계자에 대한 우리의 의도와 비슷하지만 주의해야와 함께, 우리는 설계하여 기존 방법을 대체하려고하지 않거나 것이 좋습니다하는 방법과 도구를이 책에 설명된 하드웨어 엔지니어링의 "차세대"를 나타냅니다.어쨌든, 만약 당신이 다음의 FPGA 설계자이 책은, C에서 실용의 FPGA 프로그래밍의 제목이 복잡한 전자 시스템을 만들 VHDL 또는 Verilog를 사용하는 당착 어법과 같은 소리가있습니다.어떻게 C가 소프트웨어 프로그래밍 언어, 디지털 전자 제품의 하드웨어를 설명하는 실용적인 방법이있을 수 있습니까?사실은, 때로는 명시적으로 정확한 설명을 하드웨어 설명 언어 (HDLs)에 의해 제공됩니다 설계 목표를 달성하기 위해 필수적입니다.그러나, 우리는, 하드웨어 이상이 명시적인 제어가 필요하지 않습니다 항상 나타납니다.같은 방법으로 한 최초의 그리고 C에서 소프트웨어를 작성할 수있습니다 어셈블러의 주요 부분을 레코딩에서는 하드웨어 디자이너의 도구들을 섞어 높은 레벨과 낮은 레벨의 설명대로 최대한 빨리 설계 목표를 달성하는 데 필요한 도움을받을 수 있도록 .심지어 때 전체 하드웨어 설계 결국 낮은 수준의 HDL을 함께 recoded 될 것입니다 높은 수준의 디자인 언어로 하드웨어 설계 엔지니어들이 빠르게 공간을 찾아보기 위해 노력하고 프로토 타입을 제작할 수있습니다.
경험 많은 하드웨어 엔지니어, 당신을 위해 그럼, 우리끼리 상태를 바로 앞에 우리가 당신과 함께 동의합니다.우리는 C 및 C (같은 프로그래머들이 전세계의 군대에 의해 사용) 믿지 않는 VHDL, Verilog 또는 다른 HDL을위한 실질적인 대체됩니다.그리고 우리는 당신이 C 및 C 일반적인 목적을위한 ASIC 및 FPGA 설계, 적어도 우리가 같은 디자인을 잘 알고 설계 항목을 언어로 오늘날의 역할, 또는 심지어 중요한, 최고의 재생되지 않을 수있습니다 동의합니다.그럼에도 불구하고 우리는 거기에 C는 장소를 기반 설계 하드웨어 디자인의 흐름을 믿습니다.아직도 확신하지?힘내십시오 순간을 위해 우리가 설명해 줄게.
C 언어의 FPGA 기반 하드웨어 디자인?
같은 사건을 하드웨어 디자인이 될 수있습니다 좀 더 C 또는 역할의 부족의 역할에 대해 생각하자.왜 표준 C 기존의 하드웨어 설계 언어에 대한 대체로서 적절하지?왜냐하면 좋은 프로그래밍 언어에 중요한 한 가지 : 목표의 유용한 추상화를 제공합니다.VHDL 및 Verilog (또는 좀더 정확히 말해, 이러한 언어의 합성 하위 집합) 매우 잘하기 때문에 하드웨어의 특정 클래스의 합리적, 효율적으로 추상화 : 레벨 및 첨단 재설정 및 클럭 로직 민감한 레지스터, 임의의 논리 게이트를 제공, 성공 다소 큰 클럭 로직 엘리먼트 고도의 병렬 방식으로 마련하였습니다.전체 오늘의 FPGA는이 패턴에 맞게, 그것도 오늘날의 ASIC 설계의 대부분에서, 아무리 복잡한 패턴을 발견했다.
표준 C 언어 (우리는 전송 수준 또는 등록은 RTL)의 전화, 그래서는 "C 추상화의 수준을 제공하지 않는 하드웨어에 대한"언어를 기반으로 추가할 수있습니다 RTL과 같은 구문을 장식, 추가 기능 또는 키워드의 형태로 구성, 컴파일러 힌트 및 자세한 내용 병렬 표현 및 클럭 및 리셋과 같은 낮은 수준의 하드웨어 구조를 설명하는 몇 가지 의미있는 방법으로 만들 수있습니다.하지만이 사건에서 우리는 단지 새로운 구문을 사용하여 다른 HDL을 가지고있다.다른 한편은 RTL의 혜택없이는 다음과 같이 구성, FPGA 및 기타 비 수 있도록, C 컴파일러의 개발 - 전통적인 목표를 거의 불가능한 문제에 직면할 수도있다 : 얼마나 효율적으로 처리 알고리즘 및 애플 리케이션을 하나의 수업 목표를 위해 작성된지도 ( 뭔가 완전히 다른 전통적인 마이크로 프로세서) (임의의 논리 게이트 및 등록과 함께 다소 높은 수준의 논리 구조).비록 우리가 더 나은 방법이있습니다 그것은 아직 아무도 어떻게 효율성을 합리적인 수준의 순수 소프트웨어 응용 프로그램에서 매핑을 어떻게 밖으로 생각했다.
그럼 왜이 모든 FPGA 설계에 대한 C를 사용합니까?거기에 대한 잠재적인 하드웨어 - 소프트웨어 통합 설계 등 상당한 이점, 테스트 벤치는 C로 작성의 작성 및 수있습니다 (해당되는 경우 수정된 C 언어) 능력을 컴파일하고 FPGA를 응용 프로그램의 표준 C 개발 환경을 사용하여 디버그 그것을 지원합니다.그리고 만약 중간 하드웨어 추상화 수준의 접근 방식, 그리고 하나는 프로그래머가 하드웨어를 타겟의 모든 내용을 이해를 필요로하지 않습니다 아직 반영되어 그때 우리는 소프트웨어 간의 균형을 공격할 수있다는 코딩이 더 적절한 방법을 향해 프로그래밍 모델에 의해 가이드입니다 설계 생산성 및 하드웨어 설계 결과로 시스템의 성능과 크기를 측정했다.
매력적인 플랫폼 소프트웨어 가속
어디로 소프트웨어 개발자들이 애플 리케이션 안으로 들어오세요 여기에있어 고성능 컴퓨팅을위한 하드웨어 가속기로 FPGA를 사용하는 방향으로 증가 추세 쪽.수요와 같은 고성능의 통신, 이미지 프로세싱을 포함하는 여러 도메인에 존재하는 어플 리케이션, 미디어 및 기타 범용 신호 처리 스트리밍.다른 한편, 금융 생명 과학 대표하는 이러한 응용 프로그램의 대부분의 임베디드 소프트웨어의 공간에서, 그리고 다른 큰 규모의 컴퓨팅 솔루션입니다.
가속이 필요하면, 이러한 응용 프로그램은 일반적으로, C 언어를 자주, 그리고 나서 수동으로 다시 소프트웨어를 모델로 자신의 인생을 시작 작성된 및 하드웨어의 VHDL 또는 Verilog를 사용하여 구현했습니다.하드웨어와 소프트웨어 알고리즘이 수동으로 전환을 그렇게 오래있을 수있는 극도로 지루한 과정이고, 따라서 그곳에서 일하는 더 빠른 하드웨어 경로에 대한 수요이다.또한 강한 욕망을 나중에 하드웨어 소프트웨어 알고리즘 업데이 트를 반영하는 방법에 redesigns 않도록하는 것입니다.하드웨어의 전환은 매우 하드웨어 프로토 타입을 만드는 목적을위한 최소한의 소프트웨어 프로세스를 자동화하므로 매우 매력적이다.또한 이것은 자동화 설계 및 개발 팀들의 도착 시간은 광범위한 하드웨어 디자인 전문 지식, 또는 어디에 하드웨어 설계 비용 으로서는 전통적인 접근 방식을 이용할 수 없어 하드웨어 가속 가져온다.하드웨어를 C 컴파일은 애플 리케이션 개발자의 완전히 새로운 클래스에 대한 하드웨어 가속을 최대 열 수 있도록 잠재력을 가진 기술입니다.
하드웨어 측면에서, 저기 FPGA에서 최근의 진보 프로그래머블 플랫폼에서 응용 프로그램 가속기로 사용하기 위해 FPGA를 더욱 실용적인 확인을 기반으로하고있다.사실, 임베디드 프로세서 코어와 FPGA를 가지고가 될 비용 전체를 임베디드 시스템에 대한 대체 효과.FPGA를 "마침내 현실에 대한 전체"시스템 구축의 개념, 주요 FPGA를 제공하고 타사의 지적 재산권 (IP)을 공급 업체의 지속적인 노력에 감사합니다.이러한 새로운 FPGA를 무엇에 관한 일반적인 플랫폼을 기반으로 그들이 결합하여 하나 이상의 일반적인 프로그래머블 로직들이 로열티, 중고 부품 무료 테스트에 상당한 금액을 갖춘 와서 많은 양의과 (와 마찬가지로 상당히)와 목적 프로세서 코어 시간의 문제 제 3 자 라이센스 및 조립 될 수있는 오픈 소스 컴포넌트 칩 및 적 성장 잠재력 수집 하드웨어의 놀라울 정도의 다양한 세트를 만들 / 소프트웨어 프로세싱 플랫폼.
무엇이 새로운 장치와 그들이 대표하는 새로운 컴퓨팅 플랫폼에 대한 흥미로운 도구의 관점에서 그들이 충분한 소프트웨어 개발 세계의 전통적인 소프트웨어 디버거가 포함되지 않도록하는 방법과 도구의 사용을 지원하는 유연하고있습니다.C 및 C와 같은 언어를 사용하는 소프트웨어와 함께 - 하드웨어 컴파일러가 그것을 실천에 직접 혼합 하드웨어에 소프트웨어 애플 리케이션을 구현할 수있게 / 소프트웨어 플랫폼입니다.
여기는 FPGA 설계자들은 누구 요점을 놓치고있을 수있습니다 소프트웨어 설계 언어 및 FPGA를위한 방법 중 하나를 사용하여 질문입니다.C VHDL 및 Verilog와 같은 HDLs 교체에 대한 가능성이없는 기존의 일반적인 목적의 하드웨어 설계.C를하지만, 혼합 하드웨어의 종류에 강력한 역할을 할 것이다 / 그 어느 사이에 선 어떤 소프트웨어가 어떤 하드웨어가 오늘은 응용 프로그램에 등장하고있다 소프트웨어 애플 리케이션을 점점 흐리게 해지고, 어디 능력을 신속하게 프로토 타이핑 및 실험을 함께 구현 대안 중요합니다.
또한 FPGA를 임베디드 프로세서의 보급 때문에 있음, C 언어는 이미 수천 명의 소프트웨어 엔지니어로 FPGA를 위해 사용되고있습니다.문제는 대부분의 경우 이러한 소프트웨어 엔지니어만이 프로그램의 FPGA 내에 임베디드 마이크로 프로세서 수있습니다.이 책은 우리의 목표를 확인하는 것입니다 C 언어 프로그래밍 전체의 FPGA, 그 안에서뿐만 아니라 임베디드 마이크로 프로세서에 적용.
실험 전원
FPGA를 위해 원조로서 C 언어 프로그래밍을 사용하여 기반 하드웨어 설계 실험에 전원을 제공합니다.다른 하드웨어로 대체 알고리즘 접근법과 실험, / 소프트웨어 파티셔닝 및 대체 대상 플랫폼이다.같은 디자인 언어를 사용하여 항목, 당신은 지금 당신의 능력과 응용 프로그램을 평가하고 자신의 구성 다른 하드웨어와 소프트웨어를 대상으로 사용하는 알고리즘이있다.
이 책에서 우리는, 예를 들어, 어떤 동일한 C 언어 알고리즘, 단지 작은 수정과 데스크탑 컴퓨팅 환경에서 C를 디버거의 제어 (아래와 같은 실행될 수있는 테스트를 설정할 수있는 방법을 보여줍니다 Visual Studio에서 gbd 또는 이클립스) 기능 시뮬레이션의 목적에 대한 발견에서 실행될 수 - 임베디드 프로세서에 대한 시스템 및 직접 FPGA를 위해 전용 하드웨어로 컴파일됩니다., 근본적으로 다른 컴퓨팅의 대안 및 대체 재판을받을 수있는 하드웨어 / 소프트웨어 파티션 전략을 평가할 수있는이 방법을 사용합니다.마찬가지로 우리가 보는거야,이 전력을 신속하게 생성 및 하드웨어와 실험 / 소프트웨어 프로토 타입의 소프트웨어를 사용하는 주요 장점 - FPGA를위한 방법 및 도구를 기반으로합니다.
예약하는 방법이 조직
소프트웨어 및 하드웨어 개발자들을 위해, 우리는 FPGA 디바이스, 그들의 역사 및 그들을위한 도구를 사용할 수있는 형식에 대한 중요한 배경 정보 현재, 그리고 우리뿐만 아니라 몇 가지 가능한 FPGA의 설문 조사 컴퓨팅 플랫폼을 기반으로.
무대를 설정한 후, 우리는 그때, C 언어를 사용하여, 그리고 그 높은 병렬 프로그래밍 하드웨어 플랫폼에서 사용에 적합한 프로그래밍 모델을 프로그래밍 방법을 제시.이것은 전통적인 프로그래밍 모델을 어느 정도에서 더 많은 절차적 C 언어 프로그래밍지만, 경험이 풍부한 소프트웨어 엔지니어를 데리러 쉽게 사용 다르다.
우리는 다음 예제의 방법에 FPGA를 사용할 수있습니다 병렬 처리 기반의 대규모 수준의 플랫폼을 활용하는 방법을 보여줍니다 시리즈, 모든 C로 작성된로 이동이 재단.우리는 소프트웨어의 C 나은 최적화 컴파일러 자동화 도구를하여 언어 구문을 허용 코딩 기법을 설명합니다.이러한 기법을 이해하기 어렵지만없습니다 FPGA를 응용 프로그램의 성능에 크게 영향을 미칠 수있습니다.
나중에 챕터 현재의 스트리밍하는 방법 예제 프로그래밍 모델의 성능을보다 높은 수준을 생성하는 데 사용될 수있습니다.다중 프로세스를 프로그래밍 모델을 사용하여 스트리밍 성능 정말 놀라운 수준이 비교적 적은 노력하지만, 이러한 방법의 성능 수준을 달성하는 데 사용되는 전통적인 C 프로그래머에게 새로운 수도있습니다 다소 다른 결과가있습니다.
어디 갔었어요로부터 예약
현실 세계에서 많은 프로젝트와 같은이 책은, 프로토 타입, 하나, 선반 이륙했다와 반복 년간의 숫자 이상으로 돌려 줘요 fiddled로서의 인생을 시작했다.초기 임신에서 기진 맥진, 몇 달 전부터 긴 프로세스가 이제 당신의 손에 책이 꽤 다른 중점을 한 재구성 가능한 하드웨어 플랫폼에서 모두의 FPGA 및 FPGA를 기반으로가 아닌 다른 제목이었다 잡고 책을 만들 수 기반으로합니다.그 책 중 하나가 기록하지 못했지만 그 비트 및 특정 챕터의 조각이 도서에 따라 프로그래머블 로직 디바이스 데이비드 Pellerin 마이클 홀리와 실용적인 디자인을 사용하여 제목에 의해 작성된에 대한 이전의 도서로 태어 났다고 상상의 통과 프로그래머블 로직 (프렌 티스 홀, 1991).
언제 그런 책을 버나드 굿윈에 프렌 티스 홀, 그의 초기 대응에서 발표됐다위한 아이디어 "하지만 코스였다!"(그것은 인수의 본질 편집자, 우리는 모든 프로젝트에 대해 사전에 실제로 첫 번째 예제 챕터의 끔찍한 슬러지를 만나는 열정을해야 겠지.) 우리가 제안을 좁히는 일을 버나드, 우리가에 중점을 증가 하나의 특별한 제안 지역, 이는 우리가 우리의 현재 역할에 기술을 시작으로 인해 지역의 수도 일반적인 이해를보다.FPGA를위한 C 프로그래밍에 따라서 강조, 그리고 설계 및 FPGA 타겟을위한 병렬 애플 리케이션을 최적화합니다.버나드, 물론, 하단에 라인 eying 및 판매 (C 인기가 많습니다 그리고 FPGA를 극대화할 것이라고 방향으로 우리가 스티어링의 인기가 높습니다, 우리는 제목에서 두 용어를하는 데 더 많은 독자를 유치할 예정) 했지.버나드 우리 들중 아무도 무엇을 알고 무엇 몰랐어요, 정말 FPGA를위한 수용 될 수있는 방법을 널리 C 프로그래밍입니다.시간, 물론 말할 것입니다.우리는 당신을 설득 희망이 책은 이러한 접근법을 실제로 실천 중 하나입니다.
데이비드 Pellerin
커클랜드, 워싱턴
스콧 티보
Colchester, 버몬트샘플 장 (들)
샘플 다운로드 장이 제목과 관련.
머리말
다운로드 머리말이 제목으로 관련 파일을 엽니다.
색인
다운로드 색인이 제목으로 관련 파일을 엽니다.
온라인 샘플 장
컴퓨팅 플랫폼의 FPGA로
스콧 티보, 데이빗 Pellerin으로.