推荐答案
测试一下
题目
6.1 测试激励的完备性
参考答案与知识点
参考答案
设计32bit*32bit乘法器的仿真测试激励时,应考虑完备性,覆盖功能、边界和随机场景。首先明确乘法器类型:有符号(补码)或无符号,或两者兼备。测试激励需包含:1)边界值:输入0、1、-1(有符号时为0xFFFFFFFF)、32位最大正数(0x7FFFFFFF)、最小负数(0x80000000),以及这些值的组合(如0*0、0*最大正数、最大正数*最小负数等),验证符号扩展和溢出行为。2)特殊值:全1(0xFFFFFFFF)、2的幂(1<<31等)、互补对(如a与-a),检查对称性和符号处理。3)随机测试:使用约束随机生成大量输入对,覆盖均匀分布和极端概率,建议≥10000个随机向量,增加统计置信度。4)功能覆盖:定义关键交叉覆盖点(如符号位组合、零乘积、溢出情况),通过SystemVerilog covergroup或类似机制监控激励多样性。测试方法:在testbench中实例化DUT和参考模型(使用`*`运算符或黄金参考),自动比对结果;对64位乘积进行全位比较,避免仅比较低32位。易错点:忽略了有符号/无符号配置的切换,未检查溢出标志(若乘法器有输出),或随机激励未约束到有效范围(如输入为X态)。推荐采用UVM或简单Verilog testbench,结合assertion断言(如$assert)确保结果匹配。最终目标是使得任何未被测试到的乘积组合概率尽可能低,同时保证已测典型场景足以暴露常见设计缺陷。
涉及知识点
- 测试激励完备性
- 边界值与特殊值测试
- 约束随机测试方法
- 参考模型与结果比对
- 功能覆盖与交叉覆盖
- 有符号/无符号乘法验证