使用SystemVerilog编写测试平台时,如何构建一个可重用的‘记分板(Scoreboard)’来比对DUT输出和参考模型?有哪些常见的设计模式?
在学习UVM验证方法学,正在自己搭建一个验证环境。对于记分板(Scoreboard)的设计有点困惑。我知道它的核心功能是比较DUT的输出和参考模型的预期输出。但具体实现时,如何设计一个灵活、可重用的记分板?比如:数据如何从Monitor传递到Scoreboard?(用TLM端口还是FIFO?)如何处理乱序到达的交易?如何定义比较规则(精确匹配、带容忍度的匹配)?当发现不匹配时,如何报告错误信息才便于调试?有没有一些经典的设计模式或者开源代码可以参考?希望大神能分享一下最佳实践。