  Latency-insensitive design mitigates increasing interconnect delay and
enables productive component reuse in complex digital systems. This design
style has been adopted in high-level design flows because untimed functional
blocks connected through latency-insensitive interfaces provide a natural
communication abstraction. However, latency-insensitive design with high-level
languages also introduces a unique set of verification challenges that
jeopardize functional correctness. In particular, bugs due to invalid
consumption of inputs and deadlocks can be difficult to detect and debug with
dynamic simulation methods. To tackle these two classes of bugs, we propose
formal model checking methods to guarantee that a high-level
latency-insensitive design is unaffected by invalid input data and is free of
deadlock. We develop a well-structured verification wrapper for each property
to automatically construct the corresponding formal model for checking. Our
experiments demonstrate that the formal checks are effective in realistic bug
scenarios from high-level designs.
