Constrained random test generation is one of 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 of 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.
翻译:受限制随机测试生成是生成模拟核查刺激力的最广泛采用的方法之一。 随机性导致测试多样性, 但测试往往反复使用同样的设计逻辑。 限制是书面的( 通常是手动的), 将随机测试偏向于有趣的、难以获取的和未经测试的逻辑。 但是, 随着核查的进展, 大部分受限制的随机测试不会产生对功能覆盖的影响。 如果刺激性生成消耗的资源比模拟少得多, 那么更好的方法就是随机生成大量测试, 选择最有效的子集, 并且只模拟该子集。 在本文中, 我们引入了一种新型的自动限制提取和测试选择方法。 我们称之为覆盖式测试选择的这一方法是基于从覆盖反馈中监督学习的。 我们的方法偏向测试的偏向性选择,这些测试的功能覆盖率高,但不会对功能覆盖产生影响。 我们展示了覆盖性测试选择如何减少手写限制、 优先性有效测试、 减少核查资源的消耗, 并加速覆盖大型、 真实的工业硬件设计。