编辑推荐

适读人群:《手把手教你设计CPU——RISC-V处理器篇》不仅适合CPU或芯片设计相关从业者阅读使用,也适合作为大中专院校相关师生学习RISC-V处理器设计(使用Verilog语言)和CPU设计的指导用书。

系统介绍RISC-V指令集架构。

结合实际RISC-V开源实例进行教学。

深入剖析RISC-V处理器的微架构以及代码实现。

使读者能够快速掌握并轻松使用RISC-V架构处理器。

通过学习实例蜂鸟E200的Verilog代码,您将能成为一名合格的数字IC设计工程师。通过学习《手把手教你设计CPU——RISC-V处理器篇》推荐的完整开源SoC平台,您也可以快速搭建FPGA原型平台,运行完整的软件实例。

内容简介

手把手教你设计CPU——RISC-V处理器篇》是一本介绍通用CPU设计的入门书,以通俗的语言系统介绍了CPU和RISC-V架构,力求为读者揭开CPU设计的神秘面纱,打开计算机体系结构的大门。

手把手教你设计CPU——RISC-V处理器篇》共分为四部分。第一部分是CPU与RISC-V的综述,帮助初学者对CPU和RISC-V快速地建立起认识。第二部分讲解如何使用Verilog设计CPU,使读者掌握处理器核的设计精髓。第三部分主要介绍蜂鸟E203配套的SoC和软件平台,使读者实现蜂鸟E203RISC-V处理器在FPGA原型平台上的运行。第四部分是附录,介绍了RISC-V指令集架构,辅以作者加入的背景知识解读和注解,以便于读者理解。

手把手教你设计CPU——RISC-V处理器篇》不仅适合CPU或芯片设计相关从业者阅读使用,也适合作为大中专院校相关师生学习RISC-V处理器设计(使用Verilog语言)和CPU设计的指导用书。

作者简介

胡振波,上海交通大学电子工程系本科、微电子学院硕士。拥有业界多年ASIC和CPU设计与验证经验,先后在Marvell任职ARM架构CPU设计高级工程师、在Synopsys任职研发经理、在比特大陆任职IC设计总监、在武汉聚芯微电子任职架构师,现致力于推动RISC-V架构在国内的传播和发展。

目录

第一部分CPU与RISC-V综述
第1章一文读懂CPU之三生三世2
1.1 眼看他起高楼,眼看他宴宾客,眼看他楼塌了——CPU众生相3
1.3 人生已是如此艰难,你又何必拆穿——CPU从业者的无奈17
1.4 无敌是多么寂寞——ARM统治着的世界18
1.4.1独乐乐与众乐乐——ARM公司的盈利模式18
1.4.2小个子有大力量——无处不在的Cortex-M系列21
1.4.3移动王者——Cortex-A系列在手持设备领域的巨大成功23
1.4.4进击的巨人——ARM进军PC与服务器领域的雄心25
1.5 东边日出西边雨,道是无晴却有晴——RISC-V登场25
1.6 原来你是这样的“薯片”——ARM的免费计划28
1.7 旧时王谢堂前燕,飞入寻常百姓家——你也可以设计自己的处理器28

第2章大道至简——RISC-V架构之魂29
2.1 简单就是美——RISC-V架构的设计哲学30
2.2 RISC-V指令集架构简介33
2.3 RISC-V软件工具链42
2.4 RISC-V和其他开放架构有何不同44

第3章乱花渐欲迷人眼——盘点RISC-V商业版本与开源版本46
3.1 各商业版本与开源版本综述47
3.2 总结53
第4章开源RISC-V——蜂鸟E200系列超低功耗Core与SoC54
4.1 与众不同的蜂鸟E200处理器55
4.2 蜂鸟E200简介——蜂鸟虽小,五脏俱全56
4.3 蜂鸟E200型号系列57
4.4 蜂鸟E200性能指标58
4.5 蜂鸟E200配套SoC59
4.6 蜂鸟E200配置选项60
第二部分手把手教你使用Verilog设计CPU
第5章先见森林,后观树木——蜂鸟E200设计总览和顶层介绍65
5.1 处理器硬件设计概述66
5.2 蜂鸟E200处理器核设计哲学67
5.3 蜂鸟E200处理器核RTL代码风格介绍68
5.4 蜂鸟E200模块层次划分72
5.5 蜂鸟E200处理器核源代码73
5.6 蜂鸟E200处理器核配置选项73
5.7 蜂鸟E200处理器核支持的RISC-V指令子集74
5.8 蜂鸟E200处理器流水线结构74
5.9 蜂鸟E200处理器核顶层接口介绍74
5.10 总结77

