PSS(Protocol Specification Standard)与UVM(Universal Verification Methodology)是两种在芯片设计验证中常用的工具。PSS主要用于系统级测试,而UVM则适用于模块级测试。两者结合使用,可以在复杂的验证环境中提供更全面的测试覆盖。
随着多核处理器和高速缓存系统的广泛应用,系统级测试变得越来越复杂。在这种环境下,传统的UVM可能难以有效地捕捉到跨多个处理器和缓存的复杂状态空间。PSS的优势在于它能够更好地处理这种分布式行为,通过随机化和协调不同组件的行为来进行测试。
例如,在一个多核处理器集群中,每个处理器都在处理任务并通过缓存读写内存。这种情况下,需要确保对任何给定逻辑地址的读取都能返回一致的当前值,即使该地址正在由其他处理器进行写操作。这样的测试要求非常复杂,不仅需要检查一致性协议(如MOESI),还需要处理写穿透、统计缓存缺失、检测虚假共享等。
此外,PSS还支持IO一致性、电源管理、中断处理等多种系统级测试需求。这些测试需要模拟和随机化合成或半真实的测试场景,运行在分布式功能的子系统或系统中。
在实际应用中,PSS可以构建和随机化场景,但这些场景仍然需要连接到DUT(待测设备)级别的测试平台组件。PSS通过连接到UVM虚拟序列或高级C模型来实现这一点,从而使得UVM和C组件之间的协调更加容易,并在设计演进过程中切换到适当的表示形式。
西门子EDA发布的白皮书提供了具体的示例,展示了如何使用其建议的方法进行测试。一个示例展示了如何验证控制/状态寄存器的读写,另一个示例则说明了如何构建VIP(验证IP)来测试DMA(直接存储器访问)。这些示例进一步证明了PSS在处理复杂系统级测试中的优势。