本书的写作背景与意义 在过去的二十年,国内计算机与微电子专业在各个领域为我国培养了大量嵌入式片上系统的集成电路设计人才。但这些人才主要集中在ARM与MIPS处理器领域。伴随着中美贸易战和ARM停止授权华为事件所产生的巨大业界震动,因为ARM)rL乎长期垄断中国处理器lP市场,所以ARM对中国本土芯片公司的影响巨大,任何一个本土芯片公司都难以承受ARM断供带来的冲击。对于有望给中国处理器带来自主可控的RISC-V开放指令集架构,获得了芯片设计业界更多的关注。RISC.V的发展势不可挡,有人担心碎片化和专利问题,SiFive和赛昉科技的首席执行官认为这些不重要,他们认为目前面临的重要的挑战是人才紧缺。在RISC-V系统设计方面括处理器、作系统和编译软件等方面,确实出现人才紧缺的情况,导致我国在各类芯片设计中所使用的核心器件、高端芯片、基础软件长期依口,受制于人,不利于实施“自主可控”国家信息化发展战略与国家,也阻碍了我国芯片设计领域自主创新的动力。为了改善这一个问题,目前的电子信息教育需要对学行软硬件的系统能力培养。让学生或芯片设计爱好者能够自己动手设能齐备的片上系统,内置可支持实时作系统的RISC-V处理器”,有助于培养学生的系统能力,降低学生对从事计算机系统设计工作的陌生感,学生与该工作的距离。 本书以笔者在武汉大学电子信息学院卓越工程师班的实验课内容为基础,以培养学生系统能力为目标,基于SiFive公司所提供的开源RISC-V 片上系统及E2pan>处理器内核的评估套件,配合Digilent公司的Nexysp;FPGA开台,利用软/硬件协同设计的方法,结年流行的台设计,以培养工程师的教学方法解决实验的问题,编写了基于“如何使用RISC-V 处理器”的系列书籍。这套书籍专注于使用主流RISC.V处理器的FPGA设计与实时作系统的移植,以及使用RIS(:.V处理器内核结合总线和常见外设的微控制器开发各种与微控制器或物联网相关的常见应用。让学生在一个完整的RISEl_V So(台上能解决各种有挑战性的工程问题,培养学生基丁R1ISC-V处理器的系统能力。 本书的内容安排 本书针对基于RISC:一V处理器的片上系统实践环节涉及的实台与实验内行了优化,以更好地适应片上系统能力培养的需求。具体如下。 第pan>章RISC-V的历史和机遇。本章介绍了RISC-V 发明团队与历史,让读者了解发明团队的初心与将指令集开源的情怀。分析各种商业公司的指令集架构,分析如何才能经营一个好的生态让指令集有更好的生命力,是发明团队在开发出全新的RISC-V 指令集后最为关心的问题。这里也说明了RISC-V 与其他指令集的不同点或者优点在哪里,因为这些优点,RISC-V慢慢发展自成一个体系,在时间轴上有哪些标志性事件。为了让RIS(:一V能茁壮成长,发明团队将RISC-V 指令集捐赠给非营利RISC-V 基金会并由其维护,在中国地区也有许多基金会的成员。基金会推动20个领域的技术,基金会标准制定过程及工作群组的讨论机制,以及坚持开放自由、坚持为全服务理念的RIS(:-V国际协会期诞生了。RISC-V 的生态系统关系处理器架构的影响力,FE3lO作为第一款开源的商用RISC- V SOC SiFive 公司将FE31 RTL原始代码贡献给开源社区,大幅降低了研发定制原型芯片的门槛。除了SiFIve公司,还有许多知名软硬件供应商的加入让生态更加丰富。在此基础上,业界的RISC-V 芯片产展迅速含通用微控制器、物联网芯片、家用电器控制器、网络通信芯片和高性能服务器芯片等。谈RISC-V技术绕不开的是需要了解SiFive研发团队技术沿革。什么是Rocketchip So(:生成器?它能生成什么?为什么要用chisel语言写SoC 生成器?什么是chisel语言?这些问题都是我们要关注的。SiFive研发团队所成立的SiFive公司推动RISC-V 展,来开启RISC-V指令集架构的芯时代。 第2章RISC-V指令集体系架构介绍。本章简要介绍了RISC-V 指令集体系架构,针对RISC-V 架构特性、指令格式、寄存器列表、地址空间与寻址模式、中断和异常、调试规范、RISC-V 未来的扩展子集及RISC一V指令列表等方方面面做了说明。 第3章现场可编程逻辑门阵列(FPGA)设计流程。本章概述Xilinx FPGA与设计流程,介绍Xilinx FPGA的基本结构与Diligent Nexysp;A7 FPGA开台。FPGA的设计流含设计输能仿真、综合优化、综合后仿真、实现与布局、布线与布线后时序仿真等步骤,跟ASIC 设计流程很类似。Xilinx FPGA配套的Ⅵvado集成环境安装与开发流程里没有一步介绍Vivado自带IP的使用方式,毕竟在本书用不到,但在片上系统的搭建中却很实用。读者可以在其他Xilinx FPGA相关书籍里找到使用的方式。 第4章SiFive FreedomE300 SoC 的原理与实验。本章先简单介绍了VerilogHDL 语言,因为任何数字逻辑电路设计的实验都避不开Verilog HDL_语言,这也行后续FPGA实验设计所必须掌握的基础知识。我们增加对Xilinx公司原语的使用方法的介绍,让读者能使用类似。Xilinx公司为用户提供的库函数。虽然Verilog HDL Chisel语言有许多优于传统、Verilog HDL 的地方,最终实验的SiFiveFreedom E300chisel语言所开发的。因此,笔者介绍SiFive Freedom E300E3pan>内核的基本组成,以英伟达开源的深度学架构NVDLA为例,介绍如何在SiFive Freedom SoC生成台集成Verilog IP的方法,最终完成Freedom E300在NexysA7开发板上的硬件设计流程。 第5章SiFive E2l处理器和SoC 设计台的原理与实验。本章首先介绍主心骨——SiFive E2l处理器,除了使用处理器本身需要了解的与中断架构等知识,还介绍了如何使用E2pan>内核评估套件,是处理器接口的信号特性,以及在配套的仿真测台与任意测台上运行的方法。Verilog HDI。语言最初是于。1983年由GatewayDesign Automation公司为其模拟器产品开发的硬件建模语言。笔者在多年的使用过程中感到,Verilog语言在描述复杂数字电路方面存在一些缺点,因此有了开发(20ffee.HDL,语言的想法,也利用一些简单的例子证明其有一定的优越性。如果读者下载了SiFive公司的E2pan>处理器开发套件,如何在台完成一个SoC 的基本设计呢?我们引入了ezchip@SoC在线设计台,本书读者可以申请,最终完成本章的SoC 设计及FPGA验证实验。 第6章RT-1laread实时多任务作系统的原理与应用。本章让读者从硬件切换到软件,介绍了SiFive Freedom Studio的Windows整合开发调试环境,对Nexysp;A7开发行软件开发和调试。接着介绍移植Rpan>.-Thread实时多任务作系统的原理与应用,概述嵌入式作系统的基本概念。以我们自主开发RT_Thread实时多任务作系统为例,介绍底层结构与移植方法,UART 外设驱动结构分析、移植与应用。最终完成RT-Thread实时作系统的编译与FPGA 附录A虚拟机与Ubuntu Linux作系统的安装。在实验的过程,有些软件需要在IYountu Linux作系统上安装与运行,所以我们利用附录A简单介绍安装方法,方便读行后续实验步骤。 附录B基于Nexysp;A7的贪吃蛇游戏的设计与实现。这是我们为了提高读者学而增加的内容,让读者利用一个常见且有趣的贪吃蛇游戏工程项目,快乐学span>FPGA硬件设计。致谢 2020年是我在武汉大学电子信息学院任教授的第四年。之前三年开设的实验课是利用网上的开源处理器让学生熟悉芯片设计的前端设计流程的,每年都要换处理器,从8位到32位,就是为了让每年的实验内容不同。这么做备课压力还是比较大的,是每年都需要跟新助教一起就新实验“踩雷”,还好关关难过关关过。2019年2月,我选择了一款比较好入门的RISC-V 处理器用于实验课,整个过程还算顺利。我在武汉大学教学的照片还被“2019 RISC-V Workshop Taiwan”的报告刊登,这对一个热爱教学的人还是挺开心的。2019年4月,我“蹭”了上海大学微电子中心严教授几堂课,在上海赛昉科技市场部总监陈卫荣和迮启明经理的协助下提供研究生相应的开发板和材料。我先自学再备课,完成了基于FPGA的简单RISC.V处理器实验课。在这过程中让我学用SiFive公司处理器。而上海大学的研究生独立完成有创意的实验成果也令我印象深刻。 2020年,武汉大学的课程提前在pan>月中的寒假展开,我一如既往地为实验课备课,学生们也期待上完我的课就可以开心地回家过年。本书的内容是按武汉大学的实验课内容扩展而成的,里面有几个特点:一个是涉猎了chise!语言跟Rocket Chip So(:生成器,这个在国内还是比较陌生的,我感觉比较像在叶问之前的咏春授拳方法,与一般拳种不同的是它需要通过师徒问长期过行练也比较长。所以在这一部分请上海赛昉科技研发部门的柳童博士与刘玖阳博士来丰富课程内容。但是即便如此还是难以窥其堂奥,读者如果想深入研究还是需要跟我一步的联系交流。另一个是台,在新型冠状病毒肺炎疫情爆发的今日凸显它的重要性。笔者原计划2020年7月在北京大学的课程因为疫情影响改为线上形式,最后没有更改,因为台上的实验课还是能够让学生体验SoC设计的重要环节。 本门课程教学的难点在于如何让学生感兴趣,我在“第四届全国大学生集成电路创新创业大赛”担任RISC-V 挑战杯赛的出题人与评委时感受深刻,我们的赛题是利用带有RISC.V微控制器的开发版完成“红外循迹小车”与“超声波避障小车”两个子项目,因为开发板跟小车车体的管脚不一致,因此需要飞线。但是即便面对重重的难关,同学们还是逐一克服。看到同学们的小车不但能动起来,还能在小赛道上绕圈圈,笔者跟同学们共同度过了一段辛苦且快乐的实验之旅。所以我在附录里加上“基于FPGA贪吃蛇游戏的设计与实现”,让读者能利用手中的FPGA开发板做一些有趣的实验,达到寓教于乐的目的。 最后,除了上述上海赛昉科技的同仁,我要感谢上海大学微电子中心陆斌,武汉大学电信院卓工班黄韵霓、陈俊鹏、王晨飞、何杰伦、张笑、王心蕊、张妍、李琪、谈啸,以及上海赛防科技资深研发总监伍骏、上海赛肪科技高级现场应用经理、上海逸集晟网络科技的金葆晖等人,感谢他们让书的内容更加丰富。最重要的是感谢本书的共同作者,我的博导程玉华院长,感谢他在百忙之中对本书的参与、建议与指导。我们像一群蚂蚁团结合作完成搬家的任务一样,没有你们的付出,就没有这本书的问世。 在本书撰写过程中,我广泛参考许多国内外相关经典教材与文献资料,在此对所参考资料的作者表示诚挚的感谢。本书在编写过程中还引用了互联网上资讯及报道,在此向原作者和刊发机构表示真挚的谢意,并对不能一一注明参考文献的作者深表歉意。对于采用到但没有标明出处或找不到出处的共享资料,以及对有行加工、修改后纳入本书的资料,笔者在此郑重声明,本书内容仅用于教学,其著作权属于原作者,并向他们表示致敬和感谢。在本书的编写过程中,一直得到电子工业出版社刘志红老师的关心和大力支持,电子工业出版社的工作人员也付出了辛勤的劳动。需要感谢的人太多了,在此表示感谢。 结束语 我们都知道万事起头难,我先将能整理出来的实验介绍给读者,随着后续担任其他大学竞赛的出题与评委工作,还会再补充新的RISC-v 实验项目到书里,让读者能从RISC-vV的技术里学到更多有用的知识,不仅是学校里的实验课能用得到,在芯片设计的职场上也能派上用场,让我们共同为中国的集成电路产业的发展做出贡献。 本书广泛参考国内外相关经典教材与文献,尽力对内容的组织与说明做到准确无误。实验过程力求循序,详尽描述设计过程与可能出错的地方。虽笔者己尽力,但RISC:.V处理器与片上系统设计十分复杂,很多是只能靠自己实践才能获得的知识。受限于个人的能力,即使反复修改,笔误在所难免,定存在挂一漏万之处。敬请广大读者批评指教,并可将信息反馈给笔者邮箱3052010036@qq.com 陈宏铭 2020年4月
|