描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121401411丛书名: RISC-V芯片系列
本书将线下的FPGA开发板与线上的云平台结合,完成基于开源RISC-V处理器的SiFive Freedom E300片上系统,以及E21处理器配合云平台设计方法的相关实验教程。并用Chisel编程的方式与FPGA硬件,完成国产RT-Thread操作系统验证的移植。
本书将线下的FPGA开发板与线上的云平台结合,完成基于开源RISC-V处理器的SiFive Freedom E300片上系统,以及E21处理器配合云平台设计方法的相关实验教程。并用Chisel编程的方式与FPGA硬件,完成国产RT-Thread操作系统验证的移植。全书包含三大部分内容:首先讲述了基于实验所用Digilent Nexys板级硬件设计平台和Vivado开发工具。其次是介绍Verilog HDL、Chisel HCL和一种由国内自主开发的Coffee-HDL这三种硬件描述语言。*后是三种实验教程的设计与实现方法,包含开源的SiFive Freedom E300片上系统的实验;以英伟达开源的深度学习硬件架构NVDLA为例,介绍如何在Freedom E300平台上集成Verilog IP的方法及介绍SiFive E21处理器IP的使用方式与国内自主开发云端SoC开发平台的实验;移植国内自主开发RT-Thread实时多任务操作系统的原理与应用到SiFive Freedom E300片上系统的实验。
第1章 RISC-V的历史和机遇 1
1.1 RISC-V发明团队与历史 1
1.1.1 商业公司的指令集架构载浮载沉 4
1.1.2 RISC-V指令集架构有什么不同 6
1.1.3 RISC-V发展史及其标志性事件 7
1.2 RISC-V基金会成长的历史 8
1.2.1 RISC-V基金会的成员介绍 9
1.2.2 RISC-V基金会推动20个重点领域的技术 11
1.2.3 RISC-V基金会标准制定过程及工作群组机制 12
1.2.4 RISC-V国际协会的诞生 13
1.3 RISC-V的生态系统 13
1.3.1 RISC-V的开发板和生态系统 14
1.3.2 部分RISC-V社区生态的支持厂商 18
1.3.3 芯片设计业界的RISC-V产品进展 22
1.4 SiFive研发团队技术沿革 24
1.4.1 Rocket Chip SoC生成器 24
1.4.2 使用Chisel语言编写Rocket Chip生成器 26
1.4.3 Rocket标量处理器 27
1.4.4 SiFive强力推动RISC-V生态发展 28
第2章 RISC-V指令集体系架构介绍 32
2.1 引言 32
2.2 RISC-V架构特性 32
2.2.1 简洁性 33
2.2.2 模块化 33
2.3 指令格式 35
2.3.1 指令长度编码 35
2.3.2 指令格式 36
2.4 寄存器列表 37
2.4.1 通用寄存器 37
2.4.2 控制和状态寄存器 38
2.4.3 程序计数器 39
2.5 地址空间与寻址模式 39
2.5.1 地址空间 39
2.5.2 小端格式 40
2.5.3 寻址模式 40
2.6 内存模型 40
2.7 特权模式 41
2.8 中断和异常 42
2.8.1 中断和异常概述 42
2.8.2 RISC-V机器模式下的中断架构 42
2.8.3 机器模式下中断和异常的处理过程 43
2.9 调试规范 44
2.10 RISC-V未来的扩展子集 45
2.10.1 B标准扩展:位操作 45
2.10.2 H特权态架构扩展:支持管理程序(Hypervisor) 45
2.10.3 J标准扩展:动态翻译语言 45
2.10.4 L标准扩展:十进制浮点 46
2.10.5 N标准扩展:用户态中断 46
2.10.6 P标准扩展:封装的单指令多数据(Packed-SIMD)指令 46
2.10.7 Q标准扩展:四精度浮点 46
2.10.8 V标准扩展:基本矢量扩展 46
2.11 RISC-V指令列表 46
2.11.1 I指令子集 47
2.11.2 M指令子集 52
2.11.3 A指令子集 53
2.11.4 F指令子集 55
2.11.5 D指令子集 56
2.11.6 C指令子集 57
第3章 现场可编程逻辑门阵列(FPGA)设计流程 60
3.1 Xilinx FPGA概述与设计流程 60
3.1.1 Xilinx FPGA的基本结构 61
3.1.2 Diligent Nexys A7 FPGA开发平台介绍 63
3.1.3 FPGA的设计流程 64
3.2 Xilinx Vivado集成环境安装与开发流程 67
3.2.1 Vivado集成环境的安装 68
3.2.2 Vivado集成环境的开发流程 76
第4章 SiFive Freedom E300 SoC的原理与实验 92
4.1 Verilog HDL语言简介 92
4.1.1 数据类型 93
4.1.2 数据表示 95
4.1.3 运算符及表达式 96
4.1.4 Verilog HDL常用语法 101
4.1.5 系统函数和任务 106
4.1.6 Verilog HDL语言规范 111
4.1.7 用于Verilog HDL设计的Xilinx 7系列 FPGA原语使用方法 118
4.1.8 小结 128
4.2 Chisel HCL语言简介 129
4.2.1 环境安装 130
4.2.2 Scala编程语言快训 132
4.2.3 Chisel硬件构造语言快训 138
4.2.4 小结 162
4.3 SiFive Freedom E300平台架构介绍 162
4.3.1 E31 RISC-V内核概述 164
4.3.2 中断架构 170
4.3.3 内核本地中断器(CLINT) 175
4.3.4 调试支持 176
4.3.5 SiFive TileLink总线介绍 181
4.4 SiFive Freedom E300在Nexys A7上的开发流程 204
4.4.1 SiFive Freedom SoC生成器简介 204
4.4.2 Verilog IP集成方法与开发流程 210
4.4.3 Freedom E300在Nexys A7上的开发流程 215
第5章 SiFive E21处理器和SoC设计云平台的原理与实验 222
5.1 SiFive E21处理器 222
5.1.1 缩略语和术语列表 223
5.1.2 E21 RISC-V内核概述 224
5.1.3 内存映射 229
5.1.4 中断架构 229
5.1.5 内核本地中断器 236
5.1.6 调试支持 240
5.1.7 使用E21内核评估套件 245
5.2 Coffee-HDL语言简介 258
5.2.1 开发Coffee-HDL语言的动机 258
5.2.2 文件和模块 259
5.2.3 语言要素 261
5.2.4 数据类型 262
5.2.5 操作符 263
5.2.6 位选择和部分选择 264
5.2.7 表达式 264
5.2.8 语句 265
5.2.9 函数 267
5.2.10 LRU算法模块设计示例 267
5.2.11 E21_SOC_FPGA集成模块设计示例 269
5.3 ezchip? SoC在线设计云平台 271
5.3.1 IC Studio主界面布局 272
5.3.2 IC Studio的使用 276
5.3.3 ezchip?可配置制模块 277
5.3.4 生成代码 279
5.3.5 基于SiFive E21 处理器的SoC设计实验 280
5.3.6 基于SiFive E21 处理器的FPGA验证实验 285
第6章 RT-Thread实时多任务操作系统的原理与应用 298
6.1 SiFive Freedom Studio集成开发调试环境安装与介绍 298
6.1.1 Freedom Studio简介与安装 298
6.1.2 启动Freedom Studio 300
6.1.3 创建sifive-welcome项目 301
6.1.4 配置sifive-welcome项目 303
6.1.5 编译sifive-welcome项目 305
6.1.6 运行sifive-welcome项目 306
6.1.7 调试程序 312
6.2 移植RT-Thread实时多任务操作系统的原理 313
6.2.1 嵌入式操作系统概述 313
6.2.2 RT-Thread实时多任务操作系统介绍 315
6.2.3 RT-Thread的底层结构与移植 317
6.3 RT-Tread的UART驱动结构分析、移植及应用 322
6.3.1 RT-Tread外设驱动 322
6.3.2 UART驱动结构分析 323
6.3.3 UART的移植与应用 330
6.4 完成RT-Thread实时操作系统的编译与运行 330
6.4.1 工具准备 331
6.4.2 修改路径与代码 331
6.4.3 文件编译 333
6.4.4 文件烧录 333
附录A 虚拟机与Ubuntu Linux操作系统的安装 335
A.1 虚拟机的安装 335
A.1.1 虚拟机简介 335
A.1.2 VMware安装(以VMware15版本为例) 336
A.2 Ubuntu Linux操作系统安装 337
A.2.1 Ubuntu简介 337
A.2.2 Ubuntu虚拟机的下载和安装 337
A.2.3 虚拟机信息 339
附录B 基于Nexys A7贪吃蛇游戏的设计与实现 341
B.1 硬件设备概述 341
B.2 设计要求 342
B.3 硬件设计 342
B.4 任务设计 344
B.4.1 程序结构 344
B.4.2 任务的数据结构设计 345
B.4.3 全局变量的使用 345
B.4.4 状态机的使用 345
B.5 程序设计详解 346
B.5.1 top模块的使用 346
B.5.2 display模块的使用 346
B.5.3 snake模块的使用 349
B.5.4 fsm模块的使用 351
B.5.5 turn模块的使用 352
B.5.6 apple模块的使用 353
B.5.7 score模块的使用 354
B.6 测试数据 355
参考文献
晶体管和集成电路是人类科技史上上最伟大的发明,集成电路及嵌入集成电路的软件,支撑着全球每年数以万亿计电子信息产品,支撑着数以十万亿计的电信运营服务,支撑着数以百万亿计的电子信息服务,更支撑着当今的信息社会。以处于电子信息产业链最上游集成电路为例,全球每年约有4500亿美元的产值。集成电路已经成为产业的基础、国家安全的核心,知识产权的有效载体。
中国是世界电子产品生产大国,在生产了全球90%的电脑、移动电话,80%的冰箱彩电等家用电器的同时,中国也消耗了全球大约60%的集成电路产品。在新的国际环境下,中国对集成电路产业的需求面临着前所未有的压力。众所周知,人才的规模和质量决定了集成电路产业的规模和质量。在发展集成电路领域,我国追赶国际先进的过程中面临各种挑战,有过辉煌也有过挫折,但仍坚定不移地走到了今天。人才短缺问题始终是其中一个突出问题,这体现在集成电路行业的各个领域,包括最近由风靡一时的RISC-V所引发的嵌入式CPU设计领域。
诞生于加州大学伯克利分校的RISC-V,是一种基于精简指令集(RISC)原则的开源指令集架构(ISA),其开源的风格让工业界低成本使用该指令集架构成为可能。RISC-V正在掀起一场嵌入式芯片系统设计革命,与其他处理器架构相比,RISC-V最大的不同在于它在短小精悍的同时还是一个模块化的架构。模块化的RISC-V架构使得用户能够自主选择和设计不同组合,以满足各种各样的应用场景。这种指令集兼具精简和灵活两大特点,其丰富的拓展性和可定制性得到了业界广泛的认可。同时由于RISC-V开源的特点,还使其更能抵御国际政治的冲击,为当今世界错综复杂的特殊时期的指令集架构的发展开辟了一条备选之路。
国内RISC-V发展同样面临着人才短缺问题。人才的培养需要大家一起努力。赛昉科技公司的陈宏铭博士和北京大学程玉华教授编著了《RISC-V处理器与片上系统设计——基于FPGA与云平台的实验教程》,它不但凝聚了作者在集成电路领域多年的工作和教育经验,更是为行业和技术发展做出贡献,也是对集成电路人才培养的贡献。基于此书开展RISC-V相关教学,可以帮助更多年轻人走上迅速处理器设计之路,助力建成健康的RISC-V行业生态。
书籍是知识的载体,是人类最好的朋友与前进的阶梯,黑白相衬的笔墨间,凝聚着历史长河中一个个精彩瞬间,蕴含着前人呕心沥血的技术哲理与思想。一本优秀的书籍,仿若沙漠中的一眼清泉,直探思绪深处,滋润干涸的求知之心,《RISC-V处理器与片上系统设计——基于FPGA与云平台的实验教程》正是这样一本承载着专业知识的好书。作者利用深入浅出的方式对RISC-V的前世今生和基于内核的软硬件开发进行了系统且全面的讲解,体现了作者的专业技能和将专业知识进行通俗化表述的能力,非常适合在校师生和年轻工程师进行系统级设计的学习。与此同时,作者还将自身的经验体会和设计思想融入其中,这对有志于走上集成电路行业的年轻人起到很好的启蒙和引领作用。此外,书中还包含了作者所在单位的原创性案例,让读者有机会“触摸”前沿技术。目前在国内用中文写作的专门介绍RISC-V技术的书籍较少,我相信这本书的出版一定会受到广大学生、科研工作者与MCU创客爱好者等的热情欢迎。同时我也希望本书能够进一步推动中国包括RISC-V在内的CPU指令集体系结构的加速发展,为中国集成电路产业培育更多有志于造“芯”的青年才俊,促进我国集成电路产业和科学技术的发展。
王志华2020年夏于北京清华园
评论
还没有评论。