🧮 RISC-V FPU
设计与优化 · 30章
🎯 友好 · 彩色目录
01
FPU概述
角色
IEEE 754
F/D/Q扩展
浮点运算单元在RISC-V体系结构中的角色、标准简介、扩展概述
02
浮点数据格式
float32
float64
特殊值
单精度与双精度二进制表示、规格化与非规格化、NaN/Infinity/Zero编码
03
RISC-V浮点指令集架构
F扩展
D/Q扩展
加载/存储、算术、比较、转换,扩展差异详解
04
FPU微架构设计概览
流水线
并行
面积功耗
取指/译码/执行/写回、并行技术、面积与功耗权衡
05
加法/减法单元设计(一)
对阶
尾数运算
规格化
浮点加减法算法原理、硬件数据通路
06
加法/减法单元设计(二)
LZA
舍入模式
前导零预测、RNE/RTZ/RDN/RUP/RMM硬件实现
07
乘法单元设计
Wallace树
Dadda树
浮点乘法算法、部分积累加、乘法器架构选择
08
除法单元设计
SRT算法
Newton-Raphson
浮点除法算法、硬件实现与延迟分析
09
平方根单元设计
Goldschmidt
复用设计
浮点平方根算法、与除法单元复用
10
融合乘加(FMA)单元设计
FMADD
FMSUB
精度优势
FMA指令算法、精度与性能优势
11
浮点比较与转换单元
FEQ/FLT/FLE
FCVT
比较指令硬件实现、浮点与整数转换逻辑
12
舍入与异常处理
NV/OF/UF/DX/NX
fcsr
舍入硬件、异常标志产生、RISC-V fcsr寄存器
13
浮点寄存器文件
f0-f31
多端口
寄存器组织、多端口设计、读写冲突解决
14
FPU的译码逻辑
译码电路
控制信号
浮点指令译码、操作数类型检测、控制信号生成
15
FPU的写回与转发
数据对齐
forwarding
写回阶段对齐、结果转发逻辑、写冲突处理
16
低功耗FPU设计技术
时钟门控
操作数隔离
DVFS
低功耗技术在FPU中的应用
17
高性能FPU设计技术
超标量
乱序执行
寄存器重命名
高性能浮点调度
18
FPU的验证策略
随机测试
形式化验证
IEEE 754
验证方法、符合性测试套件
19
FPU的物理设计
floorplan
标准单元
时钟树
布局规划、单元选择、CTS影响
20
FPU的时序优化
关键路径
重定时
流水线深度调整、寄存器插入与retiming
21
FPU的面积优化
资源共享
宽度裁剪
乘法器/FMA共享、非关键路径面积缩减
22
FPU的测试与可测性设计
扫描链
BIST
故障模型
可测性设计在FPU中的应用
23
RISC-V向量扩展(V)中的浮点支持
向量浮点
协同设计
可配置长度
向量FPU与标量FPU协同
24
FPU的软硬件协同设计
编译器优化
上下文保存
指令调度、循环展开、OS上下文管理
25
FPU的RTL设计与仿真
SystemVerilog
Chisel
UVM/Cocotb
RTL设计、仿真环境搭建
26
FPU的综合与实现
Design Compiler
Yosys
逻辑综合约束、时序面积报告分析
27
FPU的FPGA原型验证
ILA调试
资源优化
FPGA部署、集成逻辑分析仪、资源利用率
28
FPU的硅后验证与调试
ATE测试
eFuse
良率提升
测试向量、硅后调试、良率策略
29
FPU设计案例研究
SweRV-EH1
HardFloat
Cortex-M
开源与商业FPU架构对比
30
FPU的未来趋势
bfloat16
tensor float
3D IC
AI/ML新需求、可重构FPU、3D IC影响