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

嵌入式系统软硬件协同设计实战指南:基于Xilinx ZYNQ(第2版)
作者 : 陆佳华 潘祖龙 彭竞宇 肖雄 孙宏滨 编著
出版日期 : 2014-07-11
ISBN : 978-7-111-47207-0
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 333
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

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

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

图书特色

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

封底:
本书最大的特点是实操性强,可以让读者将基于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开发指南》一书。

图书前言

第2版前言
平台及写作背景
  作为全球最大的可编程逻辑平台供应商,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上利用HLS进行软硬件协同设计的理念与过程。第13章占了全书四分之一的篇幅,介绍了使用Zynq实现逻辑、驱动、操作系统、高清视频显示、OpenCV、网络摄像机等12个应用案例,这是本书的精华之一。在第14章,将13章中提到的独立案例再融合成4个系统案例,这4个系统案例都会应用到前述章节的知识,以此帮助大家尽快掌握在Zynq上进行系统级设计的方法。
  笔者在这些年支持客户的过程中,常常会发现客户困扰于不知如何寻找到Xilinx相关工具、IP的参考文档、参考设计。因此本书第15章中主要介绍了如何获取资料和帮助,重点介绍了Xilinx新推出的DocNav工具,希望能帮助初学者迅速找到Xilinx资料。
  在本书案例开发与写作的过程中,Xilinx的工具已升级到了更新的2014.1版本,但是本书的很多案例是基于2013.4版本的,部分案例由于时间的关系仍然沿用ISE版本的,不过我们会很快将工程更新到Vivado版本。
  作为ZedBoard板这样一个社区开发平台的设计指南,本书秉承了来源于社区回馈于社区的理念,书中所有参考设计均开放源码,读者可通过访问https://github.com/xupsh/ZynqBook.git(GitHub)或http://pan.baidu.com/S/leQj6buM(网盘)获取相关信息。同时本书的勘误以及工程更新都将在该网址上给出,另外,我们在http://www.openhw.org的论坛中设有“大学计划图书讨论专版”,读者可在此讨论区中找到本书对应版面,下载代码,对书稿、案例开展讨论。本书最后一个案例为智能小车项目,这是机器人开源社区www.zrobot.org中的第一个项目。智能小车平台后续相关的拓展案例,以及其他机器人案例均会通过该社区开源代码,并同步更新,请大家关注该社区的发展,积极参与到社区的项目中来。
致谢
  本书的写作也体现了社区的力量,本书得到国内各大著名院校以及工程师的支持:
  1)清华大学的刘勇攀教授、李双辰和我们一起完成了第12章的软硬件协同设计。
  2)华中科技大学的何顶新教授、任蔚博士、牛盼情和我们一起完成了第14章中的电机控制系统设计及其初稿写作,而方华启帮助我们完成了智能小车演示中Android客户端的开发演示。
  3)上海交通大学的祝永新教授、辜晓琪与我们一起完成了OpenCV的人脸识别案例及其初稿写作。
  4)山东大学的彭竞宇、沈瓒君与我们一起完成了树叶识别案例及其初稿写作。
  5)西安交通大学吕敏杰博士整理出了HDMI显示开发过程供大家参考。
  6)西安电子科技大学的雷杰副教授、徐建国也给了我们在Zynq上实现Lwip的有益参考。
  7)本书也邀请到了爱板网(eeboard)的主编吴志军先生为我们撰写了第3章中的ZedBoard板的介绍,智翔集团的徐晨辉和我们一起完成了第4章的撰写,并在Webcam开发过程中给予了帮助。
  8)Xilinx高级战略应用工程师Ricky Su专门为本书更新了他的博客“Xilinx网站资源导读”,以帮助读者寻找Xilinx的资料,本书第15.3节就取自于他的博客。
  同时北京工业大学的林超、胡嘉欣、唐锟、黄少辉协助我们完成了部分图表、文字的更新。非常感谢以上课题组及相关人员给予的无私帮助和支持,因为有了他们,我们才可以在短短3个月内完成初稿,相信大家在后续的章节阅读中会从他们参与的项目中大大获益。
  西安交通大学的孙宏滨副教授通读了本书,并提出了很多宝贵的意见。Xilinx的很多合作伙伴都对这本书给予了很高的关注与支持,他们也对本书进行了点评与指导,在此一并感谢。
  为了参考案例与本书的尽快面世,两位实习生马岷和江舟牺牲了大量业余时间,在此对他们以及他们女友的默默支持一并表示感谢,希望这段经历能成为他们今后美好的回忆。也要感谢机械工业出版社张国强编辑在本书写作与出版的过程中给予的大力支持和指导。更要感谢我的爱人吴幸博士,在我业余时间写作这本书时给予我全力的支持和关心。
  本书主要作者的背景还是以硬件为主,因此本书虽为软硬件协同设计,但总体写作思路还是从硬件工程师的视角出发,如有不妥之处,请读者谅解。在本书创作初期,我们期望能出一本经典参考案例书籍,但理想与现实总有些许差距,例如与新加坡国立大学合作的足球项目在这一版中就无法与读者见面,甚是遗憾。同时因为时间关系,书中文字和实验内容会有欠斟酌和不完美的地方,甚至有错误的地方,恳请专家和读者不吝赐教,以便在适当时间再做修订补充。请读者将反馈意见发送至joshua.lu@xilinx.com与作者进一步交流。

