Definition
Data-flow coverage is a coverage measurement approach that quantifies how thoroughly a system, test suite, or validation campaign exercises the movement of data between producers and consumers. Rather than counting executed statements, branches, or paths (as in statement, branch, or path coverage), data-flow coverage observes whether the data dependencies implied by the design or program have actually been exercised.
It is therefore closely related to, but distinct from, coverage metrics in general — data-flow coverage is one specific metric within that broader family.
Use in SoC Post-Silicon Validation
In System-on-Chip (SoC) post-silicon validation, standard pre-silicon code-coverage metrics such as statement, branch, and path coverage are not directly applicable because the silicon implements hardware logic rather than the original RTL code. Furthermore, capturing coverage information requires additional on-chip instrumentation, which adds logic and cost overhead [chunk:94dda0b8-2b6d-4d90-98cb-85b8199fd03c].
To address this, a data-flow-based coverage metric has been proposed that measures the data streams between interconnected nodes on the chip. The rationale is that cross-functional validation tests invariably force data flow between functional blocks, so generalizing functionality to the flow of data among on-chip units provides a quantifiable measure of validation effectiveness [chunk:94dda0b8-2b6d-4d90-98cb-85b8199fd03c].
A representative example is direct-memory-access (DMA): a DMA transfer moves data from memory to a peripheral connected via USB, exercising a clear inter-block data path that can be observed and counted toward coverage [chunk:94dda0b8-2b6d-4d90-98cb-85b8199fd03c].
Because successive SoCs typically differ in only a few features due to shortened market windows, validation effort is increasingly focused on engineering change orders (ECOs) rather than full end-to-end validation. Quantifying coverage in this way is expected to help re-focus validation efforts on ECOs, reducing cost and shortening the SoC development cycle [chunk:0733875e-fc6f-430c-9809-d89d8ed75cf2].
Unified Coverage Methodology
The data-flow coverage metric is the foundation of the proposed unified coverage methodology for post-silicon validation. The methodology has two main components:
- On-chip Data Capturing (ODC) — an IP block that connects to the bus of interest and captures transactions, communicating them externally.
- Off-chip Coverage Analyzer (OCA) — software that processes the captured data using a protocol definition file, computes achieved coverage from supplied coverage targets, and presents the results (including missing data-flows) through an intuitive GUI so that validation engineers can refine tests.
The ODC can be prototyped on an FPGA using existing technology such as the Xilinx ChipscopePro on-chip Integrated Logic Analyzer (ILA) core, and communicates with the OCA over JTAG. The OCA is reusable across protocols by swapping the protocol definition file, while the ODC must be tailored to the bus protocols used in the SoC [chunk:94dda0b8-2b6d-4d90-98cb-85b8199fd03c].
Use in Software Data-Flow Testing
In software testing, data-flow testing (DFT) targets potential data-interaction anomalies by focusing on the points at which variables receive values and the points at which those values are used; such test objectives are referred to as def-use pairs. Practical DFT remains difficult due to its complexity, and recent work has explored symbolic execution guided by a novel path-exploration strategy, combined with software model checking cast as reachability checking, to efficiently generate tests that cover def-use pairs [arxiv:1803.10431v2].
Use in Spectrum-Based Fault Localization
Spectrum-based fault localization (SFL) traditionally relies on control-flow spectra (e.g., executed lines) to rank program elements by suspiciousness. Replacing or augmenting these with data-flow spectra — for instance, based on definition-use associations (DUAs) — provides more detailed execution information. Empirical evaluation on 163 faults across five real-world open-source programs (468 to 4,130 test cases each) found:
- Up to 50% more faults ranked in the top-15 positions when using data-flow spectra compared with control-flow spectra.
- Most SFL ranking metrics showed better effectiveness with data-flow spectra when inspecting up to the top-40 positions.
- Data-flow spectra also identify suspicious variables, which can aid developer debugging.
- The execution cost of gathering data-flow spectra is higher: from 22 seconds up to under 9 minutes, with an average overhead of 353% versus 102% for control-flow — described as not prohibitive [arxiv:1906.11715v1].
Outlook
Further research is required to innovate coverage metrics that are specifically relevant to post-silicon validation, building on the data-flow-based coverage proposal, in order to reduce post-silicon validation cycles and improve validation effectiveness [chunk:0733875e-fc6f-430c-9809-d89d8ed75cf2].