{"title":"SpinalFuzz:覆盖引导模糊SpinalHDL设计","authors":"Katharina Ruep, Daniel Große","doi":"10.1109/ETS54262.2022.9810421","DOIUrl":null,"url":null,"abstract":"Boosting hardware design productivity is a major plus of SpinalHDL, a Scala-based Hardware Description Language (HDL). SpinalHDL achieves this by providing object oriented programming, functional programming, and meta-hardware description finally enabling the generation of Verilog code. Despite all the advantages of SpinalHDL, verification is the biggest challenge here as well.In this paper, we bring Coverage-Guided Fuzzing (CGF), a well-established software testing technique, to the SpinalHDL design flow. We have implemented our approach SpinalFuzz on top of the fuzzer AFL++. We leverage Scala-features to automate as many tasks as possible and ease the integration of fuzzing in SpinalHDL. In the experiments we demonstrate the effectiveness of SpinalFuzz in comparison to Constrained Random Verification (CRV). For a wide range of SpinalHDL designs we show that SpinalFuzz outperforms CRV and reaches coverage-closure.","PeriodicalId":334931,"journal":{"name":"2022 IEEE European Test Symposium (ETS)","volume":"138 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-05-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":"{\"title\":\"SpinalFuzz: Coverage-Guided Fuzzing for SpinalHDL Designs\",\"authors\":\"Katharina Ruep, Daniel Große\",\"doi\":\"10.1109/ETS54262.2022.9810421\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Boosting hardware design productivity is a major plus of SpinalHDL, a Scala-based Hardware Description Language (HDL). SpinalHDL achieves this by providing object oriented programming, functional programming, and meta-hardware description finally enabling the generation of Verilog code. Despite all the advantages of SpinalHDL, verification is the biggest challenge here as well.In this paper, we bring Coverage-Guided Fuzzing (CGF), a well-established software testing technique, to the SpinalHDL design flow. We have implemented our approach SpinalFuzz on top of the fuzzer AFL++. We leverage Scala-features to automate as many tasks as possible and ease the integration of fuzzing in SpinalHDL. In the experiments we demonstrate the effectiveness of SpinalFuzz in comparison to Constrained Random Verification (CRV). For a wide range of SpinalHDL designs we show that SpinalFuzz outperforms CRV and reaches coverage-closure.\",\"PeriodicalId\":334931,\"journal\":{\"name\":\"2022 IEEE European Test Symposium (ETS)\",\"volume\":\"138 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2022-05-23\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"4\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2022 IEEE European Test Symposium (ETS)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ETS54262.2022.9810421\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2022 IEEE European Test Symposium (ETS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ETS54262.2022.9810421","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
SpinalFuzz: Coverage-Guided Fuzzing for SpinalHDL Designs
Boosting hardware design productivity is a major plus of SpinalHDL, a Scala-based Hardware Description Language (HDL). SpinalHDL achieves this by providing object oriented programming, functional programming, and meta-hardware description finally enabling the generation of Verilog code. Despite all the advantages of SpinalHDL, verification is the biggest challenge here as well.In this paper, we bring Coverage-Guided Fuzzing (CGF), a well-established software testing technique, to the SpinalHDL design flow. We have implemented our approach SpinalFuzz on top of the fuzzer AFL++. We leverage Scala-features to automate as many tasks as possible and ease the integration of fuzzing in SpinalHDL. In the experiments we demonstrate the effectiveness of SpinalFuzz in comparison to Constrained Random Verification (CRV). For a wide range of SpinalHDL designs we show that SpinalFuzz outperforms CRV and reaches coverage-closure.