首页>参考读物>电子电工>电子工程

嵌入式系统软硬件协同设计实战指南:基于Xilinx Zynq
作者 : 陆佳华 江舟 马岷 编著 孙宏滨 主审
出版日期 : 2013-01-16
ISBN : 978-7-111-41107-9
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 367
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书分为基础篇和进阶篇两大部分,基础篇主要介绍Zynq SOC架构,ARM Cortex-A9 处理器, 开发工具链等,器件Boot过程,并配备了大量基础实验,包括板卡的启动,编译嵌入式Linux系统,完成ARM和FPGA的简单片内通讯等;在进阶篇中详解了处理器和FPGA间接口种类和工作方式,分析了如何完成两者间高速的数据交互,通过实例介绍了如何在FPGA中定义用户自己的IP核并完成驱动编写供处理器上运行的Linux使用等,例如如何完成HDMI接口,如何将摄像头数据传递给处理器,并通过运行的OpenCV。本书还将结合Xilinx 最新的Vivado和AutoESL开发工具介绍整体软硬件协同设计开发流程并通过案例分析。

最后安排了一章系统级案例,如带视频控制的智能小车系统、利用软硬件协同设计完成的高清视频滤波处理等,这里每一个案例都会用到基础篇和进阶篇的所介绍的技术和内容,使读者更好的理解Zynq和Zed board.

图书特色

软件、硬件、I/O全可编程SoC——Zynq的全球首本实战开发指南。
单芯片上实现软硬件协同设计的开山之作,20个设计实例循序渐进引导实战。
从单模块案例向系统级案例拓展,提供完整工程文件和源代码,极具可操作性。

嵌入式系统软硬件协同设计实战指南
基于Xilinx Zynq
陆佳华 江 舟 马 岷 编著

封底:
本书最大的特点是实操性强,可以让读者将基于Zynq这个软硬件全可编程SoC的ZedBoard以最快的速度用起来。通过对涉及的技术课题和多个设计案例的全面和深入的实践,使读者掌握双核ARM和FPGA加速的嵌入式系统的软硬件协同设计技术。所以本书不仅适用于广大工程技术人员,也适用于高等院校的师生和科研人员,本书为他们提供了非常有价值的参考内容和方法指导。
—— 清华大学 孟宪元教授
赛灵思(Xilinx)的Zynq芯片是嵌入式系统发展的集大成者,是软硬件以及I/O全可编程SoC,拥有极大的灵活性,但也带来需要使用者掌握更多综合技能的挑战。本书以迅速可上手的案例开始,帮助使用者建立兴趣和自信,然后过渡到Zynq体系结构和外设等的讲解,循序渐进,最后扩展到软硬件协同设计,以智能小车为平台,将现代嵌入式系统的一些诸如OpenCV、嵌入式Web服务器、HLS等前沿技术以实例展示。本书是一本不可多得的好书。 
—— Xilinx大学计划大中华区经理 谢凯年博士
赛灵思(Xilinx)的Zynq系列产品结合了双核ARM Cortex A9处理器与可编程逻辑架构,使得开发人员在获益于ARM丰富的生态系统资源的同时,也获益于FPGA的灵活性和可扩展性。本书对于众多希望尽快了解Zynq产品、熟练使用Znyq的国内用户们而言是一本非常有价值的参考书。书中不仅介绍了翔实的基础内容,还提供了很多实用的案例供读者实践。
—— ARM中国区大学计划经理 时昕博士
Zynq不仅是一款全可编程SoC,更是一个革命性的创新平台。在和客户沟通的过程中,我发现Zynq平台能够让客户的技术创新能力发挥得淋漓尽致,不再受限于单纯的硬件或软件。本书详细地介绍了基于Zynq的嵌入式系统设计,结合典型案例,深入浅出,很好地体现了软硬件协同设计理念。本书将帮助对Zynq感兴趣的读者快速上手,体验到全可编程的乐趣!
—— 赛灵思(Xilinx) 亚太区Zynq 市场开发经理 罗霖
Zynq有机地结合FPGA与ARM两大主流嵌入式技术,是一款具有划时代意义的产品。该书以应用为导向,全方位地将赛灵思(Xilinx)最先进技术展现在读者面前。应用项目有很强的代表性,技术剖析细致入微,兼顾读者兴趣与技术规范,是国内FPGA领域不可多得的一本好书。
—— Digilent中国区总经理  赵峰博士
嵌入式系统的软硬件协同设计、SoC芯片系统级设计一直都是众多电子工程师的梦想,赛灵思的Zynq正好可以满足这种需求,从而充分发挥工程师的设计能力。该书从简单的实例入手、循序渐进,通过电机控制、智能健康平台、高端视频处理和智能小车等实用案例,充分发掘当前产业界的需求并紧密结合Zynq的特点,让大家对Zynq从基本技术到系统应用有了全面的认识。对广大的嵌入式和FPGA的爱好者而言,是一本值得推荐的好书。
                                     —— 安富利高级技术市场经理  陈志勇博士

