# Using ASCII waveforms to test hardware designs

DevFeed: [Using ASCII waveforms to test hardware designs](<https://devfeed.tech/articles/using-ascii-waveforms-to-test-hardware-designs-20220.md>)

Original publisher: [Read original article](<https://blog.janestreet.com/using-ascii-waveforms-to-test-hardware-designs/>)

Author: Andrew Ray

Published: 2020-06-01T00:00:00Z

Content type: article

Language: en

Sources: [Jane Street](<https://devfeed.tech/sources/jane-street.md>)

Topics: [Hardware](<https://devfeed.tech/topics/hardware.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [OCaml](<https://devfeed.tech/topics/ocaml.md>), [Simulation](<https://devfeed.tech/topics/simulation.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [ocaml](<https://devfeed.tech/tags/ocaml.md>), [simulator](<https://devfeed.tech/tags/simulator.md>), [software](<https://devfeed.tech/tags/software.md>), [testing](<https://devfeed.tech/tags/testing.md>)

## AI overview

The article explains how Jane Street uses expect tests with ASCII waveforms to test hardware designs. It describes Hardcaml, an OCaml-based hardware design environment with cycle-accurate simulation, and shows how waveform output can be captured as text for repeatable tests and diffs.

## Source excerpt

At Jane Street, an "expect test" is a test where you don't manually write the output you'd like to check your code against - instead, this output is captured automatically and inserted by a tool into the testing code itself. If further runs produce different output, the test fails, and you're presented with the diff.