软/硬件协同设计(原书第2版)
作者 : [美] 帕特里克 R. 肖蒙(Patrick R. Schaumont)著
译者 : 王奕 于恒 杨胜齐 哈亚军 译
丛书名 : 计算机科学丛书
出版日期 : 2016-01-26
ISBN : 978-7-111-52018-4
定价 : 89.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 361
开本 : 16
原书名 : A Practical Introduction to Hardware/Software Codesign,Second Edition
原出版社: Springer-Verlag
属性分类: 教材
包含CD :
绝版 :
图书简介

这本书着手要解决的关键问题是:如何使嵌入式系统在设计灵活性和执行效率间取得平衡是贯穿全书的主题,讲述了如何将软件设计与硬件设计相结合进而引出这个重要计算机工程问题的解决方法。本书从4个放讲解软硬件协同设计:基础设计、自定义体系结构设计、软硬件接口与应用实例,并提供了一套合成设计环境以帮助读者进行软硬件协同设计实验。每一章均提供了练习和延伸阅读内容。
  本书第二版增加了现代FPGA开发环境(Xilinx及Altera)下的实验实例,加入了更多的实例和练习,其中几个章节的内容得到扩充和重写。
本书分为四个部分,共15个章节。其中第一、第二、第三部分的实验案例基于GEZEL语言与工具链;第四部分分别采用了8051微控制器、ARM芯片、NiosII 与Microblaze处理器等平台来搭建软硬协同处理实验环境。

图书特色

“如果我教授与此主题相关的一门课程,我会选择本书作为教科书。如果是想要学习协同设计的学生,我会寻找一门至少用类似方法的课程。如果我是想从实际应用角度学习协同设计的工程师或工程管理人员,我会首先选择阅读本书。当我作为一名从业者开始学习协同设计时,像这样的一本书是最完美的介绍。”
—— Grant Martin 

本书介绍如何将自定义硬件集成到软件的嵌入式系统设计中,阐释了如何解决计算机工程中的关键问题:嵌入式系统设计者如何平衡设计的灵活性和高效性。本书内容覆盖了软/硬件协同设计的4个主题:基础概念、自定义体系结构的设计空间、软/硬件接口和应用实例,此外还介绍了设计环境,以便帮助读者开展软/硬件协同设计实验。同时,每章后面包括问答题和扩展阅读。
本书包括基于Xilinx和Altera现代FPGA环境的实验与示例,这使得本书的内容适用于很多使用这些工具的课程。

本书特点
教授嵌入式系统设计,着重介绍自定义硬件模块与软件的集成。
深刻阐释软/硬件协同设计领域的四个部分:基础概念、自定义体系结构的设计空间、软/硬件接口和应用实例。
包含使用Xilinx和Altera FPGA的实验与示例。

作者简介
帕特里克 R. 肖蒙(Patrick R. Schaumont) 拥有美国加州大学洛杉矶分校电子工程博士学位,目前为美国弗吉尼亚理工大学计算机工程副教授。1992~2001年,他是比利时微电子研究中心(IMEC)的研究员。2012~2014年,他担任弗吉尼亚理工大学关键应用的嵌入式系统中心主任。他的研究兴趣包括安全设计、实时嵌入式计算系统等。

图书前言

高效的电子系统设计是否有一定之规?软件设计者常会说:把代码写得精益求精!而硬件专家常会说:让电路运行得更快!但你看过本书之后,将得出显而易见的结论。只有兼收并蓄,把软件与硬件设计的长处融合为一,才有望达到最佳效果。软/硬件协同设计就是这样的一门学问,它引导设计者在电子系统设计中针对性能与设计灵活性进行明智取舍。通过进行软/硬件协同设计,设计者可对两种区别巨大的设计风格——使用软件对功能在时间维度进行串行分解和使用硬件对功能在空间维度进行并行分解——加以融合,从而得到满意的设计。
帕纳马伦科的奇幻飞行器
图1中的手稿描绘了一个有趣的人力飞行器,该飞行器由比利时艺术家帕纳马伦科于1973年设计,名字为Meganeudon II。据我所知,尽管它从未被成功设计,但我相信这份手稿已经充分描述了帕纳马伦科的设计概念。事实上,设计并不在乎复杂度,也不关乎底层细节。设计所要表达的只关乎想法、概念、视野。设计本质上就是一种创造的过程。