前:
Zynq是集成了ARM Cortex A9 MPCore的SoC,和传统SoC不一样的是,Zynq同时也是一种以处理器为中心的FPGA平台,能够在单芯片上提供软、硬件和 I/O可编程的功能。
本书从基础知识到实战案例,由浅入深地向读者系统阐述了利用Zynq平台进行嵌入式系统和软硬件协同设计的开发方法。本书分为基础篇与进阶篇两部分。基础篇中介绍了Zynq和ZedBoard,并配合ZedBoard实现了一些简单的入门实验。同时针对软件开发人员增设了FPGA硬件加速原理章节。在进阶篇中介绍了使用Zynq进行软硬件协同设计,同时对处理器与可编程逻辑接口等技术进行了详细剖析。本书提供了20个详细的设计案例,内容涵盖了硬件板卡、FPGA逻辑、Linux驱动、Linux操作系统、上层应用等Zynq开发中可能遇到的各个方面,并在最后章节将前述独立案例整合为4个系统案例。本书重点突出实战,以案例为指导,配合介绍相关参考文档,协助读者尽快上手Zynq上各项设计。
本书可作为Zynq初学者、软硬件协同设计开发人员的参考用书,亦可作为大专院校嵌入式系统设计、片上系统设计、可编程逻辑器件等相关专业的教师和学生参考用书。

作 者 简 介
陆佳华 开源硬件社区Openhw.org资深版主,Xilinx高级应用工程师,现任职于Xilinx全球大学计划部,主要负责Xilinx全球大学相关的参考设计开发,技术推广、支持。2006年毕业于西安交通大学并获得硕士学位。同年加入Xilinx公司就任产品应用工程师,主要负责FPGA上的嵌入式系统设计、以太网设计、内存控制器设计等方向技术支持。著有《零存整取NetFPGA开发指南》一书。
江 舟 开源硬件社区Openhw.org的资深版主,浙江大学硕士研究生,现为Xilinx全球大学计划部实习生,主要参与Zynq上的软件开发。江舟是美信DIY大赛的主要技术支持者之一,并担任Xilinx开源硬件大赛的技术支持。
马 岷 开源硬件社区Openhw.org的资深版主,浙江大学硕士研究生,现为Xilinx全球大学计划部实习生,主要参与Zynq上的硬件开发。马岷是美信DIY大赛的主要技术支持者之一,并担任Xilinx开源硬件大赛的技术支持。

图书前言

