封面
版权信息
作者简介
序
前言
第1章 CPU芯片研发过程概述
1.1 处理器和处理器核
1.2 芯片产品的研制过程
1.3 芯片设计的工作阶段
第2章 硬件实验平台及FPGA设计流程
2.1 硬件实验平台
2.1.1 龙芯CPU设计与体系结构教学实验系统
2.1.2 龙芯普及型系统能力培养远程实验平台
2.2 FPGA的设计流程
2.2.1 FPGA的一般设计流程
2.2.2 基于Vivado的FPGA实现流程
2.2.3 Vivado使用小贴士
2.3 任务与实践
2.3.1 本书配套实验环境
2.3.2 实践任务1:跑马灯
第3章 数字逻辑电路设计基础
3.1 数字逻辑电路设计与Verilog代码开发
- APP免费
3.1.1 面向硬件电路的设计思维方式
- APP免费
3.1.2 自顶向下的设计划分过程
- APP免费
3.1.3 行为描述的Verilog编程风格
- APP免费
3.1.4 常用数字逻辑电路的Verilog描述
- APP免费
3.2 数字逻辑电路功能仿真的常见错误及调试方法
- APP免费
3.2.1 功能仿真波形分析
- APP免费
3.2.2 波形异常类错误的调试
- APP免费
3.3 任务与实践
- APP免费
3.3.1 实践任务2:寄存器堆仿真
- APP免费
3.3.2 实践任务3:同步RAM和异步RAM仿真、综合与实现
- APP免费
3.3.3 实践任务4:数字逻辑电路的设计与调试
- APP免费
第4章 单周期CPU设计
- APP免费
4.1 设计一个5条指令的单周期CPU
- APP免费
4.1.1 设计CPU的总体思路
- APP免费
4.1.2 5条指令单周期CPU数据通路设计
- APP免费
4.1.3 5条指令单周期CPU控制信号生成
- APP免费
4.2 验证5条指令的单周期CPU
- APP免费
4.2.1 5条指令单周期CPU实验开发环境快速上手
- APP免费
4.2.2 minicpu_env实验开发环境组织结构介绍
- APP免费
4.2.3 功能仿真验证
- APP免费
4.3 设计一个20条指令的单周期CPU
- APP免费
4.3.1 新增ALU类指令的数据通路设计
- APP免费
4.3.2 新增Branch类指令的数据通路设计
- APP免费
4.3.3 新增指令后控制信号的调整
- APP免费
4.4 验证20条指令的单周期CPU
- APP免费
4.4.1 mycpu_env实验开发环境组织结构介绍
- APP免费
4.4.2 基于trace比对的调试框架
- APP免费
4.4.3 func功能测试程序
- APP免费
4.4.4 基于mycpu_env实验开发环境的实验流程
- APP免费
4.4.5 mycpu_env实验开发环境使用进阶
- APP免费
4.5 CPU设计实验功能仿真调试技术
- APP免费
4.5.1 为什么要用基于trace比对的调试辅助手段
- APP免费
4.5.2 基于trace比对调试手段的“盲区”及对策
- APP免费
4.5.3 学会阅读汇编程序和反汇编代码
- APP免费
4.6 任务与实践
- APP免费
4.6.1 实践任务5:5条指令单周期CPU
- APP免费
4.6.2 实践任务6:20条指令单周期CPU
- APP免费
第5章 简单流水线CPU设计
- APP免费
5.1 不考虑相关冲突的流水线CPU设计
- APP免费
5.1.1 添加流水级间缓存
- APP免费
5.1.2 同步读RAM的引入
- APP免费
5.1.3 调整更新PC的数据通路
- APP免费
5.1.4 不考虑相关冲突情况下流水线控制信号的设计
- APP免费
5.1.5 复位的处理
- APP免费
5.2 指令相关与流水线冲突
- APP免费
5.2.1 处理寄存器写后读数据相关引发的流水线冲突
- APP免费
5.2.2 处理控制相关
- APP免费
5.3 流水线数据前递设计
- APP免费
5.3.1 前递的数据通路设计
- APP免费
5.3.2 前递的流水线控制信号调整
- APP免费
5.3.3 前递引发的主频下降
- APP免费
5.4 CPU设计实验功能仿真调试技术进阶
- APP免费
5.4.1 valid和PC信号不能少
- APP免费
5.4.2 各流水线信号分组有序摆放
- APP免费
5.4.3 先遍历指令再遍历流水线
- APP免费
5.5 任务与实践
- APP免费
5.5.1 实践任务7:不考虑相关引发的冲突的简单流水线CPU
- APP免费
5.5.2 实践任务8:阻塞技术解决相关引发的冲突
- APP免费
5.5.3 实践任务9:前递技术解决相关引发的冲突
- APP免费
第6章 在流水线中添加普通用户态指令
- APP免费
6.1 算术逻辑运算类指令的添加
- APP免费
6.1.1 slti和sltui指令的添加
- APP免费
6.1.2 andi、ori和xori指令的添加
- APP免费
6.1.3 sll.w、srl.w和sra.w指令的添加
- APP免费
6.1.4 pcaddu12i指令的添加
- APP免费
6.2 乘除法运算类指令的添加
- APP免费
6.2.1 调用Xilinx IP实现乘除法运算部件
- APP免费
6.2.2 电路级实现乘法器
- APP免费
6.2.3 电路级实现除法器
- APP免费
6.3 转移指令的添加
- APP免费
6.4 访存指令的添加
- APP免费
6.4.1 ld.b、ld.h、ld.bu、ld.hu指令的添加
- APP免费
6.4.2 st.b、st.h指令的添加
- APP免费
6.5 任务与实践
- APP免费
6.5.1 实践任务10:算术逻辑运算指令和乘除法运算指令添加
- APP免费
6.5.2 实践任务11:转移指令和访存指令添加
- APP免费
第7章 异常和中断的支持
- APP免费
7.1 异常和中断的基本概念
- APP免费
7.1.1 异常是一套软硬件协同处理的机制
- APP免费
7.1.2 精确异常
- APP免费
7.2 LoongArch指令系统中与异常相关的功能定义
- APP免费
7.2.1 控制状态寄存器
- APP免费
7.2.2 异常产生条件的判定
- APP免费
7.2.3 响应异常后硬件的一般处理过程
- APP免费
7.2.4 异常处理返回指令
- APP免费
7.2.5 CSR读写指令
- APP免费
7.3 流水线CPU实现异常和中断的设计要点
- APP免费
7.3.1 异常检测逻辑的实现
- APP免费
7.3.2 精确异常的实现
- APP免费
7.3.3 控制状态寄存器的实现
- APP免费
7.3.4 处理控制状态寄存器相关引发的冲突
- APP免费
7.4 其他指令的实现
- APP免费
7.5 任务与实践
- APP免费
7.5.1 实践任务12:添加系统调用异常支持
- APP免费
7.5.2 实践任务13:添加其他异常与中断支持
- APP免费
第8章 AXI总线接口设计
- APP免费
8.1 类SRAM总线
- APP免费
8.1.1 主方和从方
- APP免费
8.1.2 类SRAM总线接口信号的定义
- APP免费
8.1.3 类SRAM总线的读写时序
- APP免费
8.1.4 类SRAM总线的约束
- APP免费
8.2 类SRAM总线的设计
- APP免费
8.2.1 取指设计的考虑
- APP免费
8.2.2 访存设计的考虑
- APP免费
8.3 AXI总线协议
- APP免费
8.3.1 AXI总线信号一览
- APP免费
8.3.2 AXI总线协议的初步解读
- APP免费
8.3.3 类SRAM总线接口信号与AXI总线接口信号的关系
- APP免费
8.4 类SRAM-AXI的转接桥设计
- APP免费
8.4.1 转接桥的顶层接口
- APP免费
8.4.2 转接桥的设计要求
- APP免费
8.4.3 转接桥的设计建议
- APP免费
8.5 任务与实践
- APP免费
8.5.1 实践任务14:添加类SRAM总线支持
- APP免费
8.5.2 实践任务15:添加AXI总线支持
- APP免费
8.5.3 实践任务16:完成AXI随机延迟验证
- APP免费
第9章 存储管理单元设计
- APP免费
9.1 存储管理单元相关规范定义梳理
- APP免费
9.2 TLB模块设计分析
- APP免费
9.3 MMU相关CSR与指令的实现
- APP免费
9.3.1 MMU的CSR相关引发的冲突处理
- APP免费
9.3.2 TLB相关指令的实现
- APP免费
9.4 利用MMU进行虚实地址转换及MMU相关异常的实现
- APP免费
9.5 任务与实践
- APP免费
9.5.1 实践任务17:设计TLB模块
- APP免费
9.5.2 实践任务18:添加TLB相关指令和CSR
- APP免费
9.5.3 实践任务19:添加TLB相关异常支持
- APP免费
第10章 Cache设计
- APP免费
10.1 Cache模块的设计
- APP免费
10.1.1 Cache的设计规格
- APP免费
10.1.2 Cache模块的数据通路设计
- APP免费
10.1.3 Cache模块内部的控制逻辑设计
- APP免费
10.1.4 Cache的硬件初始化问题
- APP免费
10.2 将Cache集成至CPU中
- APP免费
10.2.1 Cache命中情况下的CPU流水线适配
- APP免费
10.2.2 Cache缺失情况下的CPU流水线适配
- APP免费
10.2.3 非缓存访问的处理
- APP免费
10.3 Cache维护指令
- APP免费
10.4 任务与实践
- APP免费
10.4.1 实践任务20:Cache模块设计
- APP免费
10.4.2 实践任务21:在CPU中集成ICache
- APP免费
10.4.3 实践任务22:在CPU中集成DCache
- APP免费
10.4.4 实践任务23:在CPU中添加CACOP指令
- APP免费
第11章 进阶实验开发环境
- APP免费
11.1 chiplab开发环境组织与构成
- APP免费
11.2 chiplab开发环境的推荐使用方式
- APP免费
11.3 软件仿真功能验证
- APP免费
11.3.1 固定测试程序验证
- APP免费
11.3.2 随机指令测试程序验证
- APP免费
11.3.3 基于差分测试的调试辅助机制
- APP免费
11.4 FPGA上板功能验证
- APP免费
11.4.1 FPGA综合实现
- APP免费
11.4.2 在FPGA上运行Linux操作系统
- APP免费
第12章 进阶设计
- APP免费
12.1 提升主频的常用方法
- APP免费
12.1.1 平衡各级流水线的延迟
- APP免费
12.1.2 针对大概率事件优化逻辑
- APP免费
12.1.3 用面积和功耗换时延
- APP免费
12.1.4 进一步切分流水线
- APP免费
12.1.5 主频提升技术实现示例
- APP免费
12.2 超标量流水线的实现
- APP免费
12.2.1 超标量流水线前端设计要点
- APP免费
12.2.2 静态调度超标量流水线后端设计要点
- APP免费
12.3 动态调度机制的实现
- APP免费
12.3.1 动态调度机制设计要点提示
- APP免费
12.3.2 动态调度中常见电路结构的RTL实现
- APP免费
12.4 硬件转移预测技术
- APP免费
12.4.1 硬件转移预测的流水线设计框架
- APP免费
12.4.2 一个轻量级转移预测器设计规格
- APP免费
12.5 访存优化技术
- APP免费
12.5.1 写缓存
- APP免费
12.5.2 非阻塞式高速缓存
- APP免费
12.5.3 访存乱序执行
- APP免费
12.5.4 多级Cache
- APP免费
12.5.5 Cache预取
- APP免费
12.6 多核处理器的实现
- APP免费
12.6.1 多核互联结构
- APP免费
12.6.2 多核编号
- APP免费
12.6.3 核间中断
- APP免费
12.6.4 多核情况下的存储一致性
- APP免费
12.6.5 缓存一致性协议
- APP免费
12.6.6 ll.w-sc.w指令对的访存原子性
- APP免费
附录
- APP免费
附录A 龙芯CPU设计与体系结构教学实验系统
- APP免费
附录B Vivado的安装
- APP免费
附录C Vivado使用入门
- APP免费
附录D Vivado使用进阶
- APP免费
学习指导
- APP免费
封底
更新时间:2024-09-11 16:20:15