{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,15]],"date-time":"2026-03-15T15:30:45Z","timestamp":1773588645169,"version":"3.50.1"},"publisher-location":"New York, NY, USA","reference-count":52,"publisher":"ACM","funder":[{"name":"Ministry of Education - Singapore","award":["MOE-T2EP20124-0007"],"award-info":[{"award-number":["MOE-T2EP20124-0007"]}]},{"name":"Ministry of Education - Singapore","award":["MOE-T2EP20222-0007"],"award-info":[{"award-number":["MOE-T2EP20222-0007"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2026,3,22]]},"DOI":"10.1145\/3779212.3790125","type":"proceedings-article","created":{"date-parts":[[2026,3,10]],"date-time":"2026-03-10T13:55:26Z","timestamp":1773150926000},"page":"110-136","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["Anvil: A General-Purpose Timing-Safe Hardware Description Language"],"prefix":"10.1145","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-6013-157X","authenticated-orcid":false,"given":"Jason Zhijingcheng","family":"Yu","sequence":"first","affiliation":[{"name":"Department of Computer Science, National University of Singapore, Singapore, Singapore"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0009-0005-3553-0903","authenticated-orcid":false,"given":"Aditya Ranjan","family":"Jha","sequence":"additional","affiliation":[{"name":"Department of Computer Science, National University of Singapore, Singapore, Singapore"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-7610-0660","authenticated-orcid":false,"given":"Umang","family":"Mathur","sequence":"additional","affiliation":[{"name":"Department of Computer Science, National University of Singapore, Singapore, Singapore"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8742-134X","authenticated-orcid":false,"given":"Trevor E.","family":"Carlson","sequence":"additional","affiliation":[{"name":"Department of Computer Science, National University of Singapore, Singapore, Singapore"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1875-8675","authenticated-orcid":false,"given":"Prateek","family":"Saxena","sequence":"additional","affiliation":[{"name":"Department of Computer Science, National University of Singapore, Singapore, Singapore"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2026,3,22]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"2008. Bluespec SystemVerilog Reference Guide."},{"key":"e_1_3_2_1_2_1","volume-title":"IEEE Standard VHDL Language Reference Manual","year":"2008","unstructured":"2009. IEEE Standard VHDL Language Reference Manual. IEEE Std 1076-2008 (Revision of IEEE Std 1076-2002) (2009), 1-640. doi:10.1109\/ IEEESTD.2009.4772740"},{"key":"e_1_3_2_1_3_1","volume-title":"1800-2017 - IEEE Standard for SystemVerilog-Unified Hardware Design, Specification, and Verification Language","unstructured":"2018. 1800-2017 - IEEE Standard for SystemVerilog-Unified Hardware Design, Specification, and Verification Language. IEEE, Place of publication not identified."},{"key":"e_1_3_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/IEEESTD.2020.9195920"},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/IEEESTD.2023.10246125"},{"key":"e_1_3_2_1_6_1","unstructured":"2025. YosysHQ\/Yosys. Yosys Headquarters."},{"key":"e_1_3_2_1_7_1","unstructured":"Alexforencich. [n.d.]. Tx signals for raw ethernet frame Issue 121 alexforencich\/verilog-ethernet. https:\/\/github.com\/alexforencich\/ verilog-ethernet\/issues\/121"},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.3990\/1.9789036538039"},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2228360.2228584"},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3385965"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.65"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454037"},{"key":"e_1_3_2_1_13_1","volume-title":"'1011' Overlapping (Mealy) Sequence Detector in Verilog.","author":"Chunduri Abhishek","year":"2020","unstructured":"Abhishek Chunduri. 2020. '1011' Overlapping (Mealy) Sequence Detector in Verilog."},{"key":"e_1_3_2_1_14_1","volume-title":"Tools for Practical Software Verification: LASER, International Summer School","author":"Clarke Edmund M.","year":"2011","unstructured":"Edmund M. Clarke, William Klieber, Milo\u0161 Nov\u00e1\u010dek, and Paolo Zuliani. 2012. Model Checking and the State Explosion Problem. In Tools for Practical Software Verification: LASER, International Summer School 2011, Elba Island, Italy, Revised Tutorial Lectures, Bertrand Meyer and Martin Nordio (Eds.). Springer, Berlin, Heidelberg, 1-30. doi:10.1007\/ 978-3-642-35746-6_1"},{"key":"e_1_3_2_1_15_1","unstructured":"Cocotb [n.d.]. Cocotb. https:\/\/www.cocotb.org\/."},{"key":"e_1_3_2_1_16_1","first-page":"5","article-title":"MyHDL: a python-based hardware description language","volume":"127","author":"Decaluwe Jan","year":"2004","unstructured":"Jan Decaluwe. 2004. MyHDL: a python-based hardware description language. Linux J. 2004, 127 (2004), 5.","journal-title":"Linux"},{"key":"e_1_3_2_1_17_1","unstructured":"Dimitras-Vtool. [n.d.]. Alu_full_fifo_in_test \u00b7 Issue #1 \u00b7 Dimitras-Vtool\/ALU. https:\/\/github.com\/dimitras-vtool\/ALU\/issues\/1."},{"key":"e_1_3_2_1_18_1","volume-title":"Kernighan","author":"Donovan Alan A.A.","year":"2015","unstructured":"Alan A.A. Donovan and Brian W. Kernighan. 2015. The Go Programming Language (1st ed.). Addison-Wesley Professional."},{"key":"e_1_3_2_1_19_1","unstructured":"fpgasystems. 2024. Each completion queue contains 2-cycle burst valid signal | Issue 78 | fpgasystems\/Coyote. https:\/\/github.com\/fpgasystems\/Coyote\/issues\/78"},{"key":"e_1_3_2_1_20_1","unstructured":"Aarti Gupta. [n.d.]. Formal Hardware Verification Methods: A Survey. ([n.d.])."},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/3575693.3575701"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/359576.359585"},{"key":"e_1_3_2_1_23_1","volume-title":"Communicating Sequential Processes (reprinted ed.)","author":"Hoare Charles A. R.","unstructured":"Charles A. R. Hoare. 2000. Communicating Sequential Processes (reprinted ed.). Prentice Hall, New York."},{"key":"e_1_3_2_1_24_1","volume-title":"Hoover and Ahmed Salman","author":"Steven","year":"2018","unstructured":"Steven F. Hoover and Ahmed Salman. 2018. Top-Down Transaction-Level Design with TL-Verilog. CoRR abs\/1811.01780 (2018). arXiv:1811.01780 http:\/\/arxiv.org\/abs\/1811.01780"},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/3656378"},{"key":"e_1_3_2_1_26_1","unstructured":"Jasper [n.d.]. Jasper Formal Verification Platform. https:\/\/www.cadence.com\/en_US\/home\/tools\/system-design-and-verification\/formal-and-static-verification.html."},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/307988.307989"},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3689790"},{"key":"e_1_3_2_1_29_1","unstructured":"KULeuven-Micas. 2024. Fix ALU valid-ready signal by rgantonio | Pull Request | #163 KULeuven-MICAS\/snax_cluster. https:\/\/github.com\/KULeuven-MICAS\/snax_cluster\/pull\/163\/ commits\/be67fbfd7ab821b7c7928ccceb1801d3e34fb316"},{"key":"e_1_3_2_1_30_1","unstructured":"lowRISC. 2024. Timing issues in FW_OV ''Insert Entropy'' feature. https:\/\/github.com\/lowRISC\/opentitan\/issues\/10983. GitHub Issue 10983 accessed: 2024-11-12."},{"key":"e_1_3_2_1_31_1","unstructured":"lowRISC. 2015. Add an INSTR_VALID_ID signal to completely decouple the pipeline stages LOWRISC\/IBEX@F5D408D. https:\/\/github.com\/lowRISC\/ibex\/ commit\/f5d408d7f4523f4f105cf1fe3029bb28dba12d87"},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3623278.3624767"},{"key":"e_1_3_2_1_33_1","unstructured":"MITRE. 2024. CWE-1298: Hardware Logic Contains Race Conditions. https:\/\/cwe.mitre.org\/data\/definitions\/1298.html. Accessed: 2024-10-26."},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.1985.1662795"},{"key":"e_1_3_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3591234"},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1109\/MEMCOD.2004.1459818"},{"key":"e_1_3_2_1_37_1","unstructured":"OpenHW Group. 2024. Issue 145: Clarification of valid-ready handshake dependency. https:\/\/github.com\/openhwgroup\/core-v-xif\/ issues\/145 Accessed: 2024-11-12."},{"key":"e_1_3_2_1_38_1","unstructured":"OpenHW Group. 2024. Issue 194: Hansdhake rules additional note. https:\/\/github.com\/openhwgroup\/core-v-xif\/issues\/194 Accessed: 2024-11-12."},{"key":"e_1_3_2_1_39_1","unstructured":"Opentitanaes [n.d.]. AES - OpenTitan Documentation. https: \/\/opentitan.org\/book\/hw\/ip\/aes\/index.html"},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/SFCS.1977.32"},{"key":"e_1_3_2_1_41_1","unstructured":"Pulp-Platform. 2016. Add missing w_valid pulp-platform\/core2axi@25eba94. https:\/\/github.com\/pulp-platform\/ core2axi\/commit\/25eba94af4a58249cfa65e1c259ed4b4c5bbfd12"},{"key":"e_1_3_2_1_42_1","unstructured":"Pulp-Platform. 2025. GitHub - pulp-platform\/common_cells: Common SystemVerilog components. https:\/\/github.com\/pulp-platform\/ common_cells"},{"key":"e_1_3_2_1_43_1","unstructured":"Pulp-Platform. 2025. Passthrough Stream FIFO correct specification. https:\/\/github.com\/pulp-platform\/common_cells\/issues\/264"},{"key":"e_1_3_2_1_44_1","volume-title":"Fu Yong Quah, and Rahul Yesantharao","author":"Ray Andy","year":"2023","unstructured":"Andy Ray, Benjamin Devlin, Fu Yong Quah, and Rahul Yesantharao. 2023. Hardcaml: An OCaml Hardware Domain-Specific Language for Efficient and Robust Design. arXiv:2312.15035 [cs]"},{"key":"e_1_3_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1109\/FPL57034.2022.00075"},{"key":"e_1_3_2_1_46_1","unstructured":"SpinalHDL [n.d.]. Spinal Hardware Description Language \u2014 Spinal-HDL documentation. https:\/\/spinalhdl.github.io\/SpinalDoc-RTD\/ master\/index.html"},{"key":"e_1_3_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/3195970.3199848"},{"key":"e_1_3_2_1_48_1","unstructured":"titan. 2014. Synchronizing Multiplier with Adder to Form Mac."},{"key":"e_1_3_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/3510578"},{"key":"e_1_3_2_1_50_1","unstructured":"XLS [n.d.]. XLS: Accelerated HW Synthesis. https:\/\/google.github.io\/xls\/"},{"key":"e_1_3_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523455"},{"key":"e_1_3_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1109\/TVLSI.2019.2926114"}],"event":{"name":"ASPLOS '26: 31st ACM International Conference on Architectural Support for Programming Languages and Operating Systems","location":"Pittsburgh PA USA","sponsor":["SIGOPS ACM Special Interest Group on Operating Systems","SIGPLAN ACM Special Interest Group on Programming Languages","SIGARCH ACM Special Interest Group on Computer Architecture","SIGBED ACM Special Interest Group on Embedded Systems"]},"container-title":["Proceedings of the 31st ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2"],"original-title":[],"deposited":{"date-parts":[[2026,3,15]],"date-time":"2026-03-15T14:00:34Z","timestamp":1773583234000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3779212.3790125"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,3,22]]},"references-count":52,"alternative-id":["10.1145\/3779212.3790125","10.1145\/3779212"],"URL":"https:\/\/doi.org\/10.1145\/3779212.3790125","relation":{},"subject":[],"published":{"date-parts":[[2026,3,22]]},"assertion":[{"value":"2026-03-22","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}