平台及写作背景
  作为全球最大的可编程逻辑平台的供应商,Xilinx已将可编程逻辑技术带领到了All Programmable(全可编程)的时代,其产品不仅有最新的28nm的7系列(分为Artix7,Kintex7,Virtex7)FPGA芯片,更有通过SSI(堆叠硅片互联)技术实现的最大容量FPGA Virtex7-2000T,同时在FPGA芯片内集成了高速AD以及最高可达28.05Gb/s的高速串行口等可编程逻辑外的模块。对于应用者而言,除了以上工艺的创新外,更具有划时代意义的是Xilinx推出的Zynq-7000 AP SoC芯片,其不仅解决了芯片工艺实现上的难点,更解决了片内高性能处理器与高性能可编程逻辑数据交互协议的难点。
  Zynq-7000是首款将高性能ARM Cortex A9硬核与可编程逻辑紧密集成到一起的器件。在Zynq平台中,我们首先可以把可编程逻辑看成是处理器外设中一个具有可重配置特点的“外设”,比如当串口或以太网接口不够时、需要视频接口时,都可以用可编程逻辑扩展;其次我们也可将其看成一个与处理器对等的主设备,其可主动完成与外部芯片的数据交互,例如主动进行视频、网络数据预处理。通过这样的结合,既发挥了处理器在处理复杂控制算法、运行操作系统等方面的优势,又利用FPGA在并行算法加速、可动态重配置的特点,实现了系统加速,增加了灵活性;同时基于片内结合的方案,减少了板子面积,降低了功耗,也加快了硬件开发速度。结合Zynq推出,Xilinx不仅在先期将所有IP核接口切换到基于ARM AMBA4.0(AXI4)的标准,实现了逻辑IP与Zynq无缝迁移,同时还推出了C2HDL的高层综合工具AutoESL(目前已集成到最新的开发套件Vivado中),这加快了已有算法的硬件化过程,同时也使得软件工程师可以在Zynq上独立完成软硬件协同设计。
  针对这些新的技术和概念,读者不妨带着这样一些疑问阅读本书:现在有什么开发板可以直接用?ARM+FPGA这样的结构与板载ARM处理器与FPGA芯片的结合到底有哪些区别?ARM与FPGA在一个芯片内到底是如何紧密配合的?互相之间数据交互的接口和方式是怎样的?上电之后ARM和FPGA是如何配置的?利用AutoESL工具到底如何跟Zynq结合?Linux操作系统与FPGA又是如何结合的?这里的驱动如何写?在本书中,将陆续对这些问题进行解答。
  从Zynq平台提出伊始,全球各地的客户对这一平台都产生了浓厚的兴趣,Xilinx也于2011年年末正式发布了Zynq的芯片,在2012年年初就已经有了第一块Zynq开发板ZC702。到了2012年6月份,专为社区用户以及科研、教学用户定制的低价版本ZedBoard板也正式面世。但是对于一个全新的平台来说,可参考的资源相对缺乏。我们从2012年7月份开始在ZedBoard板上进行设计时就已经明显感受到项目进度因缺少参考资源而受到的影响。而到了美信的DIY大赛时,更听到国内用户对参考资料的迫切需求,尤其是相应的中文资料。而2013年1月份采用ZedBoard板作为主要平台的开源硬件与嵌入式大赛——OpenHW12也即将展开。
  在这样的背景下,赛灵思大学计划部门决定以最快的速度对我们在这几个月中开发的、参与的、学习的案例进行整理,编写出一本由浅入深、以案例为主的实战类书籍,希望通过这本书能帮助大家尽快了解、熟悉并掌握Zynq的开发。
