15 

 

10   The merge Command

10.1  Usage

The merge command is initiated with the following call:

covered merge [<options>] <existing_CDD> <CDD_to_merge>

The existing_CDD specifier relates to any existing CDD. If the -o option is not specified (see below for details), this file will be replaced with the merged CDD created by the merge. This is important to remember since merging is an irreversible operation (apart from the generating a brand-new CDD from the design and dumpfile using the score command).

The CDD_to_merge specifier relates to any existing CDD that is not the existing_CDD. Though it is not illegal to merge the same CDD to itself, the result is the same as the original CDD. Note that the CDD_to_merge is a file which is guaranteed to not be modified by the merge command. The contents of the file are literally read-only by Covered and are merged into the information contained in the existing_CDD.

10.2  Options

The following table lists the options available for the merge command.

 

Options to merge Command
Option Description
-o <filename> Name of CDD to write merged coverage information to (if not specified, the <existing_CDD> is overwritten with merged CDD).
-h Outputs usage information for the merge command

 

10.3  Merging Three or More CDDs

Note that it is currently only possible to merge two CDDs at a time per merge command, the output CDD of which may be stored in the first of the two CDDs or a new CDD.

To merge three or more CDDs, it is recommended that one uniquely named CDD file (possibly merged.cov or something like it) be created by an initial merge command (using the -o option -- see below). Then all subsequent merge commands would specify the merged CDD file first followed by the next CDD to merge. This would create one CDD file containing the merged contents of all CDDs created for the specified design.

An example of how to merge four CDDs called "run1.cov", "run2.cov", "run3.cov" and "run4.cov" into a resulting CDD called "merged.cov" is as follows:

Example 1

> ls
run1.cov
run2.cov
run3.cov
run4.cov

> covered merge -o merged.cov run1.cov run2.cov

> covered merge merged.cov run3.cov

> covered merge merged.cov run4.cov

Another possible way to merge these files would be to use a tree-structured merge algorithm that uses intermediate CDDs to form the final CDD. This method will use fewer merge calls but will take slightly more disk space.

Example 2

> covered merge -o temp1.cov run1.cov run2.cov

> covered merge -o temp2.cov run3.cov run4.cov

> covered merge -o merged.cov temp1.cov temp2.cov

There are, obviously, many more ways to generate a merged report but are too numerous to list here. The examples above both achieve the same result in a fairly optimal manner and provide a good understanding of how to use the merge command on a large number of CDDs.