{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,1]],"date-time":"2026-02-01T01:40:45Z","timestamp":1769910045969,"version":"3.49.0"},"publisher-location":"Cham","reference-count":29,"publisher":"Springer Nature Switzerland","isbn-type":[{"value":"9783031986840","type":"print"},{"value":"9783031986857","type":"electronic"}],"license":[{"start":{"date-parts":[[2025,1,1]],"date-time":"2025-01-01T00:00:00Z","timestamp":1735689600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2025,7,23]],"date-time":"2025-07-23T00:00:00Z","timestamp":1753228800000},"content-version":"vor","delay-in-days":203,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2025]]},"abstract":"<jats:title>Abstract<\/jats:title>\n          <jats:p>The waveform viewer is one of the most important tools in a hardware engineer\u2019s toolbox. It is the main interface used to track down design bugs found by simulation or formal verification. In this paper, we present Surfer, a modern waveform viewer designed to integrate with the broader hardware design ecosystem. It supports translation from bit vectors to semantically meaningful values, integration with simulation and verification tools, and lays the groundwork for interactive simulation in the open-source ecosystem.<\/jats:p>","DOI":"10.1007\/978-3-031-98685-7_19","type":"book-chapter","created":{"date-parts":[[2025,7,22]],"date-time":"2025-07-22T03:32:53Z","timestamp":1753155173000},"page":"392-404","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":3,"title":["Surfer \u2014 An Extensible Waveform Viewer"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-7089-9697","authenticated-orcid":false,"given":"Frans","family":"Skarman","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2571-1058","authenticated-orcid":false,"given":"Lucas","family":"Klemmer","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1490-6175","authenticated-orcid":false,"given":"Daniel","family":"Gro\u00dfe","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3470-3911","authenticated-orcid":false,"given":"Oscar","family":"Gustafsson","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0003-0942-7070","authenticated-orcid":false,"given":"Kevin","family":"Laeufer","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2025,7,23]]},"reference":[{"key":"19_CR1","unstructured":"Amaranth contributors: Amaranth HDL (2022). https:\/\/github.com\/amaranth-lang\/amaranth"},{"key":"19_CR2","doi-asserted-by":"publisher","unstructured":"Baaij, C.: Digital circuits in ClaSH. PhD. Thesis, University of Twente (Jan 2015). https:\/\/doi.org\/10.3990\/1.9789036538039","DOI":"10.3990\/1.9789036538039"},{"key":"19_CR3","doi-asserted-by":"publisher","unstructured":"Bachrach, J., et al.: Chisel: constructing hardware in a Scala embedded language. In: Proc. Des. Automat. Conf. pp. 1212\u20131221 (Jun 2012). https:\/\/doi.org\/10.1145\/2228360.2228584","DOI":"10.1145\/2228360.2228584"},{"key":"19_CR4","unstructured":"Basu, S.: Rust as a hardware description language. In: Workshop on Languages, Tools, and Techniques for Accelerator Design (2024)"},{"key":"19_CR5","unstructured":"Basu, S.: RHDL: rust as a hardware description language. In: Workshop on Languages, Tools, and Techniques for Accelerator Design (LATTE) (Apr 2025)"},{"key":"19_CR6","unstructured":"Behl, R.: QuickSilicon. https:\/\/quicksilicon.in\/"},{"key":"19_CR7","unstructured":"Catherine \u201cWhitequark\u201d: CXXRTL debug server concepts. https:\/\/cxxrtl.org\/protocol.html"},{"key":"19_CR8","unstructured":"Catherine \u201cWhitequark\u201d: YoWASP - unofficial WebAssembly-based packages for Yosys, nextpnr, and more. https:\/\/yowasp.org\/"},{"key":"19_CR9","doi-asserted-by":"publisher","unstructured":"Dobis, A., et al.: ChiselVerify: an open-source hardware verification library for Chisel and Scala. In: Proceedings of Nordic Circuits and Systems Conference, pp.\u00a01\u20137. IEEE (Oct 2021). https:\/\/doi.org\/10.1109\/norcas53631.2021.9599869","DOI":"10.1109\/norcas53631.2021.9599869"},{"key":"19_CR10","unstructured":"GTKWave contributors: GTKWave. https:\/\/gtkwave.sourceforge.net\/"},{"key":"19_CR11","unstructured":"Kemmerer, J.: PipelineC: easy open-source hardware description between RTL and HLS. In: Proceedings of Workshop Open-Source EDA Technology (2022). https:\/\/woset-workshop.github.io\/PDFs\/2022\/17-Kemmerer-poster.pdf"},{"key":"19_CR12","unstructured":"Klemmer, L., Gro\u00dfe, D.: WSVA: a SystemVerilog assertion to WAL compiler. In: Workshop on Open-Source Design Automation (2024). https:\/\/ics.jku.at\/files\/2024OSDA_WSVA.pdf"},{"key":"19_CR13","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-83093-8","author":"L Klemmer","year":"2025","unstructured":"Klemmer, L., Gro\u00dfe, D.: Versatile hardware analysis techniques - from waveform-based analysis to formal verification. Springer (2025). https:\/\/doi.org\/10.1007\/978-3-031-83093-8","journal-title":"Springer"},{"key":"19_CR14","doi-asserted-by":"publisher","unstructured":"Klemmer, L., Gro\u00dfe, D.: WAVING goodbye to manual waveform analysis in HDL design with WAL. IEEE Trans. Comput.-Aided Design Integr. Circuits Syst. 43(10), 3198\u20133211 (2024). https:\/\/doi.org\/10.1109\/tcad.2024.3387312","DOI":"10.1109\/tcad.2024.3387312"},{"key":"19_CR15","unstructured":"Klemmer, L., Skarman, F., Gustafsson, O., Gro\u00dfe, D.: Surfer: a waveform viewer as dynamic as RISC-V. In: RISC-V Summit Europe (Jun 2024). https:\/\/ics.jku.at\/files\/2024RISCVSummit_Surfer.pdf"},{"key":"19_CR16","unstructured":"Lefebvre, S.: Silice (Nov 2022). https:\/\/github.com\/sylefeb\/Silice\/tree\/5003ec72"},{"key":"19_CR17","unstructured":"Lramseyer: VaporView. https:\/\/github.com\/Lramseyer\/vaporview"},{"key":"19_CR18","unstructured":"Lubis EDA: Lubis EDA. https:\/\/lubis-eda.com\/"},{"key":"19_CR19","doi-asserted-by":"publisher","unstructured":"Meloni, R., Hofstee, H.P., Al-Ars, Z.: Tywaves: a typed waveform viewer for Chisel. In: Proceedings of Nordic Circuits and Systems Conference, pp.\u00a01\u20136. IEEE (Oct 2024). https:\/\/doi.org\/10.1109\/norcas64408.2024.10752465","DOI":"10.1109\/norcas64408.2024.10752465"},{"key":"19_CR20","doi-asserted-by":"crossref","unstructured":"Nigam, R., de\u00a0Amorim, P.H.A., Sampson, A.: Modular hardware design with timeline types. Proc. ACM Program. Lang. (PLDI) (2023)","DOI":"10.1145\/3591234"},{"key":"19_CR21","doi-asserted-by":"publisher","unstructured":"Nikhil, R.: Bluespec SystemVerilog: efficient, correct RTL from high-level specifications. In: Proc ACM\/IEEE International Conference on Formal Methods and Models for Co-Design, pp. 69\u201370. IEEE (2004). https:\/\/doi.org\/10.1109\/memcod.2004.1459818","DOI":"10.1109\/memcod.2004.1459818"},{"key":"19_CR22","unstructured":"Redwood EDA: Makerchip. http:\/\/makerchip.com\/"},{"key":"19_CR23","unstructured":"Redwood EDA: TL-Verilog (Oct 2022). https:\/\/web.archive.org\/web\/20221006080731\/https:\/\/www.redwoodeda.com\/tl-verilog"},{"key":"19_CR24","unstructured":"SiLogy Technologies: Silogy. https:\/\/silogy.io\/"},{"key":"19_CR25","unstructured":"Skarman, F., Gustafsson, O.: Spade: an expression-based HDL with pipelines. In: Proceedings of Workshop on Open-Source Desing Automation (Apr 2023)"},{"key":"19_CR26","unstructured":"SpinalHDL contributors: SpinalHDL (2022). https:\/\/github.com\/SpinalHDL\/SpinalHDL"},{"key":"19_CR27","unstructured":"TerosHDL: TerosHDL - an open source toolbox for ASIC\/FPGA (Oct 2024). https:\/\/terostechnology.github.io\/terosHDLdoc\/"},{"key":"19_CR28","unstructured":"Van Hirtum, L., Plessl, C.: Latency counting in the SUS language. In: Workshop on Languages, Tools, and Techniques for Accelerator Design (2024). https:\/\/capra.cs.cornell.edu\/latte24\/paper\/4.pdf"},{"issue":"2","key":"19_CR29","doi-asserted-by":"publisher","first-page":"20","DOI":"10.1109\/mssc.2024.3381097","volume":"16","author":"M Venn","year":"2024","unstructured":"Venn, M.: Tiny Tapeout: a shared silicon tape out platform accessible to everyone. IEEE Solid-State Circuits Mag. 16(2), 20\u201329 (2024). https:\/\/doi.org\/10.1109\/mssc.2024.3381097","journal-title":"IEEE Solid-State Circuits Mag."}],"container-title":["Lecture Notes in Computer Science","Computer Aided Verification"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-98685-7_19","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,10]],"date-time":"2025-10-10T08:54:32Z","timestamp":1760086472000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-98685-7_19"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025]]},"ISBN":["9783031986840","9783031986857"],"references-count":29,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-98685-7_19","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025]]},"assertion":[{"value":"23 July 2025","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"CAV","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Computer Aided Verification","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Zagreb","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Croatia","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2025","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"21 July 2025","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"25 July 2025","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"37","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"cav2025","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/conferences.i-cav.org\/2025\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}