阅读提示
  本书分为基础篇和进阶篇两部分。
  基础篇中主要介绍了ZedBoard板、Zynq器件、开发工具链、Zynq的体系结构及其启动过程等基本的器件与板卡情况,同时考虑了软件工程师的知识结构。在第8章中介绍了FPGA的原理,以及硬件加速的原理,便于软件工程师理解FPGA。在第9章中通过基础实验带领大家浅尝Zynq的开发过程,并带领大家用ZedBoard板搭建出一个单板计算机系统。
  进阶篇中,首先介绍了利用虚拟平台QEMU进行软件开发的流程。在第11章中详细分析了Zynq中处理器与硬件逻辑的连接关系。第12章主要介绍了在Zynq上利用AutoESL进行软硬件协同设计的理念与过程。第13章占了全书四分之一的篇幅,介绍了使用Zynq实现逻辑、驱动、操作系统、高清视频显示、OpenCV、网络摄像机等12个应用案例,这是本书的精华之一。在第14章,将13章中提到的独立案例再融合成4个系统案例,这4个系统案例都会应用到前面章节的知识,以此帮助大家尽快掌握在Zynq上进行系统级设计的方法。
  笔者在这些年支持客户的过程中,常常会发现客户困扰于不知如何寻找到Xilinx相关工具、IP的参考文档、参考设计。因此本书第15章中主要介绍了如何获取资料和帮助,重点介绍了Xilinx新推出的DocNav工具,希望能帮助初学者迅速找到Xilinx资料。
  在本书案例开发与写作的过程中,Xilinx的工具已升级到了更高的14.3版本,但是本书的部分案例是基于14.1版本的。在切换工具版本的过程中,相关设计可能会略有差异,因此本书在附录中介绍了14.3与14.1工具版本的变化,便于大家快速移植设计。所以读者在使用本书案例前,请务必阅读一下本书的附录部分。
  对于ZedBoard板这样一个社区开发平台的设计指南,本书秉承了来源社区回馈社区的理念,书中所有参考设计均开放源码。本书案例的源码下载地址为:http://code.google.com/p/zedboard-book-source/。同时在http://www.openhw.org的论坛中设有“大学计划图书讨论专版”,读者可在此讨论区中找到本书对应版面,下载代码,对书稿、案例开展讨论。本书最后一个案例为智能小车项目,这是机器人开源社区www.zrobot.org中的第一个项目。智能小车平台后续相关的拓展案例,以及其他机器人案例均会通过该社区发布源码,同步更新。请大家关注该社区的发展,积极参与到社区的项目中来。
致谢
  本书的写作也体现了社区的力量,本书得到了国内许多著名院校以及工程师的支持:
  1)清华大学的刘勇攀教授、李双辰和我们一起完成了第12章的软硬件协同设计。
  2)华中科技大学的何顶新教授、任蔚博士、牛盼情和我们一起完成了第14章中的电机控制系统设计及其初稿写作,而方华启帮助我们完成了智能小车演示中Android客户端的开发演示。
  3)上海交通大学的祝永新教授、辜晓琪与我们一起完成了OpenCV的人脸识别案例及其初稿写作。
  4)山东大学的彭竞宇、沈瓒君与我们一起完成了树叶识别案例及其初稿写作。
  5)西安交通大学吕敏杰博士整理出了HDMI显示开发过程供大家参考。
  6)西安电子科技大学的雷杰副教授、徐建国也给了我们在Zynq上实现Lwip的有益参考。
  7)本书完稿前,恰逢美信DIY大赛结束,我们也非常荣幸地邀请到了大赛中获奖的李潇海将其获奖作品“智能家庭健康平台”整理成文档。我们也将该文档编入了本书,这大大丰富了本书的内容。
  8)本书也邀请到了爱板网(eeboard)的主编吴志军先生为我们撰写了第3章中的ZedBoard板的介绍,智翔集团的徐晨辉和我们一起完成了第4章的撰写,并在Webcam开发过程中给予了帮助。
  9)Xilinx高级战略应用工程师Ricky Su专门为本书更新了他的博客“Xilinx网站资源导读”,以帮助读者寻找Xilinx的资料,本书15.3节就取自于他的博客。
  同时北京工业大学的林超、胡嘉欣、唐锟、黄少辉协助我们完成了部分图表、文字的更新。非常感谢以上课题组及相关人员给予的无私帮助和支持,因为有了他们,我们才可以在短短3个月内完成初稿。相信大家在后续章节的阅读中会从他们参与的项目中大大获益。
  西安交通大学的孙宏滨副教授通读了本书,并提出了很多宝贵的意见。Xilinx的很多合作伙伴都对这本书给予了很高的关注与支持,他们也对本书进行了点评与指导,在此一并表示感谢。
  为了参考案例与本书的尽快面世,两位实习生马岷和江舟牺牲了大量业余时间,在此对他们以及他们女友的默默支持一并表示感谢,希望这段经历能成为他们今后美好的回忆。也要感谢机械工业出版社张国强编辑在本书写作与出版的过程中给予的大力支持和指导。更要感谢我的爱人吴幸博士,在我业余时间写作这本书时给予我的全力支持和关心。
  本书主要作者的背景还是以硬件为主,因此本书虽为软硬件协同设计,但总体写作思路还是从硬件工程师的视角出发的,如有不妥之处,请读者谅解。在本书创作初期,我们期望能出一本经典参考案例书籍,但理想与现实总会有些许差距,例如与新加坡国立大学合作的足球项目在这一版中就无法与读者见面了,甚是遗憾。同时因为时间关系,书中文字和实验内容会有欠斟酌、不完美的地方,甚至有错误的地方,恳请专家和读者不吝赐教,以便在适当时间再做修订补充。请读者将反馈意见发送至joshua.lu@xilinx.com与作者进一步交流。

