华信教育资源网
从CPU到SoC的设计与实现 :基于高云云源软件和FPGA硬件平台
丛   书   名: 电子系统EDA新技术丛书
作   译   者:何宾 出 版 日 期:2024-03-01
出   版   社:电子工业出版社 维   护   人:蒋燕 
书   代   号:TN462950 I S B N:9787121462955

图书简介:

本书首先对Verilog HDL的高阶语法知识进行了详细介绍,然后基于高云半导体和西门子的云源软件和Modelsim软件对加法器、减法器、乘法器、除法器和浮点运算器的设计进行了综合和仿真,最后以全球经典的无内部互锁流水级微处理器(MIPS)指令集架构(ISA)为基础,详细介绍了单周期MIPS系统的设计、多周期MIPS系统的设计,以及流水线MIPS系统的设计,并使用高云半导体的云源软件和GAO在线逻辑分析工具对设计进行综合和验证,以验证设计的正确性。 本书共8章,主要内容包括Verilog HDL规范进阶、加法器和减法器的设计和验证、乘法器和除法器的设计和验证、浮点运算器的设计和验证、Codescape的下载安装和使用指南、单周期MIPS系统的设计和验证、多周期MIPS系统的设计和验证,以及流水线MIPS系统的设计和验证等内容。
您的专属联系人更多
关注 评论(2) 分享
配套资源 图书内容 样章/电子教材 图书评价
  • 配 套 资 源

    本书资源

    会员上传本书资源

  • 图 书 内 容

    内容简介

    本书首先对Verilog HDL的高阶语法知识进行了详细介绍,然后基于高云半导体和西门子的云源软件和Modelsim软件对加法器、减法器、乘法器、除法器和浮点运算器的设计进行了综合和仿真,最后以全球经典的无内部互锁流水级微处理器(MIPS)指令集架构(ISA)为基础,详细介绍了单周期MIPS系统的设计、多周期MIPS系统的设计,以及流水线MIPS系统的设计,并使用高云半导体的云源软件和GAO在线逻辑分析工具对设计进行综合和验证,以验证设计的正确性。 本书共8章,主要内容包括Verilog HDL规范进阶、加法器和减法器的设计和验证、乘法器和除法器的设计和验证、浮点运算器的设计和验证、Codescape的下载安装和使用指南、单周期MIPS系统的设计和验证、多周期MIPS系统的设计和验证,以及流水线MIPS系统的设计和验证等内容。

    图书详情

    ISBN:9787121462955
    开 本:16(185*260)
    页 数:336
    字 数:605

    本书目录

    目    录
    第1章  Verilog HDL规范进阶	1
    1.1  Verilog HDL用户自定义原语	1
    1.1.1  UDP定义	1
    1.1.2  组合电路UDP	3
    1.1.3  电平敏感的时序UDP	4
    1.1.4  边沿敏感的时序UDP	4
    1.1.5  时序UDP的初始化	5
    1.1.6  UDP实例	6
    1.1.7  边沿和电平触发的混合行为	6
    1.2  Verilog HDL指定块	7
    1.2.1  模块路径声明	8
    1.2.2  为路径分配延迟	15
    1.2.3  混合模块路径延迟和分布式延迟	18
    1.2.4  驱动布逻辑	18
    1.2.5  脉冲过滤行为的详细控制	19
    1.3  Verilog HDL时序检查	24
    1.3.1  时序检查概述	24
    1.3.2  使用稳定窗口的检查时序	25
    1.3.3  时钟和控制信号的时序检查	30
    1.3.4  边沿控制标识符	35
    1.3.5  提示符:用户定义对时序冲突的响应	35
    1.3.6  使能带有条件的时序检查	40
    1.3.7  时序检查中的矢量信号	40
    1.3.8  负时序检查	41
    1.4  Verilog HDL SDF逆向注解	42
    1.4.1  SDF注解器	42
    1.4.2  映射SDF结构到Verilog	42
    1.4.3  多个注解	46
    1.4.4  多个SDF文件	47
    1.4.5  脉冲限制注解	47
    1.4.6  SDF到Verilog延迟值映射	48
    1.5  Verilog HDL的VCD文件	48
    1.5.1  Vivado创建四态VCD文件	49
    1.5.2  Verilog源创建四态VCD文件	49
    1.5.3  四态VCD文件格式	51
    1.6  编译高云FPGA仿真库	55
    1.6.1  功能仿真库的安装	55
    1.6.2  时序仿真库的安装	57
    第2章  加法器和减法器的设计和验证	60
    2.1  加法器的设计	60
    2.1.1 一位半加器的实现	60
    2.1.2  一位全加器的实现	60
    2.1.3  串行进位加法器的实现	61
    2.1.4  串行进位加法器的验证	65
    2.1.5  超前进位加法器的实现	70
    2.1.6  超前进位加法器的验证	74
    2.2  减法器的设计	76
    2.2.1  一位半减器的实现	76
    2.2.2  一位全减器的实现	77
    2.2.3  负数的表示方法	78
    2.2.4  多位减法器的设计和验证	80
    2.3  单个加法器实现加法和减法运算	82
    2.3.1  一位加法器/减法器的实现	82
    2.3.2  多位加法器/减法器的实现	83
    2.3.3  单个加法器的设计和验证	84
    第3章  乘法器和除法器的设计和验证	86
    3.1  乘法器的设计和验证	86
    3.1.1  基-2布斯算法的设计	86
    3.1.2  基-2布斯算法的验证	90
    3.1.3  基-2流水线布斯乘法器的设计	94
    3.1.4  基-2流水线布斯乘法器的验证	96
    3.1.5  基-4流水线布斯算法的设计	100
    3.1.6  基-4流水线布斯算法的验证	104
    3.2  除法器的设计和验证	105
    3.2.1  基于长除法的除法器的设计	105
    3.2.2  基于长除法的除法器的验证	109
    3.2.3  基于恢复除法的除法器的设计	112
    3.2.4  基于恢复除法的除法器的验证	116
    3.2.5  基于非恢复除法的除法器的设计	117
    3.2.6  基于非恢复除法的除法器的验证	120
    第4章  浮点运算器的设计和验证	123
    4.1  浮点数的表示方法	123
    4.1.1  单精度表示方法	123
    4.1.2  双精度表示方法	124
    4.2  调用浮点库的浮点数运算的实现和验证	124
    4.2.1  调用浮点库的浮点数运算的实现	124
    4.2.2  调用浮点库的浮点数运算的验证	126
    第5章  Codescape下载安装和使用指南	132
    5.1  Codescape工具的功能	132
    5.2  Codescape工具的下载和安装	132
    5.2.1  Codescape工具的下载	132
    5.2.2  Codescape工具的安装	133
    5.3  Codescape的设计流程	134
    5.3.1  启动Codescape工具	134
    5.3.2  创建新的设计工程	135
    5.3.3  分析启动引导代码	136
    5.3.4  修改main.c文件	139
    5.3.5  编译设计文件	140
    5.3.6  分析编译后的代码	140
    第6章  单周期MIPS系统的设计和验证	142
    6.1  MIPS实现的指令功能	142
    6.1.1  MIPS32指令编码格式	142
    6.1.2  处理器所实现的指令格式	150
    6.2  单周期MIPS系统的设计	156
    6.2.1  建立新的设计工程	156
    6.2.2  添加通用寄存器集设计文件	157
    6.2.3  添加程序计数器设计文件	158
    6.2.4  添加控制器设计文件	158
    6.2.5  添加算术逻辑单元设计文件	161
    6.2.6  添加处理器顶层设计文件	162
    6.2.7  添加数据存储器设计文件	165
    6.2.8  添加指令存储器设计文件	166
    6.2.9  添加系统顶层设计文件	167
    6.3  生成并添加存储器初始化文件	168
    6.3.1  建立新的设计工程	168
    6.3.2  添加makefile文件	169
    6.3.3  添加链接描述文件	170
    6.3.4  添加汇编语言源文件	171
    6.3.5  生成HEX文件	171
    6.3.6  添加存储器初始化文件	172
    6.4  单周期MIPS系统的验证	173
    6.4.1  GAO软件工具概述	173
    6.4.2  添加GAO配置文件	174
    6.4.3  配置GAO参数	174
    6.4.4  添加物理约束文件	178
    6.4.5  添加引脚约束条件	178
    6.4.6  下载设计到FPGA	181
    6.4.7  启动GAO软件工具	181
    6.4.8  设计总结和启示	182
    6.5  单周期MIPS系统添加外设的设计	183
    6.5.1  设计思路	183
    6.5.2  存储空间映射	184
    6.5.3  复制并添加设计文件	185
    6.5.4  添加地址译码器设计文件	185
    6.5.5  添加多路选择器设计文件	186
    6.5.6  添加GPIO控制器设计文件	187
    6.5.7  添加PWM控制器设计文件	188
    6.5.8  修改顶层设计文件	189
    6.5.9  查看RTL网表结构	191
    6.6  单周期MIPS系统添加外设的验证	191
    6.6.1  测试数据存储器	191
    6.6.2  测试GPIO控制器	195
    6.6.3  测试PWM控制器	199
    6.7  单周期MIPS核添加协处理器的设计	203
    6.7.1  设计背景	203
    6.7.2  设计思路	204
    6.7.3  复制设计文件	204
    6.7.4  添加协处理器设计文件	204
    6.7.5  修改控制器设计文件	209
    6.7.6  修改程序计数器设计文件	212
    6.7.7  修改处理器核设计文件	213
    6.7.8  查看处理器核设计结构	216
    6.8  单周期MIPS核添加协处理器的验证	216
    6.8.1  测试保留指令异常	216
    6.8.2  测试定时器中断异常	221
    第7章  多周期MIPS系统的设计和验证	226
    7.1  设计背景	226
    7.2  设计关键问题	226
    7.2.1  处理指令需要的阶段	226
    7.2.2  数据通路	227
    7.2.3  控制通路	229
    7.3  多周期MIPS系统的设计	231
    7.3.1  建立新的设计工程	232
    7.3.2  复制设计文件	232
    7.3.3  添加底层寄存器设计文件	233
    7.3.4  添加程序计数器设计文件	233
    7.3.5  添加存储器设计文件	234
    7.3.6  添加控制器设计文件	235
    7.3.7  添加顶层设计文件	239
    7.4  多周期MIPS系统的验证	242
    7.4.1  修改GAO配置文件	242
    7.4.2  下载设计	243
    7.4.3  启动GAO软件工具	243
    7.4.4  设计总结和启示	244
    第8章  流水线MIPS系统的设计和验证	245
    8.1  流水线概述	245
    8.1.1  数据通路的流水线结构	246
    8.1.2  控制通路的流水线结构	249
    8.1.3  风险及解决方法	249
    8.2  流水线MIPS系统的设计	256
    8.2.1  建立新的设计工程	256
    8.2.2  复制设计文件	256
    8.2.3  添加底层寄存器设计文件	257
    8.2.4  添加通用寄存器集设计文件	259
    8.2.5  添加控制器设计文件	260
    8.2.6  添加风险控制单元设计文件	263
    8.2.7  添加处理器核顶层设计文件	264
    8.2.8  添加处理器系统顶层设计文件	269
    8.3  流水线MIPS系统的验证	270
    8.3.1  测试提前解决数据风险方法的正确性	270
    8.3.2  测试停止解决数据风险方法的正确性	273
    8.3.3  测试解决控制风险方法的正确性	276
    8.4  流水线MIPS系统添加协处理器的设计	280
    8.4.1  复制并添加设计文件	280
    8.4.2  修改风险控制单元设计文件	281
    8.4.3  修改MIPS核顶层设计文件	283
    8.5  流水线MIPS系统添加协处理器的验证	290
    8.5.1  修改GAO配置文件	290
    8.5.2  下载设计	290
    8.5.3  启动GAO软件工具	291
    8.6  AHB-LITE总线架构和时序	292
    8.6.1  ARM AMBA系统总线	292
    8.6.2  AHB-LITE简介	293
    8.6.3  AHB-LITE总线操作	294
    8.6.4  AHB-LITE总线结构	294
    8.6.5  AHB-LITE总线时序	297
    8.7  流水线MIPS系统添加外设的设计	299
    8.7.1  复制设计文件	300
    8.7.2  添加本地总线转换设计文件	300
    8.7.3  添加地址译码器设计文件	301
    8.7.4  添加多路复用器设计文件	302
    8.7.5  添加数据存储器控制器设计文件	303
    8.7.6  添加GPIO控制器设计文件	305
    8.7.7  修改控制器设计文件	306
    8.7.8  修改风险控制单元设计文件	307
    8.7.9  修改处理器核设计文件	309
    8.7.10  修改顶层设计文件	316
    8.8  流水线MIPS系统添加外设的验证	319
    8.8.1  测试GPIO控制器	319
    8.8.2  测试数据存储器控制器	322
    
    展开

    前     言

    前    言
    本书是《EDA原理及Verilog HDL实现:从晶体管、门电路到高云FPGA的数字系统设计》一书的姊妹篇,也是进阶篇。
    众所周知,中央处理单元(Central Processing Unit,CPU)和片上系统(System on Chip,SoC)设计是集成电路设计领域的“珠穆朗玛峰”,是衡量一个国家集成电路设计水平的重要标志。长久以来,国内从事CPU设计的半导体公司主要是基于国外授权的指令集架构(Instruction Set Architecture,ISA)来设计CPU,这就需要给国外公司支付巨额的专利费用。
    近年来,随着中国科技实力的不断增强,国内从事CPU设计的半导体公司在消化和吸收国外经典ISA的基础上,推出了具有自主知识产权的ISA,并且CPU的整体性能不断接近国外主流CPU的性能。在这种情况下,就需要国内高等学校培养一批精通高端CPU设计的高级人才来支持国内CPU设计公司的持续发展,以更好的推动国产CPU的大规模普及。
    近年来,国内外很多开源社区提供了不用架构CPU的开源设计,为广大读者学习CPU和SoC设计方法提供了丰富的素材。
    本书内容主要分为两个部分。第一部分从最基本的加法器和减法器入手,进阶到乘法器和除法器,以及浮点运算单元,通过高云半导体的云源软件对这些功能单元进行了设计实现,并通过西门子的ModelSim软件对设计进行了仿真验证;第二部分,从单周期MIPS处理器入手,进阶到多周期MIPS处理器和流水线MIPS处理器,通过高云半导体的云源软件对这三种不同形式的处理器进行了设计实现,并通过高云半导体的GAO在线逻辑分析工具对设计进行了硬件调试和验证。通过高云半导体的云源软件、西门子的ModelSim软件和高云半导体的GAO软件,将软件和硬件的协同设计、协同仿真和协同调试融为一体。通过软件仿真和硬件调试,深度剖析不同MIPS处理器实现的本质,从而为读者系统学习包括CPU核和外设在内的计算机底层硬件提供了可视化手段和方法。
    作者已经毕业的研究生罗显志在攻读硕士研究生学位期间,曾经系统学习了基于MIPS ISA的全套课程,并对该MIPS处理器核的内部结构进行了系统研究和分析,此书第二部分的一些内容也是基于他的研究成果,在此向他表示感谢。
    在编写本书的过程中,高云半导体大学计划经理梁岳峰先生和武汉易思达科技总经理王程涛先生提供了高云云源软件和硬件开发板的支持,并协调相关的软件和硬件工程师解答作者在编写本书过程中所遇到的技术问题,在此也向他们表示诚挚的感谢。产业界和教育界的互相支持和深度融合,必将为国内高等学校提高自主人才培养的质量注入新的动力,从而加速先进信息技术与高等学校相关专业课程培养体系的有机融合。
    由于作者水平有限,书中难免有不足之处,恳请各位读者提出宝贵的建议,书中所有的实例设计代码均可从华信教育资源网(http://www.hxedu.com.cn)中下载。关于书中的任何问题,读者可以通过hb@gpnewtech.com与作者进行联系。
                                                          何宾          
                                                     2024年2月于北京
    
    展开

    作者简介

    何宾,知名的嵌入式和EDA技术专家,长期从事电子设计自动化方面的教学和科研工作,与全球多家知名的半导体厂商和EDA工具厂商密切合作。已经出版电子信息方面的著作共40余部,内容涵盖电路仿真、电路设计、FPGA、数字信号处理、单片机、嵌入式系统等。典型的代表作有《模拟电子系统设计指南(基础篇):从半导体、分立元件到TI集成电路的分析与实现》、《模拟电子系统设计指南(实践篇):从半导体、分立元件到TI集成电路的分析与实现》、《Xilinx Zynq-7000嵌入式系统设计与实现-基于ARM Cortex-A9双核处理器和Vivado的设计方法》、《Altium Designer17一体化设计标准教程-从仿真原理和PCB设计到单片机系统》、《STC8系列单片机开发指南:面向处理器、程序设计和操作系统的分析与应用》等。
  • 样 章 试 读
  • 图 书 评 价 我要评论
华信教育资源网