Code coverage is a measure of how well the RTL code has been exercised by the test bench. Code coverage is automatically extracted by the simulator when enabled. Vivado Simulator currently supports four types of code coverage, that is, line, branch, condition, and toggle. When you enable code coverage for any of the code coverage types, the tool automatically generates the code coverage database. To view the coverage of the design, Vivado simulator provides a standalone executable named as xcrg (Xilinx Coverage Report Generator) that can be used to generate coverage reports by reading the coverage database.