陆佳华
2012年12月8日于上海

上架指导

电子与电气工程

封底文字

本书最大的特点是实操性强,可以让读者将基于Zynq这个软硬件全可编程SoC的ZED开发板以最快的速度用起来。通过对涉及的技术课题和多个设计案例的全面和深入的实践,掌握双核ARM和FPGA加速的嵌入式系统的软硬件协同设计技术。所以此书不仅适合广大工程技术人员,也适合高等院校的教学和科研,为其提供了非常有价值的参考内容和方法指导。
—— 清华大学 孟宪元教授

赛灵思(Xilinx)的Zynq芯片是嵌入式系统发展的集大成者,软硬件以及IO全面可编程,拥有极大的灵活性,但也带来需要使用者掌握更多综合技能的挑战。本书以迅速可上手的案例开始,帮助使用者的建立兴趣和自信,然后过渡到Zynq体系结构和外设等的讲解,循序渐进,最后扩展到软硬件协同设计,以智能小车为平台,将现代嵌入式系统的一些诸如OpenCV、嵌入式Web服务器、HLS等前沿技术以实例展示,是一本不可多得的好书。 

     —— Xilinx大学计划大中华区经理 谢凯年博士

赛灵思(Xilinx)的Zynq系列产品结合了双核ARM Cortex-A9处理器与可编程逻辑架构,使得开发人员在获益于ARM丰富的生态系统资源的同时,也获益于FPGA的灵活性和可扩展性。本书对于众多希望尽快了解Zynq产品,熟练使用Znyq的国内用户们而言是一本非常有价值的参考书,书中不仅介绍了详实的基础内容,而且提供了很多实用的案例供读者实践。

——ARM中国区大学计划经理 时昕博士

Zynq不仅是一款All Progammable SoC,更是一个革命性的创新平台。在和客户沟通的过程中,我发现Zynq平台能够让客户的技术创新能力发挥地淋漓尽致,不再受限于单纯的硬件或软件。本书详细地介绍了基于Zynq的嵌入式系统设计,结合典型案例,深入浅出,很好地体现了软硬件协同设计理念。本书将帮助对Zynq感兴趣的读者快速上手,体验到All Programmable的乐趣!
——赛灵思(Xilinx) 亚太区Zynq 市场开发经理 罗霖

Zynq有机地结合FPGA与ARM两大主流嵌入式技术,是一个具有划时代意义的产品。本书以应用为导向,全方位的将赛灵思(Xilinx)最先进技术展现在读者面前。应用项目有很强的代表性,技术剖析细致入微,兼顾读者兴趣与技术规范,是国内FPGA领域不可多得的一本好书。

——Digilent中国区总经理 赵峰博士

嵌入式系统的软硬件协同设计、SOC芯片系统级设计一直都是众多电子工程师的梦想,赛灵思的Zynq器件正是可以满足这种需求,从而充分发挥工程师的设计能力。本书从简单的实例入手、循序渐进,通过电机控制、智能健康平台、高端视频处理和智能小车等实用案例,充分发掘当前产业界的需求并紧密结合Zynq器件的特点,让大家对Zynq从基本技术到系统应用有了全面的认识。对广大的嵌入式和FPGA的爱好者而言,是一本值得推荐的好书。
                                    
 ——安富利高级技术市场经理     陈志勇博士

