论文部分内容阅读
随着芯片复杂度的不断上升,当今的微处理器所包含的功能越来越多。浮点数计算在DSP、图形加速、高精度计算这些领域的需求日渐增长,尤其是高速DSP方面,对于精度高、性能强的FPU的需求十分迫切。与之相对应,在各个微处理器应用的领域中,持续提升的数据运算精度要求和不断扩大的数值运算区间,使得浮点运算既具有十分庞大的规模,也占据了非常大一部分的处理器资源。因此在现代处理器设计中,设计一种高效的FPU并对其进行有效的验证已经成为了一项复杂而充满挑战性的任务。本文先介绍了浮点操作数的格式特点和各类异常情况,阐述了各类不同的估值运算算法并分析其优缺点,在此基础上提出了改进的线性近似值和查找表结合的倒数、倒数方根算法,以及改进的符合本设计指令集要求的指数与对数算法,并给出了估值模块的整体框架、数据通路以及各个模块的具体实现方法。本文使用UVM通用验证方法学对所设计的基于POWER架构的FPU进行高效的功能验证。在搭建平台的过程中,同时也深入研究了浮点运算中的一些边界情况,并且使用了对中间结果的约束解决算法来生成高效的浮点测试用例。较之于传统的浮点功能验证持续跑大量低效用例,使用了这类约束解决算法的浮点数生成器FloatGen能够扩展一些特定情况的浮点边界用例,极大提高验证工作的效率。实验结果表明,集成该浮点数生成器的UVM验证平台,能够在12小时的测试时间内,对EST浮点运算子模块达到超过99%的功能覆盖率。