{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,10]],"date-time":"2026-02-10T17:04:32Z","timestamp":1770743072794,"version":"3.49.0"},"reference-count":56,"publisher":"Association for Computing Machinery (ACM)","issue":"PLDI","license":[{"start":{"date-parts":[[2024,6,20]],"date-time":"2024-06-20T00:00:00Z","timestamp":1718841600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2024,6,20]]},"abstract":"<jats:p>Digital systems are growing in importance and computing hardware is growing more heterogeneous. Hardware design, however, remains laborious and expensive, in part due to the limitations of conventional hardware description languages (HDLs) like VHDL and Verilog. A longstanding research goal has been programming hardware like software, with high-level languages that can generate efficient hardware designs. This paper describes Kanagawa, a language that takes a new approach to combine the programmer productivity benefits of traditional High-Level Synthesis (HLS) approaches with the expressibility and hardware efficiency of Register-Transfer Level (RTL) design. The language\u2019s concise syntax, matched with a hardware design-friendly execution model, permits a relatively simple toolchain to map high-level code into efficient hardware implementations.<\/jats:p>","DOI":"10.1145\/3656420","type":"journal-article","created":{"date-parts":[[2024,6,20]],"date-time":"2024-06-20T16:27:20Z","timestamp":1718900840000},"page":"1066-1090","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Wavefront Threading Enables Effective High-Level Synthesis"],"prefix":"10.1145","volume":"8","author":[{"ORCID":"https:\/\/orcid.org\/0009-0009-9204-1873","authenticated-orcid":false,"given":"Blake","family":"Pelton","sequence":"first","affiliation":[{"name":"Microsoft, Redmond, USA"}]},{"ORCID":"https:\/\/orcid.org\/0009-0006-8599-0171","authenticated-orcid":false,"given":"Adam","family":"Sapek","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5797-3661","authenticated-orcid":false,"given":"Ken","family":"Eguro","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}]},{"ORCID":"https:\/\/orcid.org\/0009-0002-6504-9078","authenticated-orcid":false,"given":"Daniel","family":"Lo","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2902-2337","authenticated-orcid":false,"given":"Alessandro","family":"Forin","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}]},{"ORCID":"https:\/\/orcid.org\/0009-0006-5339-1297","authenticated-orcid":false,"given":"Matt","family":"Humphrey","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}]},{"ORCID":"https:\/\/orcid.org\/0009-0003-6681-1674","authenticated-orcid":false,"given":"Jinwen","family":"Xi","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}]},{"ORCID":"https:\/\/orcid.org\/0009-0008-1944-4337","authenticated-orcid":false,"given":"David","family":"Cox","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}]},{"ORCID":"https:\/\/orcid.org\/0009-0000-2122-6373","authenticated-orcid":false,"given":"Rajas","family":"Karandikar","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1500-7411","authenticated-orcid":false,"given":"Johannes","family":"de Fine Licht","sequence":"additional","affiliation":[{"name":"ETH Zurich, Zurich, Switzerland"}]},{"ORCID":"https:\/\/orcid.org\/0009-0000-9750-6048","authenticated-orcid":false,"given":"Evgeny","family":"Babin","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1707-4693","authenticated-orcid":false,"given":"Adrian","family":"Caulfield","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}]},{"ORCID":"https:\/\/orcid.org\/0009-0006-6588-6596","authenticated-orcid":false,"given":"Doug","family":"Burger","sequence":"additional","affiliation":[{"name":"Microsoft, Redmond, USA"}]}],"member":"320","published-online":{"date-parts":[[2024,6,20]]},"reference":[{"key":"e_1_3_1_2_2","unstructured":"2023. CIRCT. https:\/\/circt.llvm.org\/. (accessed: 11.8.2023)."},{"key":"e_1_3_1_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/360018.360025"},{"key":"e_1_3_1_4_2","doi-asserted-by":"publisher","unstructured":"Jonathan Bachrach Huy Vo Brian Richards Yunsup Lee Andrew Waterman Rimas Avi\u017eienis John Wawrzynek and Krste Asanovi\u0107. 2012. Chisel: Constructing hardware in a Scala embedded language. In DAC Design Automation Conference 2012. 1212\u20131221. https:\/\/doi.org\/10.1145\/2228360.2228584 10.1145\/2228360.2228584","DOI":"10.1145\/2228360.2228584"},{"key":"e_1_3_1_5_2","doi-asserted-by":"publisher","unstructured":"Mojtaba Bisheh-Niasar Daniel Lo Anjana Parthasarathy Blake Pelton Bharat Pillilli and Bryan Kelly. 2023. PQC Cloudization: Rapid Prototyping of Scalable NTT \/INTT Architecture to Accelerate Kyber. In 2023 IEEE Physical Assurance and Inspection of Electronics (PAINE). 1\u20137. https:\/\/doi.org\/10.1109\/PAINE58317.2023.10318029 10.1109\/PAINE58317.2023.10318029","DOI":"10.1109\/PAINE58317.2023.10318029"},{"key":"e_1_3_1_6_2","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3385965"},{"key":"e_1_3_1_7_2","unstructured":"Cadence Design Systems Inc. 2023. Stratus High-Level Synthesis. https:\/\/www.cadence.com\/en_US\/home\/tools\/digitaldesign-and-signoff\/synthesis\/stratus-high-level-synthesis.html. (accessed: 11.2.2023)."},{"key":"e_1_3_1_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/2514740"},{"key":"e_1_3_1_9_2","volume-title":"Workshop on Languages and Compilers for Parallel Computing","author":"Chamberlain Bradford L","year":"1999","unstructured":"Bradford L Chamberlain, E Christopher Lewis, and Lawrence Snyder. 1999. Array language support for wavefront and pipelined computations. In Workshop on Languages and Compilers for Parallel Computing. Citeseer."},{"key":"e_1_3_1_10_2","doi-asserted-by":"publisher","unstructured":"Jianyi Cheng Lana Josipovi\u0107 George A. Constantinides and John Wickerson. 2022. Dynamic Inter-Block Scheduling for HLS. In 2022 32nd International Conference on Field-Programmable Logic and Applications (FPL). 243\u2013252. https:\/\/doi.org\/10.1109\/FPL57034.2022.00045 10.1109\/FPL57034.2022.00045","DOI":"10.1109\/FPL57034.2022.00045"},{"key":"e_1_3_1_11_2","doi-asserted-by":"publisher","unstructured":"Jianyi Cheng John Wickerson and George A. Constantinides. 2021. Exploiting the Correlation between Dependence Distance and Latency in Loop Pipelining for HLS. In 2021 31st International Conference on Field-Programmable Logic and Applications (FPL). 341\u2013346. https:\/\/doi.org\/10.1109\/FPL53798.2021.00066 10.1109\/FPL53798.2021.00066","DOI":"10.1109\/FPL53798.2021.00066"},{"key":"e_1_3_1_12_2","doi-asserted-by":"publisher","unstructured":"Jianyi Cheng John Wickerson and George A. Constantinides. 2022. Dynamic C-Slow Pipelining for HLS. In 2022 IEEE 30th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM). 1\u201310. https:\/\/doi.org\/10.1109\/FCCM53951.2022.9786096 10.1109\/FCCM53951.2022.9786096","DOI":"10.1109\/FCCM53951.2022.9786096"},{"key":"e_1_3_1_13_2","doi-asserted-by":"publisher","unstructured":"Jongsok Choi Stephen Brown and Jason Anderson. 2013. From software threads to parallel hardware in high-level synthesis for FPGAs. In 2013 International Conference on Field-Programmable Technology (FPT). 270\u2013277. https:\/\/doi.org\/10.1109\/FPT.2013.6718365 10.1109\/FPT.2013.6718365","DOI":"10.1109\/FPT.2013.6718365"},{"key":"e_1_3_1_14_2","doi-asserted-by":"publisher","unstructured":"J. Cong and Zhiru Zhang. 2006. An efficient and versatile scheduling algorithm based on SDC formulation. In 2006 43rd ACM\/IEEE Design Automation Conference. 433\u2013438. https:\/\/doi.org\/10.1145\/1146909.1147025 10.1145\/1146909.1147025","DOI":"10.1145\/1146909.1147025"},{"key":"e_1_3_1_15_2","unstructured":"Intel Corporation. 2023. Nios\u00ae V Processor Reference Manual - Updated for Intel\u00ae Quartus\u00ae Prime Design Suite: 23.3."},{"key":"e_1_3_1_16_2","volume-title":"Proceedings of the International Conference on Engineering of Reconfigurable Systems and Algorithms (ERSA)","author":"Czajkowski Tomasz S","year":"2012","unstructured":"Tomasz S Czajkowski, David Neto, Michael Kinsner, Utku Aydonat, Jason Wong, Dmitry Denisenko, Peter Yiannacouras, John Freeman, Deshanand P Singh, and Stephen D Brown. 2012. OpenCL for FPGAs: Prototyping a compiler. In Proceedings of the International Conference on Engineering of Reconfigurable Systems and Algorithms (ERSA). The World Congress in Computer Science, Computer Engineering, & Applied Computing."},{"key":"e_1_3_1_17_2","doi-asserted-by":"publisher","DOI":"10.1145\/3020078.3021754"},{"key":"e_1_3_1_18_2","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2020.3012866"},{"key":"e_1_3_1_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/24039.24041"},{"key":"e_1_3_1_20_2","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2022.3188136"},{"key":"e_1_3_1_21_2","doi-asserted-by":"publisher","DOI":"10.5555\/26777"},{"key":"e_1_3_1_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/359576.359585"},{"key":"e_1_3_1_23_2","unstructured":"Intel Corporation. 2023. Intel High Level Synthesis Compiler. https:\/\/www.intel.com\/content\/www\/us\/en\/software\/programmable\/quartus-prime\/hls-compiler.html. (accessed: 11.1.2023)."},{"key":"e_1_3_1_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/3126525"},{"key":"e_1_3_1_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/3174243.3174264"},{"key":"e_1_3_1_26_2","doi-asserted-by":"publisher","DOI":"10.1145\/3289602.3293914"},{"key":"e_1_3_1_27_2","unstructured":"Guy Lewis Steele Jr. 1976. LAMBDA: The Ultimate Declarative. (1976) 48. http:\/\/hdl.handle.net\/1721.1\/6091"},{"key":"e_1_3_1_28_2","article-title":"The semantics of a simple language for parallel programming","volume":"74","author":"Kahn Gilles","year":"1974","unstructured":"Gilles Kahn. 1974. The semantics of a simple language for parallel programming, IFIP 74.","journal-title":"IFIP"},{"key":"e_1_3_1_29_2","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192379"},{"key":"e_1_3_1_30_2","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1982.1675922"},{"key":"e_1_3_1_31_2","doi-asserted-by":"publisher","DOI":"10.1109\/12.599898"},{"key":"e_1_3_1_32_2","doi-asserted-by":"publisher","DOI":"10.5555\/538583"},{"key":"e_1_3_1_33_2","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2017.2664067"},{"key":"e_1_3_1_34_2","doi-asserted-by":"publisher","unstructured":"Junyi Liu John Wickerson and George A. Constantinides. 2016. Loop Splitting for Efficient Pipelining in High-Level Synthesis. In 2016 IEEE 24th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM). 72\u201379. https:\/\/doi.org\/10.1109\/FCCM.2016.27 10.1109\/FCCM.2016.27","DOI":"10.1109\/FCCM.2016.27"},{"key":"e_1_3_1_35_2","doi-asserted-by":"publisher","unstructured":"Paolo Mantovani Robert Margelli Davide Giri and Luca P. Carloni. 2020. HL5: A 32-bit RISC-V Processor Designed with High-Level Synthesis. In 2020 IEEE Custom Integrated Circuits Conference (CICC). 1\u20138. https:\/\/doi.org\/10.1109\/CICC48029.2020.9075913 10.1109\/CICC48029.2020.9075913","DOI":"10.1109\/CICC48029.2020.9075913"},{"key":"e_1_3_1_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/2847263.2847268"},{"key":"e_1_3_1_37_2","doi-asserted-by":"publisher","DOI":"10.1145\/364995.365000"},{"key":"e_1_3_1_38_2","doi-asserted-by":"publisher","DOI":"10.1145\/103727.103729"},{"key":"e_1_3_1_39_2","doi-asserted-by":"publisher","unstructured":"Antoine Morvan Steven Derrien and Patrice Quinton. 2011. Efficient nested loop pipelining in high level synthesis using polyhedral bubble insertion. In 2011 International Conference on Field-Programmable Technology. 1\u201310. https:\/\/doi.org\/10.1109\/FPT.2011.6132715 10.1109\/FPT.2011.6132715","DOI":"10.1109\/FPT.2011.6132715"},{"key":"e_1_3_1_40_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-01764-3"},{"key":"e_1_3_1_41_2","doi-asserted-by":"publisher","DOI":"10.1145\/1365490.1365500"},{"key":"e_1_3_1_42_2","doi-asserted-by":"publisher","DOI":"10.1145\/3385412.3385974"},{"key":"e_1_3_1_43_2","doi-asserted-by":"publisher","DOI":"10.1145\/3591234"},{"key":"e_1_3_1_44_2","doi-asserted-by":"publisher","DOI":"10.1145\/3445814.3446712"},{"key":"e_1_3_1_45_2","doi-asserted-by":"publisher","unstructured":"R. Nikhil. 2004. Bluespec System Verilog: efficient correct RTL from high level specifications. In Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design 2004. MEMOCODE \u201904. 69\u201370. https:\/\/doi.org\/10.1109\/MEMCOD.2004.1459818 10.1109\/MEMCOD.2004.1459818","DOI":"10.1109\/MEMCOD.2004.1459818"},{"key":"e_1_3_1_46_2","doi-asserted-by":"publisher","unstructured":"Nadesh Ramanathan George A. Constantinides and John Wickerson. 2018. Concurrency-Aware Thread Scheduling for High-Level Synthesis. In 2018 IEEE 26th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM). 101\u2013108. https:\/\/doi.org\/10.1109\/FCCM.2018.00025 10.1109\/FCCM.2018.00025","DOI":"10.1109\/FCCM.2018.00025"},{"key":"e_1_3_1_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/3020078.3021733"},{"key":"e_1_3_1_48_2","doi-asserted-by":"publisher","DOI":"10.1145\/1014192.802449"},{"key":"e_1_3_1_49_2","doi-asserted-by":"publisher","DOI":"10.1145\/3373376.3378523"},{"key":"e_1_3_1_50_2","unstructured":"Siemens EDA. 2023. Catapult High-Level Synthesis and Verification. https:\/\/eda.sw.siemens.com\/en-US\/ic\/catapult-high-level-synthesis\/. (accessed: 11.1.2023)."},{"key":"e_1_3_1_51_2","unstructured":"Guy Lewis Sussman Steele Jr. and Gerald Jay. 1976. Lambda: The Ultimate Imperative. (1976) 41. http:\/\/hdl.handle.net\/1721.1\/5790"},{"key":"e_1_3_1_52_2","volume-title":"The Design and Evolution of C++","author":"Stroustrup Bjarne","year":"1994","unstructured":"Bjarne Stroustrup. 1994. The Design and Evolution of C++. Addison-Wesley Professional."},{"key":"e_1_3_1_53_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF01407876"},{"key":"e_1_3_1_54_2","unstructured":"Xilinx Inc. 2023. Abstract Parallel Programming Model for HLS. https:\/\/docs.xilinx.com\/r\/en-US\/ug1399-vitishls\/Abstract-Parallel-Programming-Model-for-HLS. (accessed: 11.1.2023)."},{"key":"e_1_3_1_55_2","unstructured":"Xilinx Inc. 2023. Vitis HLS. https:\/\/www.xilinx.com\/products\/design-tools\/vitis\/vitis-hls.html. (accessed: 11.1.2023)."},{"key":"e_1_3_1_56_2","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523455"},{"key":"e_1_3_1_57_2","doi-asserted-by":"publisher","unstructured":"Zhiru Zhang and Bin Liu. 2013. SDC-based modulo scheduling for pipeline synthesis. In 2013 IEEE\/ACM International Conference on Computer-Aided Design (ICCAD). 211\u2013218. https:\/\/doi.org\/10.1109\/ICCAD.2013.6691121 10.1109\/ICCAD.2013.6691121","DOI":"10.1109\/ICCAD.2013.6691121"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3656420","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3656420","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,7,4]],"date-time":"2025-07-04T20:44:21Z","timestamp":1751661861000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3656420"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,6,20]]},"references-count":56,"journal-issue":{"issue":"PLDI","published-print":{"date-parts":[[2024,6,20]]}},"alternative-id":["10.1145\/3656420"],"URL":"https:\/\/doi.org\/10.1145\/3656420","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,6,20]]},"assertion":[{"value":"2024-06-20","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}