作者简介

陆佳华 江舟 马岷 编著 孙宏滨 主审:暂无简介

图书目录

前言
第一部分 基础篇
第1章 初试ZedBoard/2
  1.1 GPIO LED动手玩/2
   1.1.1 拷贝SD卡/2
   1.1.2 跳线与外设连接/2
   1.1.3 演示操作/2
  1.2 Linaro Ubuntu动手玩/3
   1.2.1 SD卡分区/3
   1.2.2 文件拷贝(FAT/EXT)/6
   1.2.3 外设连接/6
   1.2.4 可演示的效果/7
第2章 Zynq平台介绍/9
  2.1 7系列FPGA简介/9
  2.2 Zynq-7000 AP SoC体系简介/12
第3章 ZedBoard开发环境/15
  3.1 ZedBoard的板载外设/15
   3.1.1 LED/15
   3.1.2 按键/16
   3.1.3 开关/16
   3.1.4 OLED/17
   3.1.5 USB接口/18
   3.1.6 音频接口/20
   3.1.7 VGA接口/21
   3.1.8 HDMI接口/22
   3.1.9 10/100/1000兆网口/23
  3.2 ZedBoard的扩展外设/25
   3.2.1 外扩PMod插座/25
   3.2.2 外扩FMC插槽/27
   3.2.3 外扩AMS插座/28
第4章 开发工具链/29
  4.1 可编程逻辑开发工具链/29
   4.1.1 PlanAhead/29
   4.1.2 Xilinx Platform Studio/31
  4.2 软件开发工具链/34
   4.2.1 Xilinx Software Development Kit/34
   4.2.2 交叉编译工具链/35
  4.3 软硬件调试工具/36
   4.3.1 ChipScope Pro/36
   4.3.2 GDB与GDBserver/38
第5章 Zynq体系结构/40
  5.1 应用处理器单元(APU)/40
   5.1.1 ARM Cortex A9处理器/40
   5.1.2 侦听控制单元(SCU)/43
   5.1.3 L2高速缓存/44
   5.1.4 APU接口/44
  5.2 通用外设/46
   5.2.1 通用IO(GPIO)/46
   5.2.2 SPI接口/49
   5.2.3 UART接口/51
   5.2.4 计时器/54
   5.2.5 USB控制器/57
   5.2.6 DDR控制器/58
  5.3 数字逻辑设计/59
   5.3.1 可编程逻辑“外设”(PL)/59
   5.3.2 XADC/61
   5.3.3 PCIe/62
  5.4 MIO/EMIO/63
第6章 系统级信号/66
  6.1 电源管理/66
  6.2 Clock信号/67
   6.2.1 CPU时钟域/68
   6.2.2 DDR时钟域/69
   6.2.3 基本的时钟分支结构/69
   6.2.4 I/O外设(IOP)时钟/70
   6.2.5 PL时钟/72
   6.2.6 其他时钟/72
  6.3 复位系统/73
  6.4 JTAG/75
  6.5 中断处理/76
第7章 Zynq启动与配置/78
  7.1 Zynq启动过程简介/78
  7.2 外部启动条件/79
   7.2.1 电源要求/79
   7.2.2 时钟要求/79
   7.2.3 复位要求/79
   7.2.4 启动引脚设置/80
  7.3 BootROM/80
   7.3.1 BootROM的作用/80
   7.3.2 BootROM的特点/81
   7.3.3 BootROM后的状态/82
  7.4 FSBL/82
  7.5 SSBL/84
  7.6 Linux启动过程/84
  7.7 Secure Boot/86
第8章 面向软件工程师的逻辑设计/87
  8.1 FPGA硬件加速原理/87
   8.1.1 以空间换时间/87
   8.1.2 以存储器换门电路/89
   8.1.3 以IP集成换生产力/90
  8.2 部分动态可重配置于Zynq/93
