Abstract:Abstract:Testing and debugging have always been the most time-consuming parts of the software development procedure and require large amounts of human resources. When a bug is located, manually fixing it to repair the buggy program is still a difficult and laborious task for developers. Hence automatic program repair techniques, especially the test-based approaches, have drawn great attentions in recent years. Researchers have explored and proposed various novel methods and tools, pushing the idea closer to re… Show more
“…CirFix requires information about expected behavior for a circuit design to assign fitness values to candidate repairs. In APR for software, guidelines for correct behavior often take the form of passing and failing test cases [46]. More generally, however, such information can be induced from a previous version of the design known to be functional [4,18,22,51,53,71] or a combination of data mining and static analyses of the design [15,23,25,72], or manually provided by the human developer [3,11,24,28].…”
Section: Obtaining Information For Correct Circuit Behaviormentioning
confidence: 99%
“…Automated Program Repair for Software. In the realm of software, significant research effort has been devoted to repairing bugs automatically over the last decade [21,46,58]. Automated program repair usually takes as input source code with a deterministic bug and a test suite with at least one failing test that reveals the bug, and aims to automatically generate fixes to the buggy code.…”
Section: Related Workmentioning
confidence: 99%
“…Furthermore, previous work does not operate on behavioral-level descriptions of hardware circuits [13,49]. On the other hand, in the realm of software, significant research effort focuses on repairing bugs automatically [21,46,58]. Automated program repair (APR) algorithms fix defects in software by producing patches that pass all test cases while retaining required functionality.…”
This paper presents CirFix, a framework for automatically repairing defects in hardware designs implemented in languages like Verilog. We propose a novel fault localization approach based on assignments to wires and registers, and a fitness function tailored to the hardware domain to bridge the gap between software-level automated program repair and hardware descriptions. We also present a benchmark suite of 32 defect scenarios corresponding to a variety of hardware projects. Overall, CirFix produces plausible repairs for 21/32 and correct repairs for 16/32 of the defect scenarios. This repair rate is comparable to that of successful program repair approaches for software, indicating CirFix is effective at bringing over the benefits of automated program repair to the hardware domain for the first time.
CCS CONCEPTS• Hardware → High-level and register-transfer level synthesis; Bug fixing (hardware); • Software and its engineering → Search-based software engineering.
“…CirFix requires information about expected behavior for a circuit design to assign fitness values to candidate repairs. In APR for software, guidelines for correct behavior often take the form of passing and failing test cases [46]. More generally, however, such information can be induced from a previous version of the design known to be functional [4,18,22,51,53,71] or a combination of data mining and static analyses of the design [15,23,25,72], or manually provided by the human developer [3,11,24,28].…”
Section: Obtaining Information For Correct Circuit Behaviormentioning
confidence: 99%
“…Automated Program Repair for Software. In the realm of software, significant research effort has been devoted to repairing bugs automatically over the last decade [21,46,58]. Automated program repair usually takes as input source code with a deterministic bug and a test suite with at least one failing test that reveals the bug, and aims to automatically generate fixes to the buggy code.…”
Section: Related Workmentioning
confidence: 99%
“…Furthermore, previous work does not operate on behavioral-level descriptions of hardware circuits [13,49]. On the other hand, in the realm of software, significant research effort focuses on repairing bugs automatically [21,46,58]. Automated program repair (APR) algorithms fix defects in software by producing patches that pass all test cases while retaining required functionality.…”
This paper presents CirFix, a framework for automatically repairing defects in hardware designs implemented in languages like Verilog. We propose a novel fault localization approach based on assignments to wires and registers, and a fitness function tailored to the hardware domain to bridge the gap between software-level automated program repair and hardware descriptions. We also present a benchmark suite of 32 defect scenarios corresponding to a variety of hardware projects. Overall, CirFix produces plausible repairs for 21/32 and correct repairs for 16/32 of the defect scenarios. This repair rate is comparable to that of successful program repair approaches for software, indicating CirFix is effective at bringing over the benefits of automated program repair to the hardware domain for the first time.
CCS CONCEPTS• Hardware → High-level and register-transfer level synthesis; Bug fixing (hardware); • Software and its engineering → Search-based software engineering.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.