Correctness and robustness are essential for logic synthesis applications, but they are often only tested with a limited set of benchmarks. Moreover, when the application fails on a large benchmark, the debugging process may be tedious and time-consuming. In some fields such as compiler construction, automatic testing and debugging tools are well-developed to support developers and provide minimal guarantees on program quality. In this paper, we adapt fuzz testing and delta debugging techniques and specialize them for gate-level netlists commonly used in logic synthesis. Our toolkit improves over similar tools specialized for the AIGER format by supporting other gate-level netlist formats and by allowing a tight integration to provide 10x speed-up. Experimental results show that our fuzzer captures defects in mockturtle, ABC, and LSOracle with 10x smaller testcases and our testcase minimizer extracts minimal failure-inducing cores using 2x fewer oracle calls.
翻译:正确性和稳健性对于逻辑合成应用程序至关重要,但通常只是用一套有限的基准来测试。此外,当应用程序在大型基准上失败时,调试程序可能既乏味又耗时。在一些领域,如编译器构造、自动测试和调试工具等,开发完善,以支持开发者,对程序质量提供最低限度的保障。在本文中,我们采用模糊测试和三角调试技术,并专门用于逻辑合成中常用的门级网络列表。我们的工具包通过支持其他门级网络列表格式和允许紧凑整合以提供10x速度提升,改进了AGER格式的类似工具。实验结果表明,我们的模糊器捕捉模型、ABC和LSOracle的缺陷有10x小试验箱,而我们的试箱最小化器用2x更少的触动器提取了最小的减试芯。