Timing minitest

This minitest uses Vivado to compile a design and extracts the relevant timing metadata from the design, e.g. what are the nets and how was the design routed.

For each clock path, the final timing is provided for each of the 4 corners of analysis.

From the timing metadata, create_timing_worksheet_db.py creates a worksheet breaking down the interconnect timing calculation and generating a final comparision between the reduced model implemented in prjxray and the Vivado timing results.

Model quality

The prjxray timing handles most nets +/- 1.5% delay. The large exception to this is clock nets, which appear to use a table lookup that is not understood at this time.

Running the model

The provided Makefile will by default compile all examples. It a specific design family is desired, the family name can be provided. If a specific design within a family is desired, use <family name>_<iter>.

Example:

# Build all variants of the DFF loopback test
make dff
# Build only DESIGN_NAME=dff ITER=63
make dff_63