Functional coverage is a user defined metric that measures the extent to which the design specification, as enumerated by features in the test plan, was exercised. It can be used to measure whether interesting scenarios, corner cases, specification invariants, or other applicable design conditions—captured as features of the test plan—have been observed, validated, and tested.
The Vivado® simulator supports functional coverage. If your design contains any functional coverage statement, the tool will generate a database (coverage database). To view coverage database, Vivado simulator provides a utility named as xcrg (Xilinx Coverage Report Generator). Refer to the Vivado Design Suite User Guide: Logic Simulation (UG900) for more information on functional coverage and xcrg.
In the present example design, you will add a functional coverage code to view the utility of xcrg.