prjxray/minitests/timing
Jake Mercer bf11f43390 FORMAT - Run `make format`
Changes after running `make format`.  Future commits which add
whitespace should be caught by CI at the PR stage.

Signed-off-by: Jake Mercer <jake.mercer@civica.co.uk>
2019-10-22 19:35:24 +01:00
..
Makefile Add timing model minitest. 2019-05-29 14:55:04 -07:00
README.md docs: fixed some READMEs and removed empty .md file generation 2019-09-25 09:54:28 +02:00
basys3_demo.v Add timing model minitest. 2019-05-29 14:55:04 -07:00
clean_json5.py Add timing model minitest. 2019-05-29 14:55:04 -07:00
create_timing_worksheet_db.py Add timing model minitest. 2019-05-29 14:55:04 -07:00
picorv32.v Add timing model minitest. 2019-05-29 14:55:04 -07:00
picosoc_noflash.v FORMAT - Run `make format` 2019-10-22 19:35:24 +01:00
progmem.v Add timing model minitest. 2019-05-29 14:55:04 -07:00
runme.tcl Add timing model minitest. 2019-05-29 14:55:04 -07:00
simpleuart.v Add timing model minitest. 2019-05-29 14:55:04 -07:00
top_aff.v Add timing model minitest. 2019-05-29 14:55:04 -07:00
top_bff.v Add timing model minitest. 2019-05-29 14:55:04 -07:00
top_cff.v Add timing model minitest. 2019-05-29 14:55:04 -07:00
top_counter.v Add timing model minitest. 2019-05-29 14:55:04 -07:00
top_dff.v Add timing model minitest. 2019-05-29 14:55:04 -07:00
top_dff2.v Add timing model minitest. 2019-05-29 14:55:04 -07:00
top_dff_inter.v Add timing model minitest. 2019-05-29 14:55:04 -07:00
top_dff_slicem.v Add timing model minitest. 2019-05-29 14:55:04 -07:00

README.md

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