陆佳华
2014年5月18日于上海

上架指导

电子与电气工程

封底文字

本书最大的特点是实操性强,可以让读者将基于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的爱好者而言,是一本值得推荐的好书。
                                    
 ——安富利高级技术市场经理     陈志勇博士

图书序言

随着开发定制芯片成本的飞速增长,越来越少的人拥有在最新的工艺节点上开发专用芯片或片上系统(ASIC/SoC)的资源。因此人们迫切需要一个能提供低功耗、高性能及高容量等优势的ASIC和FPGA硬件可编程器件。有了这样的器件就可以被用户编程为自己设计的专用SoC。该类的器件尤其对教师和学生有用,它们可使每个人都可以搭建自己的专用全可编程SoC,而不需要真实的搭建一片硅片。
  Xilinx Zynq-7000全可编程SoC系列器件正是这类产品。在这个芯片的硬件部分实现了一个高性能、双核ARM Cortex-A9处理器子系统(PS)和一个丰富的内存、配置和互联接口。在FPGA逻辑部分保留了灵活性以及其他传统FPGA具备的所有优势,FPGA则通过多口高性能接口连接到PS端,实现了PS与FPGA间的高带宽通信。
  ZedBoard(Zynq-7000开发板)通过提供一个专门为这类独一无二并且功能强大的器件推广到广大应用和用户,并重点关注大学生的定制平台,将定制化SoC的概念带到了下一步。
  在本书中,作者对Zynq-7000系列芯片和ZedBoard产品进行了出色的概述,还详细介绍了器件的结构。作者通过在Zynq-7000 SoC芯片上搭建设计来引导读者,并深入描述了搭建该系统需要的工具以及相应的开发流程。Zynq-7000芯片是一个混合器件——软件和硬件都可以编程,本书覆盖了硬件设计工具以及高层软件设计工具和流程。最重要的是作者通过完整的开发流程引导读者理解启动和配置器件,以及启动更高层执行(如操作系统)的过程。本书还提供了几个在ZedBorad上运行的参考设计,这些参考设计覆盖了工业电机控制到智能图像处理,所有这些信息使读者可以快速理解并在Zynq-7000 SoC芯片上搭建设计。
  这本书提供了优秀并且简明的所有应该要开始使用的Zynq-7000 SoC系列的信息。作为全球领先的电子产品开发者,中国的经济依靠着富有天赋并且受过良好训练的工程师们为强大的经济发展提供燃料。本书作为一本介绍Zynq-7000 SoC产品相关的书籍,对于中国用户是非常适用的。

Vidya Rajagopalan
赛灵思处理、系统、解决方案以及应用部副总裁

作者简介

陆佳华 潘祖龙 彭竞宇 肖雄 孙宏滨 编著:暂无简介

图书目录

序言
第2版前言
第一部分 基础篇
第1章 将你的ZED板卡用起来/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 文件复制/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章 Zynq开发工具链/29
  4.1 Vivado设计套件/29
   4.1.1 Vivado IDE/29
   4.1.2 Vivado IP Integrator/32
   4.1.3 Vivado调试介绍/35
  4.2 软件开发工具链/37
   4.2.1 SDK/37
   4.2.2 交叉编译工具链/38
   4.2.3 GDB与GDB Server/39
第5章 Zynq体系结构/41
  5.1 应用处理器单元/41
   5.1.1 Cortex-A9处理器/41
   5.1.2 侦听控制单元/44
   5.1.3 L2高速缓存/45
   5.1.4 APU接口/45
  5.2 通用外设/47
   5.2.1 通用I/O/47
   5.2.2 SPI接口/50
   5.2.3 UART接口/52
   5.2.4 计时器/55
   5.2.5 USB控制器/57
   5.2.6 DDR控制器/58
  5.3 数字逻辑设计/60
   5.3.1 可编程逻辑“外设”/60
   5.3.2 XADC/62
   5.3.3 PCIe/63
  5.4 MIO/EMIO/64