第9章 ZedBoard入门/95
  9.1 UART和GPIO控制/95
   9.1.1 UART和GPIO接口/95
   9.1.2 硬件设计过程/96
   9.1.3 软件设计过程/106
  9.2 硬件/软件调试方法/112
   9.2.1 ChipScope IP Core/112
   9.2.2 SDK Gdb使用/115
  9.3 搭建你的单板计算机(Single Board Computer)/117
   9.3.1 搭建系统环境/118
   9.3.2 准备工作/118
第二部分 进阶篇
第10章 基于虚拟平台的Zynq开发/126
  10.1 QEMU介绍/126
  10.2 编译QEMU源码/126
   10.2.1 下载QEMU源码/126
   10.2.2 配置QEMU/127
   10.2.3 QEMU所依赖的库文件/127
   10.2.4 编译QEMU/127
  10.3 启动QEMU/127
  10.4 QEMU中的嵌入式Linux/128
  10.5 商业版虚拟平台/131
第11章 PL和PS的接口技术详解/132
  11.1 PL和PS的接口/132
   11.1.1 AXI接口简介/133
   11.1.2 AXI Interconnect/134
  11.2 Zynq的内部连接/137
   11.2.1 AXI_HP/139
   11.2.2 AXI_GP/140
   11.2.3 AXI_ACP/140
  11.3 PL和存储器系统性能概述/142
   11.3.1 接口理论带宽/142
   11.3.2 DDR控制器的吞吐率及其效率/143
   11.3.3 内部互连吞吐量瓶颈/143
   11.3.4 如何选择PL的接口/144
第12章 基于Zynq的软硬件协同设计/149
  12.1 多核处理器架构简介/149
   12.1.1 什么是多核处理器/149
   12.1.2 多核处理器发展的动机和优势/150
   12.1.3 同构、异构多核架构的优点和挑战/152
  12.2 软硬件协同设计方法论/152
   12.2.1 什么是软硬件协同设计/152
   12.2.2 软硬件协同设计发展的动机和优势/152
   12.2.3 软硬件协同设计的基本流程/153
   12.2.4 基于Xilinx工具的软硬件协同设计简介/154
  12.3 高层次综合/154
   12.3.1 高层次综合综述/154
   12.3.2 高层次综合发展的动机与优势/155
   12.3.3 Xilinx AutoESL工具简介/156
  12.4 基于Xilinx Zynq的软硬件协同设计实例/157
   12.4.1 功能简介/157
   12.4.2 设计流程简介/157
   12.4.3 实验结果与验证/165
第13章 Zynq开发实战/166
  13.1 用户IP设计/166
   13.1.1 用户IPcore介绍/166
   13.1.2 用户IPcore设计/167
  13.2 嵌入式Linux设备驱动开发/180
   13.2.1 设备驱动开发介绍/180
   13.2.2 驱动程序的加载与卸载/181
   13.2.3 sys文件系统简介/181
   13.2.4 PWM模块驱动程序/182
   13.2.5 PWM驱动程序编译与测试/184
  13.3 构建嵌入式Linux系统/186
   13.3.1 搭建系统环境/186
   13.3.2 编译u-boot/186
   13.3.3 编译内核与设备树/187
   13.3.4 制作根文件系统/188
   13.3.5 启动嵌入式Linux/192
  13.4 HDMI设计/193
   13.4.1 HDMI传输原理/193
   13.4.2 ADV7511芯片的相关控制信号/195
   13.4.3 设计过程/198
  13.5 OpenCV移植/203
   13.5.1 开发环境准备/203
   13.5.2 配置cmake/203
   13.5.3 OpenCV编译与安装/205
   13.5.4 OpenCV移植与ZedBoard测试/206
  13.6 基于OpenCV的树叶识别系统/207
   13.6.1 项目总览/208
   13.6.2 图像采集/208
   13.6.3 预处理/209
   13.6.4 特征提取/211
   13.6.5 分类决策/216
   13.6.6 总结/219
  13.7 基于OpenCV的人脸识别系统/220
   13.7.1 系统综述/220
   13.7.2 基于Haar特征和Adaboost算法的人脸检测/220
   13.7.3 系统设计与实现/222
   13.7.4 总结/226
  13.8 嵌入式Web服务器的移植与搭建/226
   13.8.1 嵌入式Web服务器介绍/226
   13.8.2 Boa服务器移植与配置/228
   13.8.3 Boa服务器部署与测试/230
  13.9 嵌入式网络摄像机的移植与搭建/233
   13.9.1 嵌入式网络摄像机/233
   13.9.2 mjpg-streamer的移植与架设/234
  13.10 FreeRTOS实时操作系统的应用/238
   13.10.1 FreeRTOS介绍/238
   13.10.2 FreeRTOS与ucOS-Ⅱ的比较/239
   13.10.3 FreeRTOS在Zynq上的应用实例与分析/239
   13.10.4 基于FreeRTOS的Lwip/250
  13.11 XADC的使用/250
   13.11.1 建立硬件工程/252
   13.11.2 软件工程设计/253
   13.11.3 程序分析/255
  13.12 基于Zynq的部分可重配置/256
   13.12.1 可重配置系统介绍/256
   13.12.2 可重配置的开发流程/257
   13.12.3 小结/265
  13.13 在Zynq上搭建Android简介/265