第6章流水线不是流水账——蜂鸟E200流水线介绍78
6.1 处理器流水线概述79
6.2 处理器流水线中的乱序83
6.3 处理器流水线中的反压84
6.4 处理器流水线中的冲突84
6.5 蜂鸟E200处理器的流水线86
6.6 总结87

第7章万事开头难吗——一切从取指令开始88
7.1 取指概述89
7.2 RISC-V架构特点对于取指的简化97
7.3 蜂鸟E200处理器的取指实现101
7.4 总结116

第8章一鼓作气,执行力是关键——执行117
8.1 执行概述118
8.2 RISC-V架构特点对于执行的简化121
8.3 蜂鸟E200处理器的执行实现123

第9章善始者实繁,克终者盖寡——交付161
9.1 处理器交付、取消、冲刷162
9.2 RISC-V架构特点对于交付的简化164
9.3 蜂鸟E200处理器交付硬件实现164

第10章让子弹飞一会儿——写回170
10.1 处理器的写回171
10.2 蜂鸟E200处理器的写回硬件实现171

第11章哈弗还是比亚迪——存储器架构178
11.1 存储器架构概述179
11.2 RISC-V架构特点对于存储器访问指令的简化183
11.3 RISC-V架构的存储器相关指令184
11.4 蜂鸟E200处理器存储器子系统硬件实现185

第12章黑盒子的窗口——总线接口单元BIU203

12.1 片上总线协议概述204
12.2 自定义总线协议ICB206
12.3 ICB总线的硬件实现210
12.4 蜂鸟E200处理器核BIU212
12.5 蜂鸟E200处理器SoC总线214
12.6 总结216

第13章不得不说的故事——中断和异常217

13.1 中断和异常概述218
13.2 RISC-V架构异常处理机制221
13.3 RISC-V架构中断定义226
13.4 RISC-V架构异常相关CSR寄存器232
13.5 蜂鸟E200异常处理的硬件实现232

第14章最不起眼的,其实是最难的——调试机制246

14.1 调试机制概述247
14.2 RISC-V架构的调试机制249
14.3 蜂鸟E200调试机制的硬件实现251

第15章动如脱兔,静若处子——低功耗的诀窍260

15.1 处理器低功耗技术概述261
15.2 RISC-V架构的低功耗机制265
15.3 蜂鸟E200低功耗机制的硬件实现265
15.4 总结275

第16章工欲善其事,必先利其器——RISC-V可扩展协处理器276

16.1 专用领域架构DSA277
16.2 RISC-V架构的可扩展性278
16.3 蜂鸟E200的协处理器接口EAI279
16.4 蜂鸟E200的协处理器参考示例286

第三部分使用Verilog进行仿真和在FPGASoC原型上运行软件

第17章冒个烟先——运行Verilog仿真测试292

17.1 E200开源项目的代码层次结构293
17.2 E200开源项目的测试用例294
17.3 E200开源项目的测试平台(TestBench)298
17.4 在VerilogTestBench中运行测试用例299

第18章套上壳子上路——实现SoC和FPGA原型302

18.1 FreedomE310SoC简介303
18.2 HBird-E200-SoC简介304
18.3 HBird-E200-SoCFPGA原型平台311
18.4 蜂鸟E200专用FPGA开发板320

第19章画龙点睛——运行和调试软件示例321

19.1 Freedom-E-SDK平台简介322
19.2 SIRV-E-SDK平台简介323
19.3 使用SIRV-E-SDK运行示例程序325
19.4 使用GDB和OpenOCD调试示例程序328
19.5 Windows图形化IDE开发工具331

第20章是骡子是马?拉出来遛遛——运行跑分程序332

20.1 跑分程序简介333
20.2 Dhrystone简介333
20.3 运行DhrystoneBenchmark335
20.4 CoreMark简介337
20.5 运行CoreMarkBenchmark338
20.6 总结与比较340

附录部分RISC-V架构详述附录ARISC-V架构指令集介绍342

附录BRISC-V架构CSR寄存器介绍374

附录CRISC-V架构的PLIC介绍384

附录D存储器模型背景介绍392

附录E存储器原子操作指令背景介绍397

附录FRISC-V指令编码列表400

附录GRISC-V伪指令列表404


其他推荐