图 1
然而,要实现一种设计,我们需要技术,这样才能将想法与草稿投射到真材实料。幸运的是,作为计算机工程师,我们总是能够近水楼台先得月。一切皆因对技术的信手拈来,我们才可以将梦想照进现实。
本书读者对象
阅读本书之前,你应该基本了解硬件的相关知识,熟悉诸如寄存器、逻辑门、多路复用器、算术运算电路等电子元器件的概念。你也应该了解如何运用C语言编写代码。这些知识通常在计算机工程系的入门课程中学习,或者通过学习数字系统设计和软件工程两门课程进行训练。
本书适合作为高年级本科或低年级研究生的教材。另外,它也适合非计算机工程专业背景的研究者阅读,例如,无系统硬件设计训练背景的密码学家可通过研习本书,从而达到针对特殊算法设计系统架构的程度。
内容组织
本书重点兼顾设计方法与设计语言建模。设计建模有助于帮助设计者厘清问题头绪,捕捉问题答案。设计方法则系统性地将设计模型转换为最终实现。
本书包含四部分:基本概念、自定义体系结构的设计空间、软/硬件接口,以及应用实例。
第一部分 基本概念
第1章介绍软件和硬件的基本性质,并讨论软/硬件协同设计的动因。第2~3章描述数据流建模与实现。数据流建模是非常有用的系统级规范技术,并且是实现独立的,即系统可以从数据流模型实现成软件或者硬件。数据流建模也支持高层次性能分析与优化。第2章着重介绍数据流系统的稳定性分析与数据流模型的性能优化策略,例如流水线与重定时。第3章展示如何将数据流模型实现为硬件或软件。第4章介绍C代码的控制流和数据流分析。通过分析一段C代码中的控制依赖与数据依赖,设计者可以洞悉该程序的可能硬件实现。
第二部分 自定义体系结构的设计空间
第二部分带领读者开启一次灵活的、自定义体系结构的广阔设计空间之旅。四种数字体系结构的回顾展现了硬件设计如何逐步演化成软件设计。第5章介绍的带数据路径的有限状态机(FSMD)是整个“旅途”的起始点。有限状态机模型与寄存器传输级(RTL)的硬件模型等价。第6章介绍微程序的体系结构。与RTL机器不同之处在于,它们具有一个软件可编程的灵活控制器。第7章回顾通用的嵌入式RISC内核。这些处理器是当代软/硬件系统的核心部件。第8章介绍如何将这些通用嵌入式内核集成到片上系统(SoC)的FSMD模块中。第三部分将讨论针对片上系统的软/硬件协同设计的问题。
第三部分 软/硬件接口
第三部分描述片上系统(SoC)中硬件与软件的交互机制。第9章介绍软/硬件通信的核心概念。其中详细解释了软/硬件的同步策略,以及通信限制设计与计算限制设计的区别。第10章讨论片上总线的结构,以及软件与硬件通过片上总线高效交互的若干技术。第11章描述微处理器接口。这些接口的主要作用是为外设硬件在基于处理器的系统设计中提供一个处理器的附着点。该章描述三种接口,分别为内存映射接口、协处理器接口和自定义指令接口。第12章讨论了把硬件模块封装到一个预定义的微处理器接口的设计技术。
第四部分 应用实例
第四部分描述三个软/硬件协同设计的应用实例。第13章给出用于Trivium流密码算法的一个协处理器设计方案。第14章给出用于AES的一个协处理器设计方案。第15章给出用于计算CORDIC旋转的一个协处理器设计方案。每个设计方案都涉及不同的处理器和微处理器接口。第13章使用8051微控制器和ARM,第14章使用ARM和Nios-II,第15章使用MicroBlaze。
本书大部分实例都可从互联网下载,供读者动手练习。附录包含GEZEL工具与示例的安装指导。
每章末尾两节分别包含问答题和扩展阅读。问答题用于帮助读者建立对本书内容更深层的理解。部分问答题的答案可通过Springerextras在线获取,网址为http://extras.springers.com。
有些主题本书并未提及与讨论。本书作为一本关于一项复杂主题的参考指南,试图把握细节度与复杂度之间的平衡。例如,本书并未涉及软件并发的进阶概念,如线程和复杂软件架构(如操作系统、驱动程序等)。本书也未涉及软件中断或者更高阶的软件系统操作概念,如DMA(Direct Memory Access)。
建议读者顺序阅读本书,必读内容包含第1、4、5、7~12章。
第2版出版说明
第2版全面修订了第1版,重新撰写了几个章节并增添了新内容。第2版的重点放在提高整体结构,使其更加有逻辑性和可读性,并添加了一些应用实例。
以下是具体的修订变化:
数据流的相关章节被划分为两章:一章着重介绍数据流的分析和传输,另一章着重介绍数据流的实现。针对传输的讨论为介绍本书的性能分析和优化提供了条件。
第6章新增了一个基于8051微控制器的微程序实例。
第7章在RISC处理器的基础上,着重于通过GNC编译器的工具链检验目标代码以及分析汇编代码。
由于GEZEL开始支持AVR指令的仿真,第8章在片上系统中新增了一个使用AVR微处理器的应用实例。
第三部分重新组织了描述软/硬件接口的内容。第9章解释了软/硬件接口设计中的类属概念。在第1版中,这些概念在各个不同章节中分散介绍。第2版将这些概念集中在一章内,以便给读者一个更加简明的定义。
第三部分对软/硬件接口的三个组成部分进行了详细说明。这三个部分包括片上总线(第10章)、微处理器接口(第11章)以及硬件接口(第12章)。“硬件接口”在第1版中叫“控制器”(Control Shell)。新的定义在逻辑上更加适合软/硬件接口的整体描述。
第10章在片上总线内容的基础上新增了对Altera的Avalon片上总线的描述。AMBA的部分也更新到了最新的AMBA规范标准(v4)。
第11章在微处理器接口内容的基础上新增了Nios-II自定义指令接口的讨论和实例。
第四部分在原有应用实例内容的基础上扩展了一个AES协处理器的章节。现在的内容包括三章,涉及Trivium、AES以及CORDIC。
新增的附录描述如何安装和使用GEZEL工具。现在第5、6、8、11、13~15章的实例有可用的源代码。使用GEZEL工具可编译这些源代码。具体的操作步骤可以参考附录。
Springer网站的extras部分提供了部分问答题的答案。
第2版全面修订了语法和录入错误。非常感谢Gilberta Fernandes Marchioro、Ingrid Verbauwhede、Soyfan和Li Xin提供了第1版中的勘误。
实例演练
本书既着眼于概念与设计方法,又兼顾实践联系,因而在章节之间穿插了很多实例,并且使用3章的篇幅(即第四部分)详细讨论了完整的设计流程。
本书选择GEZEL(一种开源周期精准的硬件建模语言)作为本书使用的硬件描述语言。可从GEZEL网站(http://rijndael.ece.vt.edu/gezel2)下载软件、用例,以及其他说明文档。请参见附录A中的下载细节与安装说明。
之所以选择GEZEL而非主流硬件描述语言(HDL)如VHDL、Verilog或SystemC,原因如下:
减少建模开销。尽管建模对于嵌入式系统的构建至关重要,但是太多的建模细节往往使读者忽略掉关键问题。例如,对时钟信号建模需要很多额外的细节,但对单时钟源同步系统的设计来说,它们又不重要。在现实中,数字硬件系统大部分由单时钟源同步系统构成。
GEZEL可安装协同仿真插件。GEZEL模型可与多种处理器仿真模型进行协同仿真,包括ARM、8051和AVR。GEZEL包含一种库模块建模机制,允许用户定义与多种仿真引擎进行协同仿真的接口。
简洁化的需求。本书侧重实践,因而会列举大量实例代码清单,应力求代码简洁。第5章中同时罗列了用GEZEL、VHDL、Verilog、SystemC描述的设计实例,帮助读者进一步明晰简洁的重要性。
实现路径。GEZEL可自动转换为VHDL,因而可用标准HDL逻辑合成工具生成系统。
作者曾在软/硬件协同设计课程上把本书作为课程辅导材料。课程受众包括高年级本科生与低年级研究生。对于高年级本科生,这门课程将计算机工程的多个元素混合在一起,包括计算机体系结构、软件工程、硬件设计、调试以及测试。对于低年级研究生,这门课程可作为他们重温知识以及开始计算机科研生涯的起点。
在软/硬件协同设计课程中,GEZEL实验由FPGA后端(基于Xilinx/EDK或者Altera/Quartus)与FPGA快速原型套件实现。GEZEL建模作业与FPGA实现作业交叉进行。通过GEZEL后端套件进行实现,学生甚至不必进行VHDL编码。在课程最后有一个竞赛环节。学生需将一段指定的C程序通过软/硬件协同设计技术在FPGA上实现尽量快加速。
致谢
衷心感谢为本书的出版做出贡献的那些人。
家庭在我生命中是永恒的后盾。非常感谢家庭成员的耐心、鼓励和热情。他们的价值与真诚使我时刻受到鼓舞。
在与很多出色的工程师的交流中,我产生了撰写本书的想法。我的博士生导师鲁文大学的Ingrid Vebauwhede教授从一开始就支持GEZEL在研究和教学中的应用。她也是把本书用作教材的第一批教师之一。丹麦工业大学的Jan Madsan教授、加州大学欧文分校的Frank Vahid教授是我学习的教育模范。每次与他们的讨论都是对我的一种鼓励。
在本书第1版出版后,我也与教授协同设计的很多老师交换了意见。非常感谢Jim Plusquellic(新墨西哥大学)、Edwad Lee(加州大学伯克利分校)、Anand Raghunathan(普渡大
学)以及Axel Jantsch(瑞典皇家理工学院)。感谢斯普林格的Chuck Glaser,是他鼓励我撰写本书第2版,并且给予我很多有深刻见解的有用建议。感谢Grant Martin(Tensilica)为本书写了评论。
通过多年开发,现今GEZEL已经得到越来越多用户的认可。这些用户非常有耐心,尽管他们遇到过很多故障,可还是成功实现了协同设计项目。这些用户包括:Aske Brekling、Herwin Chan、Doris Ching、Zhimin Chen、Junfeng Fan、Xu Guo、Srikrishna Iyer、Miroslav Knezevic、Boris Koepf、Bocheng Lai、Yusuke Matsuoka、Kazuo Sakiyama、Eric Simpson、Oreste Villa、Shenling Yang、Jingyao Zhang等。我相信还有很多其他的人,如果漏掉了任何人,我表示抱歉。
最后,衷心感谢弗吉尼亚理工大学选择协同设计课程(ECE4530)的学生。每年,我都从他们身上学到很多。我对他们提出的问题和想法及归纳的结论感到钦佩。他们是工程师,但是我可以说,他们中的一些也是艺术家。
希望你会喜爱本书,并且衷心地希望本书在实际设计中能帮到你。我为本书中还存在的一些错误感到抱歉,当然我感谢你对本书的反馈。

Patrick R. Schaumont
美国  弗吉尼亚州  布莱克斯堡

上架指导

嵌入式

封底文字

“如果我教授与此主题相关的一门课程,我会选择本书作为教科书。如果是想要学习协同设计的学生,我会寻找一门至少用类似方法的课程。如果我是想从实际应用角度学习协同设计的工程师或工程管理人员,我会首先选择阅读本书。当我作为一名从业者开始学习协同设计时,像这样的一本书是最完美的介绍。”
——Grant Martin
本书介绍如何将自定义硬件集成到软件的嵌入式系统设计中,阐释了如何解决计算机工程中的关键问题:嵌入式系统设计者如何平衡设计的灵活性和高效性。本书内容覆盖了软/硬件协同设计的4个主题:基础概念、自定义体系结构的设计空间、软/硬件接口和应用实例,此外还介绍了设计环境,以便帮助读者开展软/硬件协同设计实验。同时,每章后面包括问答题和扩展阅读。
本书包括基于Xilinx和Altera现代FPGA环境的实验和示例,这使得本书的内容适用于很多使用这些工具的课程。
本书特点
·教授嵌入式系统设计,着重介绍自定义硬件模块与软件的集成。
·深刻阐释软/硬件协同设计领域的四个部分:基础概念、自定义体系结构的设计空间、软/硬件接口和应用实例。
·包含使用Xilinx和Altera FPGA的实验和示例。

作者简介

[美] 帕特里克 R. 肖蒙(Patrick R. Schaumont)著:帕特里克 R. 肖蒙(Patrick R. Schaumont) 拥有美国加州大学洛杉矶分校电子工程博士学位,目前为美国弗吉尼亚理工大学计算机工程副教授。1992~2001年,他是比利时校际微电子中心(IMEC)的研究员。2012~2014年,他担任弗吉尼亚理工大学关键应用的嵌入式系统中心主任。他的研究兴趣包括安全设计、实时嵌入式计算系统等。

译者简介

王奕 于恒 杨胜齐 哈亚军 译:暂无简介

图书目录

出版者的话
前言
第一部分 基本概念
第1章 何为硬件,何为软件  2
1.1 软/硬件协同设计简介  2
1.1.1 硬件  2
1.1.2 软件  3
1.1.3 硬件与软件  5
1.1.4 定义软/硬件协同设计  8
1.2 探求高能效  9
1.2.1 性能  9
1.2.2 能效  10
1.3 软/硬件协同设计的驱动因素  11
1.4 软/硬件协同设计的空间  12
1.4.1 平台的设计空间  12
1.4.2 应用的映射  13
1.5 软、硬件设计的二重性  14
1.6 抽象层次的建模  15
1.7 并发与并行  17
1.8 小结  19
1.9 扩展阅读  19
1.10 问答题  19
第2章 数据流建模与变换  22
2.1 数据流图介绍  22
2.1.1 令牌、参与者、队列  25
2.1.2 触发率、触发规则、调度  26
2.1.3 同步数据流图  26
2.1.4 SDF图的确定性  27
2.2 剖析SDF图  28
2.2.1 构建周期性容许顺序调度方案(PASS)  28
2.2.2 实例:构建一个PAM-4系统的PASS  30
2.3 控制流建模以及数据流建模的局限  31
2.3.1 以SDF语义仿真控制流  31
2.3.2 扩展SDF语义  32
2.4 添加时间与资源  32
2.4.1 实时性限制与输入/输出采样率  33
2.4.2 数据流的资源模型  33
2.4.3 对吞吐量的限制  34
2.5 设计转换  35
2.5.1 多速率扩展  36
2.5.2 重定时  37
2.5.3 流水线  37
2.5.4 铺展  38
2.6 数据流建模小结  39
2.7 扩展阅读  40
2.8 问答题  40
第3章 数据流的软件与硬件实现  43
3.1 数据流的软件实现  43
3.1.1 队列和参与者的软件实现  43
3.1.2 基于动态调度器的软件实现  47
3.1.3 实例:四点快速傅里叶变换的SDF表示  48
3.1.4 基于静态调度的顺序触发  52
3.2 数据流的硬件实现  54
3.2.1 单速率SDF图的硬件实现  54
3.2.2 流水线  57
3.3 数据流的软/硬件结合实现  58
3.4 小结  61
3.5 扩展阅读  61
3.6 问答题  62
第4章 数据流与控制流分析  63
4.1 C程序的数据边与控制边  63
4.2 数据边与控制边的实现  65
4.3 构建控制流图  66
4.4 构建数据流图  67
4.5 应用实例:C程序的硬件转换  70
4.5.1 数据通路的设计  70
4.5.2 控制电路的设计  71
4.6 单赋值程序  72
4.7 小结  75
4.8 扩展阅读  75
4.9 问答题  75
第二部分 自定义体系结构的设计空间
第5章 FSMD  80
5.1 基于时钟周期的位并行硬件  80
5.1.1 连线和寄存器  80
5.1.2 精度和符号  82
5.1.3 表达式的硬件映射  83
5.2 硬件模块  85
5.3 有限状态机  87
5.4 FSMD简介  89
5.4.1 建模  89
5.4.2 FSMD模型:两个堆叠的FSM  91
5.4.3 FSMD的不唯一性  92
5.4.4 实现  93
5.5 FSMD设计实例:一个中位数处理器  95
5.5.1 设计规范:计算中位数  95
5.5.2 映射中位数模型到硬件  96
5.5.3 数据输入的序列化  96
5.5.4 完全顺序化的计算  97
5.6 恰当的FSMD  101
5.7 FSMD的语言映射实例  102
5.7.1 GEZEL语言的GCD  102
5.7.2 Verilog语言的GCD  103
5.7.3 VHDL语言的GCD  104
5.7.4 SystemC语言的GCD  106
5.8 小结  108
5.9 扩展阅读  108
5.10 问答题  109
第6章 微程序的体系结构  113
6.1 有限状态机的局限性  113
6.1.1 状态激增  113
6.1.2 异常的处理  114
6.1.3 运行时的灵活性  114
6.2 微程序的控制  114
6.3 微指令的编码  115
6.3.1 转移域  115
6.3.2 命令域  116
6.4 微程序的数据通路  118
6.4.1 数据通路的体系结构  118
6.4.2 撰写微程序  119
6.5 实现微程序机  121
6.6 微程序的解释器  126
6.7 微程序的流水线  130
6.7.1 微指令寄存器  130
6.7.2 数据通路的条件码寄存器  131
6.7.3 流水线的下一个地址逻辑  131
6.8 微控制器中的微程序设计  132
6.8.1 系统结构  132
6.8.2 实例:Bresenham直线演算法  133
6.9 小结   137
6.10 扩展阅读  137
6.11 问答题   137
第7章 通用嵌入式核  140
7.1 处理器  140
7.1.1 典型微处理器的工具链  140
7.1.2 从C程序到汇编指令  141
7.2 RISC的流水线  144
7.2.1 控制冒险  146
7.2.2 数据冒险  147
7.2.3 结构冒险  148
7.3 程序的组织  149
7.3.1 数据类型  149
7.3.2 存储器层次结构中的变量  150
7.3.3 函数的调用  152
7.3.4 程序的布局  154
7.4 编译器工具  155
7.4.1 大小检查  156
7.4.2 段检查  157
7.4.3 汇编代码检查  158
7.5 低级程序分析  159
7.6 处理器的仿真    162
7.6.1 指令集的仿真  162
7.6.2 基于目标代码执行的分析  163
7.6.3 低抽象级仿真  167
7.7 小结  167
7.8 扩展阅读  168
7.9 问答题  168
第8章 SoC  174
8.1 SoC的概念  174
8.1.1 角色的分配  174
8.1.2 SoC与自定义硬件的接口  175
8.2 SoC体系结构的四个设计原则  176
8.2.1 异构分布式数据处理  176
8.2.2 异构分布式通信  177
8.2.3 异构分布式存储  178
8.2.4 分层控制  180
8.3 实例:便携式多媒体系统  181
8.4 SoC的GEZEL建模  183
8.4.1 一个带有StrongARM核的片上系统  183
8.4.2 带有8051核的乒乓缓存  186
8.4.3 AVR ATMega28上的UART  189
8.5 小结  192
8.6 扩展阅读  192
8.7 问答题  193
第三部分 软/硬件接口
第9章 软/硬件通信原理  196
9.1 连接软件和硬件  196
9.2 同步化方案  197
9.2.1 同步化概念  197
9.2.2 信号量  199
9.2.3 单向与双向交握  201
9.2.4 阻塞、非阻塞式传输  203
9.3 通信限制与计算限制  203
9.4 紧耦合与松耦合  205
9.5 小结  206
9.6 扩展阅读  206
9.7 问答题  206
第10章 片上总线  208
10.1 片上总线系统  208
10.1.1 几个现今的片上总线标准  208
10.1.2 共享总线上的元件  209
10.1.3 点到点总线上的元件  210
10.1.4 片上总线的物理实现  210
10.1.5 总线命名的约定  211
10.1.6 总线的时序图  211
10.1.7 通用总线的定义  212
10.2 总线传输  213
10.2.1 简单的读写传输  213
10.2.2 传输数据的大小和字节顺序  214
10.2.3 改进的总线传输  217
10.3 多个主设备的总线系统  219
10.3.1 总线的优先级  221
10.3.2 总线锁定  221
10.4 总线的拓扑结构  223
10.4.1 总线开关  224
10.4.2 片上网络  225
10.5 小结  226
10.6 扩展阅读  227
10.7 问答题  227
第11章 微处理器接口  231
11.1 内存映射接口  231
11.1.1 内存映射寄存器  231
11.1.2 信箱  233
11.1.3 FIFO队列  234
11.1.4 主从式交握  234
11.1.5 共享内存  235
11.1.6 内存映射接口的GEZEL建模  236
11.2 协处理器接口  239
11.2.1 快速单工链路  240
11.2.2 LEON-3浮点协处理器接口  242
11.3 自定义指令接口  243
11.3.1 ASIP设计流程  244
11.3.2 实例:端字节序处理器  245
11.3.3 实例:Nios-II自定义指令接口  249
11.3.4 寻找合适的ASIP指令  251
11.4 小结  254
11.5 扩展阅读  254
11.6 问答题  255
第12章 硬件接口  258
12.1 协处理器的硬件接口  258
12.1.1 协处理器硬件接口的功能  258
12.1.2 处理器接口的布局  259
12.2 数据设计  259
12.2.1 灵活的寻址机制  260
12.2.2 复用和掩码  260
12.3 控制设计  261
12.3.1 层次控制  262
12.3.2 内部流水线的控制  263
12.4 编程模型=控制设计+数据设计  266
12.4.1 地址映射  267
12.4.2 指令集  267
12.5 小结  268
12.6 扩展阅读  268
12.7 问答题  268
第四部分 应用实例
第13章 Trivium密码协处理器  274
13.1 Trivium流密码算法  274
13.1.1 流密码  274
13.1.2 Trivium  275
13.1.3 Trivium的硬件映射  276
13.1.4 Trivium的硬件测试平台  279
13.2 8位平台上的Trivium  280
13.2.1 8051协处理器的总体设计  280
13.2.2 8051协处理器的硬件平台  281
13.2.3 8051的软件驱动程序  284
13.3 32位平台上的Trivium  287
13.3.1 存储器映射接口的硬件平台  288
13.3.2 存储器映射接口的软件驱动程序  291
13.3.3 自定义指令接口的硬件平台  293
13.3.4 自定义指令接口的软件驱动程序  296
13.4 小结  297
13.5 扩展阅读  298
13.6 问答题  298
第14章  AES协处理器  299
14.1 AES加密和解密  299
14.2 AES加密协处理器的存储映射  300
14.2.1 硬件的接口操作  300
14.2.2 编程模型  300
14.2.3 软件驱动程序的设计  302
14.2.4 硬件接口设计  304
14.2.5 系统性能评估  306
14.3 带自定义指令的AES加/解密  307
14.3.1 AES T盒的参考实现  307
14.3.2 AES T盒的自定义指令设计  310
14.3.3 在GEZEL中AES T盒的自定义指令设计  312
14.3.4 AES T盒的软件集成和性能  315
14.4 小结  317
14.5 扩展阅读  317
14.6 问答题  317
第15章 CORDIC协处理器  318
15.1 坐标旋转数字计算机算法  318
15.1.1 算法  318
15.1.2 C语言的参考实现  319
15.2 CORDIC的硬件协处理器  321
15.2.1 CORDIC硬件核  321
15.2.2 快速单工链路协处理器的硬件接口  323
15.3 CORDIC协处理器的FPGA原型  326
15.4 大量旋转问题的处理  328
15.5 小结  332
15.6 扩展阅读  332
15.7 问答题  333
附录A GEZEL软件实践  334
参考文献  346

教学资源推荐
作者: (美)Steven J. Leon 著 马萨诸塞大学达特茅斯分校
作者: [美]克利福德·斯坦(Clifford Stein)[美]罗伯特·L.戴斯得尔(Robert L. Drysdale)[美]肯尼斯·博加特(Kenneth Bogart)著
参考读物推荐
作者: [美]马特·富勒(Matt Fuller),[奥]曼弗雷德·莫泽(Manfred Moser),[美]马丁·特拉韦尔索(Martin Traverso) 著
作者: (美)Osamu Takagiwa 等