|
1 |
| -#Tatum: A Fast, Flexible Static Timing Analysis (STA) Engine for Digital Circuits |
2 |
| -[](https://travis-ci.org/kmurray/tatum) |
| 1 | +# Tatum: A Fast, Flexible Static Timing Analysis (STA) Engine for Digital Circuits |
3 | 2 |
|
4 |
| -##Overview |
5 |
| -Tatum is primarily a library (`libtatum`) which provides a fast and flexible Static Timing Analysis (STA) engine for digital circuits. |
| 3 | +[](https://travis-ci.org/kmurray/tatum) |
6 | 4 |
|
7 |
| -Tatum is a block-based timing analyzer suitable for integration with Computer-Aided Design (CAD) tools used to optimize and implement digital circuits. |
8 |
| -Tatum supports both setup (max) and hold (min) analysis, clock skew and multiple clocks. |
| 5 | +## Overview |
| 6 | +Tatum is a block-based Static Timing Analysis (STA) engine suitable for integration with Computer-Aided Design (CAD) tools, which analyze, implement and optimize digital circuits. |
| 7 | +Tatum supports both setup (max-delay) and hold (min-delay) analysis, clock skew, multiple clocks and a variety of timing exceptions. |
9 | 8 |
|
| 9 | +Tatum is provided as a library (`libtatum`) which can be easily integrated into the host application. |
10 | 10 | Tatum operates on an abstract *timing graph* constructed by the host application, and can be configured to use an application defined delay calculator.
|
11 | 11 |
|
12 | 12 | Tatum is optimized for high performance, as required by optimizing CAD tools.
|
13 | 13 | In particular:
|
14 |
| - * Tatum performs only a single set of graph traversals to calculate timing information for all clocks. |
| 14 | + * Tatum performs only a *single* set of graph traversals to calculate timing information for all clocks and analyses (setup and hold). |
15 | 15 | * Tatum's data structures are cache optimized
|
16 | 16 | * Tatum supports parallel analysis using multiple CPU cores
|
17 | 17 |
|
18 |
| -##Why was Tatum created? |
19 |
| -I had need for a high performance, flexible STA engine for my PhD research into FPGA architecture and CAD tools. |
| 18 | +## How to Cite |
| 19 | +If your work uses Tatum please cite the following as a general citation: |
| 20 | + |
| 21 | +K. E. Murray and V. Betz, "Tatum: Parallel Timing Analysis for Faster Design Cycles and Improved Optimization", *IEEE International Conference on Field-Programmable Technology (FPT)*, 2018 |
| 22 | + |
| 23 | +**Bibtex:** |
| 24 | +``` |
| 25 | +@inproceedings{c:tatum, |
| 26 | + author = {Murray, Kevin E. and Betz, Vaughn}, |
| 27 | + title = {Tatum: Parallel Timing Analysis for Faster Design Cycles and Improved Optimization}, |
| 28 | + booktitle = {IEEE International Conference on Field-Programmable Technology (FPT)}, |
| 29 | + year = {2018} |
| 30 | +} |
| 31 | +``` |
| 32 | + |
| 33 | +## Documentation |
| 34 | +Comming soon. |
| 35 | + |
| 36 | +## Download |
| 37 | +Comming soon. |
| 38 | + |
| 39 | +## Projects using Tatum |
| 40 | + |
| 41 | +Tatum is designed to be re-usable in a variety of appliations. |
| 42 | + |
| 43 | +Some of the known uses are: |
| 44 | + * The [Verilog to Routing (VTR)](https://verilogtorouting.org) project for Field-Programmable Gate Array (FPGA) Architecture and CAD research. Tatum is used as the STA engine in the VPR placement and routing tool. |
| 45 | + * The [CGRA-ME](http://cgra-me.ece.utoronto.ca/) framework for Coarse-Grained Reconfigurable Array (CGRA) Architecture research. |
| 46 | + |
| 47 | +*If your project is using Tatum please let us know!* |
| 48 | + |
| 49 | +## History |
| 50 | + |
| 51 | +### Why was Tatum created? |
| 52 | +I had need for a high performance, flexible STA engine for my research into FPGA architecture and CAD tools. |
20 | 53 | I could find no suitable open source STA engines, and wrote my own.
|
21 | 54 |
|
22 |
| -##Origin of the Name |
| 55 | +### Name Origin |
23 | 56 | A *tatum* is a unit of time used in the computational analysis of music \[[1]\], named after Jazz pianist [Art Tatum](https://en.wikipedia.org/wiki/Art_Tatum).
|
24 | 57 |
|
25 | 58 | [1]: http://web.media.mit.edu/~tristan/phd/dissertation/chapter3.html#x1-390003.4.3
|
0 commit comments