Constrained random test generation is one the most widely adopted methods for generating stimuli for simulation-based verification. Randomness leads to test diversity, but tests tend to repeatedly exercise the same design logic. Constraints are written (typically manually) to bias random tests towards interesting, hard-to-reach, and yet-untested logic. However, as verification progresses, most constrained random tests yield little to no effect on functional coverage. If stimuli generation consumes significantly less resources than simulation, then a better approach involves randomly generating a large number tests, selecting the most effective subset, and only simulating that subset. In this paper, we introduce a novel method for automatic constraint extraction and test selection. This method, which we call coverage-directed test selection, is based on supervised learning from coverage feedback. Our method biases selection towards tests that have a high probability of increasing functional coverage, and prioritises them for simulation. We show how coverage-directed test selection can reduce manual constraint writing, prioritise effective tests, reduce verification resource consumption, and accelerate coverage closure on a large, real-life industrial hardware design.
翻译:受约束随机测试生成是生成模拟验证刺激力的最广泛采用的方法之一。 随机性导致测试多样性, 但测试往往反复使用同样的设计逻辑。 限制是书面的( 通常是手动的), 将随机测试偏向于有趣的、难以获取的和未经测试的逻辑。 但是, 随着核查的进展, 大部分受约束的随机测试不会产生对功能覆盖的影响。 如果刺激性生成消耗的资源比模拟少得多, 那么更好的方法就是随机生成大量测试, 选择最有效的子集, 并且只模拟该子集。 在本文中, 我们引入了一种新型的自动限制提取和测试选择方法。 我们称之为覆盖导向测试选择的这一方法是基于对覆盖反馈的监督性学习。 我们的方法偏向那些功能覆盖率高且对功能覆盖率高的测试进行偏向性选择, 并且将其优先用于模拟。 我们展示了覆盖性测试选择如何减少手写限制、 优先有效测试、 减少核查资源的消耗, 以及加速覆盖范围对大型、 真实的工业硬件设计进行关闭 。