Figure 1. Data Flow Diagram
-t option. The lexer reads in the file and finds the name specified after the Verilog keyword module. If this module matches the top-level module name, the contents of the module are parsed. If the module name does not match the top-level module name, the lexer takes note of the found module and the filename in which it found the module and skips the body of the module until it encounters the endmodule keyword. If there are any more modules specified in the given file, these are parsed in the same fashion. If the end of the file has been reached and no module has been found that is needed, the Verilog file is placed at the end of the file queue and the next file at the head of the queue is read in by the lexer.
<unique_numeric_ID_for_construct> <information_about_construct_separated_by_spaces> db_read function of the associated construct. The construct then takes the initiative of decoding the rest of the line and storing its contents into the same set of lists and trees that the Verilog parser stores its information into. The end result of parsing in the CDD file is the same as parsing in a design by the Verilog parser. Once into memory, the information can be merged, simulated, or computed on by the report generator.
db_write function located in db.c calls each of the construct's db_write functions which, in turn, output their information to the CDD file in their own format. After each of the stored constructs have written their information to the CDD file, it is closed by the db_write function. The end result is a CDD file that is in the same format as the CDD file that was read in by the CDD parser.
1.3.4