Quartus® II Tcl Example: Report Panel Overview



It is important to understand the structure of the Quartus II report database if you use commands in the ::quartus::report package to extract data from it, or add data to it. This page describes the structure and naming conventions of report panels in the report database. The Compilation Report in the Quartus II GUI provides a graphical view of data in the database.

Panel Hierarchy & Names

Report panels are arranged in a hierarchy of folders. Levels of folder hierarchy are delimited with double vertical bar (pipe) characters, like this: | |. Every report panel has a unique name, which is its full "path" in the folder hierarchy. For example, the Resource Usage Summary panel in the Resource Section folder of the Fitter folder has this name: Fitter | | Resource Section | | Resource Usage Summary.

If you use version 4.2 of the Quartus II software, you must be aware that some of the names shown in the Compilation Report are shorter forms of the actual panel names. For example, the name of the Summary panel in the Analysis & Synthesis folder is actually Analysis & Synthesis | | Analysis & Synthesis Summary. To ensure you use the correct panel name, you can use this code to print out all the available panel names in an open project.

load_package report

proc print_panel_names { } {

    foreach panel_name [get_report_panel_names] {
        post_message $panel_name

Panel Structure

Report panels are tables, with rows, columns, and cells. Rows are numbered starting from zero. Row zero usually contains column headings. Columns are numbered starting from zero, but this does not include the column of row numbers (this column does not exist in all report panels).

Data Access

You can access data in the report database one row at a time. Beginning with version 4.1 of the Quartus II software (version 2.0 of the ::quartus::report package), you can also access data in a specific cell. There are also new commands to refer to panels, rows, and columns with integer IDs. Using integer IDs instead of names speeds up data access.