第6章 系统级信号/67
  6.1 电源管理/67
   6.1.1 PS运行模式下的动态功耗削减/68
   6.1.2 睡眠模式/68
  6.2 时钟信号/68
   6.2.1 CPU时钟域/69
   6.2.2 DDR时钟域/70
   6.2.3 基本的时钟分支结构/70
   6.2.4 I/O外设(IOP)时钟/71
   6.2.5 PL时钟/73
   6.2.6 其他时钟/73
  6.3 复位系统/74
  6.4 JTAG/76
  6.5 中断处理/77
第7章 Zynq的启动与配置/79
  7.1 Zynq的启动过程简介/79
  7.2 外部启动条件/80
   7.2.1 电源要求/80
   7.2.2 时钟要求/80
   7.2.3 复位要求/80
   7.2.4 启动引脚设置/81
  7.3 BootROM/81
   7.3.1 BootROM的作用/81
   7.3.2 BootROM的特点/82
   7.3.3 执行BootROM后的状态/83
  7.4 FSBL/83
  7.5 SSBL/86
  7.6 Linux启动过程/86
  7.7 Secure Boot/87
第8章 面向软件工程师的逻辑设计/89
  8.1 FPGA硬件加速原理/89
   8.1.1 以空间换时间/89
   8.1.2 以存储器换门电路/91
   8.1.3 以IP集成换生产力/92
  8.2 部分动态可重配置于Zynq/95
第9章 ZedBoard入门/97
  9.1 跑马灯/97
   9.1.1 Vivado工程创建/97
   9.1.2 在Vivado中创建Zynq嵌入式系统/100
   9.1.3 SDK应用程序的编写/109
  9.2 Zynq嵌入式系统调试方法/114
   9.2.1 Vivado硬件调试/114
   9.2.2 使用SDK对Zynq进行调试/119
  9.3 启动Linux/123
   9.3.1 创建FSBL.elf/123
   9.3.2 从SD卡启动Linux/124
   9.3.3 从QSPI启动Linux/126
第二部分 进阶篇
第10章 基于虚拟平台的Zynq开发/130
  10.1 QEMU介绍/130
  10.2 编译QEMU源码/130
   10.2.1 下载QEMU源码/130
   10.2.2 配置QEMU/131
   10.2.3 QEMU所依赖的库文件/131
   10.2.4 编译QEMU/131
  10.3 启动QEMU/131
  10.4 QEMU中的嵌入式Linux/132
   10.4.1 QEMU启动简介/132
   10.4.2 使用Ubuntu包管理器快速搭建用户定制系统/133
   10.4.3 使用SSH服务进行访问/134
   10.4.4 使用Telnet服务进行访问/135
   10.4.5 使用FTP服务向QEMU传送文件/135
   10.4.6 USB设备支持/135
   10.4.7 SMP对称多核处理器的支持/135
   10.4.8 硬件模块GPIO支持/135
  10.5 商业版虚拟平台/136
第11章 PL和PS的接口技术详解/137
  11.1 PL和PS的接口/137
   11.1.1 AXI接口简介/138
   11.1.2 AXI Interconnect/139
  11.2 Zynq的内部连接/142
   11.2.1 AXI_HP/144
   11.2.2 AXI_GP/145
   11.2.3 AXI_ACP/145
  11.3 PL和存储器系统性能概述/147
   11.3.1 接口理论带宽/147
   11.3.2 DDR控制器的吞吐率及效率/148
   11.3.3 内部互连吞吐量瓶颈/148
   11.3.4 如何选择PL的接口/149
第12章 基于Zynq的软硬件协同设计/154
  12.1 多核处理器架构简介/154
   12.1.1 什么是多核处理器/154
   12.1.2 多核处理器发展的动机和优势/155
   12.1.3 同构、异构多核架构的优点和挑战/157
  12.2 软硬件协同设计方法论/157
   12.2.1 什么是软硬件协同设计/157
   12.2.2 软硬件协同设计发展的动机和优势/157
   12.2.3 软硬件协同设计的基本流程/158
   12.2.4 基于Xilinx工具的软硬件协同设计简介/159
  12.3 高层次综合/159
   12.3.1 高层次综合综述/159
   12.3.2 高层次综合发展的动机与优势/160
   12.3.3 Xilinx Vivado HLS工具简介/161
  12.4 基于Xilinx Zynq的软硬件协同设计简例/162
   12.4.1 功能简介/162
   12.4.2 设计流程简介/162
