Logic synthesis is a fundamental step in hardware design whose goal is to find structural representations of Boolean functions while minimizing delay and area. If the function is completely-specified, the implementation accurately represents the function. If the function is incompletely-specified, the implementation has to be true only on the care set. While most of the algorithms in logic synthesis rely on SAT and Boolean methods to exactly implement the care set, we investigate learning in logic synthesis, attempting to trade exactness for generalization. This work is directly related to machine learning where the care set is the training set and the implementation is expected to generalize on a validation set. We present learning incompletely-specified functions based on the results of a competition conducted at IWLS 2020. The goal of the competition was to implement 100 functions given by a set of care minterms for training, while testing the implementation using a set of validation minterms sampled from the same function. We make this benchmark suite available and offer a detailed comparative analysis of the different approaches to learning
翻译:逻辑合成是硬件设计的一个基本步骤,硬件设计的目标是找到布林函数的结构表示,同时尽量减少延迟和面积。如果该功能是完全指定的,则执行准确地代表该功能。如果该功能未完全指定,则执行必须只对整套护理系统适用。逻辑合成中的大多数算法依靠沙特德士和布林算法来精确执行一套护理系统,但我们在逻辑合成中研究学习,试图将准确性作为一般化交换。这项工作与机器学习直接相关,因为护理组是一套训练组,而执行则预计将在一套鉴定组中加以概括。我们根据在2020年国际妇女劳工统计系统进行的竞争结果,提出不完整的指定功能。竞争的目的是执行一套训练护理规定下的100项功能,同时使用从同一功能中抽样的一套鉴定分期来测试执行情况。我们提供这个基准套件,并对不同的学习方法进行详细的比较分析。