第14章 系统级设计案例/266
  14.1 电机控制系统/266
   14.1.1 双闭环控制器理论/266
   14.1.2 双闭环系统/267
   14.1.3 双闭环控制IP核说明/272
   14.1.4 硬件实现过程/275
   14.1.5 软件实现过程/285
   14.1.6 硬件平台测试/286
  14.2 智能家庭健康平台/287
   14.2.1 智能家庭健康平台简介/287
   14.2.2 EKG AFE模块硬件设计/287
   14.2.3 Night EKG Controller IP设计/292
   14.2.4 建立可运行Linux的完整系统/295
   14.2.5 Night EKG Controller的Linux驱动设计/297
   14.2.6 基于Qt的图形用户界面设计/299
   14.2.7 在ZedBoard上运行Qt程序/308
   14.2.8 实现软件开机自动运行/310
  14.3 高性能视频处理系统设计/311
   14.3.1 系统架构/312
   14.3.2 硬件架构设计/313
   14.3.3 软件架构设计/316
   14.3.4 利用Vivado HLS实现Sobel滤波硬件/318
   14.3.5 使系统在ZedBoard上运行/320
  14.4 智能小车系统开发/320
   14.4.1 智能小车系统结构/320
   14.4.2 运动控制设计/323
   14.4.3 Linux系统应用程序设计/326
   14.4.4 智能小车平台的后续拓展/333
第15章 如何获取资料和帮助/334
  15.1 如何获取Xilinx的技术文档/334
   15.1.1 DocNav介绍/334
   15.1.2 DocNav使用案例/334
  15.2 如何找到Zynq开发资料/336
   15.2.1 如何获取本书的最新例程/336
   15.2.2 如何获取Zynq开发资料/337
   15.2.3 如何获取ZedBoard文档与例程/337
  15.3 Xilinx网站资源导读/338
   15.3.1 序/338
   15.3.2 Xilinx软件介绍/338
   15.3.3 软件版本和软件更新/340
   15.3.4 软件教程/341
   15.3.5 硬件资料/343
   15.3.6 参考资源/343
   15.3.7 问题解决/344
附录A Xilinx开发套件版本14.1到14.3的主要升级变化/346
参考资料/353

教学资源推荐
作者: Devdas Shetty, Richard A.Kolk
作者: [加]索兰·尼瓦格斯库(Sorin Voinigescu) 多伦多大学 著
作者: 钟洪声 吴涛 孙利佳 编著
作者: (美)S.A. Reza Zekavat 著
参考读物推荐
作者: 高显生 彭英杰 编著
作者: [美]哈肯·基洛卡(Hakan Gürocak)著
作者: 王曰海 汤振宇 吴新天 编著
作者: (美)Steven H. Voldman 著