第13章 Zynq高级开发/170
  13.1 用户IP核设计/170
   13.1.1 AXI PWM设计/170
   13.1.2 添加用户IP,完成系统设计/180
  13.2 构建嵌入式Linux系统/185
   13.2.1 构建交叉编译环境/185
   13.2.2 编译U-Boot/186
   13.2.3 编译uImage/186
   13.2.4 生成uramdisk.image.gz/187
   13.2.5 创建devicetree.dtb/188
  13.3 嵌入式Linux应用程序与驱动/190
   13.3.1 Linux设备驱动与软硬件之间的关系/190
   13.3.2 字符型设备驱动/191
   13.3.3 PWM模块驱动程序/192
   13.3.4 应用程序编写/193
  13.4 HDMI设计/194
   13.4.1 HDMI传输原理/195
   13.4.2 ADV7511芯片的相关控制信号/196
   13.4.3 HDMI系统Vivado实现/198
  13.5 OpenCV移植/200
   13.5.1 开发环境准备/200
   13.5.2 配置cmake/200
   13.5.3 OpenCV编译与安装/202
   13.5.4 OpenCV移植与ZedBoard测试/203
  13.6 基于OpenCV的树叶识别系统/204
   13.6.1 项目总览/205
   13.6.2 图像采集/205
   13.6.3 预处理/206
   13.6.4 特征提取/208
   13.6.5 分类决策/213
   13.6.6 过程总述/216
  13.7 基于OpenCV的人脸检测系统/217
   13.7.1 原理简介/218
   13.7.2 系统设计与实现/219
  13.8 嵌入式Web服务器搭建/221
   13.8.1 Boa服务器移植与配置/221
   13.8.2 Boa服务器的部署与测试/223
   13.8.3 CGI程序简介/224
  13.9 在ZedBoard上搭建网络摄像机/225
   13.9.1 嵌入式网络摄像机/225
   13.9.2 Mjpeg-Streamer移植/226
   13.9.3 部署Mjpeg-Streamer/226
  13.10 FreeRTOS/228
   13.10.1 FreeRTOS介绍/228
   13.10.2 FreeRTOS与ucOS-II的比较/229
   13.10.3 FreeRTOS在Zynq上的应用实例与分析/229
  13.11 基于FreeRTOS的Xilmfs/240
   13.11.1 嵌入式文件系统概述/241
   13.11.2 Xilmfs文件系统介绍/245
   13.11.3 Xilmfs文件系统使用实例/248
   13.11.4 利用mfsgen工具创建只读型文件系统镜像/250
  13.12 Lwip/251
   13.12.1 基于standalone的Lwip应用/252
   13.12.2 基于FreeRTOS的Lwip应用/255
  13.13 在Zynq上搭建Andriod/257
  13.14 Zynq双核通信/259
第14章 系统级设计案例/265
  14.1 多轴运动控制系统/265
   14.1.1 整体结构/265
   14.1.2 硬件系统设计/266
   14.1.3 硬件系统与ZedBoard接口/267
   14.1.4 控制系统设计流程/268
   14.1.5 多轴控制系统结构设计/270
   14.1.6 利用Vivado HLS实现电流环控制硬件/271
   14.1.7 算法移植/272
   14.1.8 算法综合/273
   14.1.9 软件系统设计/274
   14.1.10 双核交互实现/274
   14.1.11 Android APP监控程序实现/275
   14.1.12 系统测试/276
  14.2 Sobel滤波/278
   14.2.1 软件架构设计/278
   14.2.2 Linux内核与设备驱动/279
  14.3 SDN/OpenFlow交换机/287
   14.3.1 SDN/OpenFlow简介/287
   14.3.2 数据通路设计/288
   14.3.3 平台架构搭建/290
   14.3.4 系统及驱动/291
   14.3.5 OpenFlow交换机移植/292
   14.3.6 启动OpenFlow交换机/292
   14.3.7 数据通路优化及加速/294
  14.4 智能小车系统开发/294
   14.4.1 智能小车系统结构/295
   14.4.2 运动控制设计/298
   14.4.3 Linux系统应用程序设计/301
   14.4.4 智能小车平台的后续拓展/307
   14.4.5 在智能小车平台上移植ROS/308
第15章 如何获取资料和帮助/309
  15.1 如何获取Xilinx的技术文档/309
   15.1.1 DocNav介绍/309
   15.1.2 DocNav使用案例/309
  15.2 如何找到Zynq开发资料/312
   15.2.1 如何获取本书的最新例程/312
   15.2.2 如何获取Zynq开发资料/312
   15.2.3 如何获取ZedBoard文档与例程/313
  15.3 Xilinx网站资源导读/313
   15.3.1 序/313
   15.3.2 Xilinx软件介绍/313
   15.3.3 软件版本和软件更新/316
   15.3.4 软件教程/317
   15.3.5 硬件资料/318
   15.3.6 参考资源/319
   15.3.7 问题解决/320
参考文献/321

教学资源推荐
作者: 冯全源 胡香荣 康萍 等编著
作者: [美]玛里琳·沃尔夫(Marilyn Wolf)著
作者: 黄丽亚 杨恒新 袁丰 等编著
作者: (美)Robert L. Boylestad 著
参考读物推荐
作者: 孙蓉 王臣业 张兰勇 等编著
作者: (英)Robin Heydon 著
作者: [日]南 裕树(Yuki Minami) 著