Skip to content

Commit 55e8457

Browse files
committed
Squashed 'libs/EXTERNAL/libtatum/' changes from f15f47439..06d8ad3b1
06d8ad3b1 Fix compilation warning with gcc-8 ed38004d2 More README improvements 9eaaac0d6 More README tweaks 9cbcff6bf Update README b5cfc22da Set theme jekyll-theme-minimal git-subtree-dir: libs/EXTERNAL/libtatum git-subtree-split: 06d8ad3b1e881b9ebe4760f153ea6c37c4af255c
1 parent d14e705 commit 55e8457

File tree

3 files changed

+45
-11
lines changed

3 files changed

+45
-11
lines changed

README.md

Lines changed: 43 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,58 @@
1-
#Tatum: A Fast, Flexible Static Timing Analysis (STA) Engine for Digital Circuits
2-
[![Build Status](https://travis-ci.org/kmurray/tatum.svg?branch=master)](https://travis-ci.org/kmurray/tatum)
1+
# Tatum: A Fast, Flexible Static Timing Analysis (STA) Engine for Digital Circuits
32

4-
##Overview
5-
Tatum is primarily a library (`libtatum`) which provides a fast and flexible Static Timing Analysis (STA) engine for digital circuits.
3+
[![Build Status](https://travis-ci.org/kmurray/tatum.svg?branch=master)](https://travis-ci.org/kmurray/tatum)
64

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.
98

9+
Tatum is provided as a library (`libtatum`) which can be easily integrated into the host application.
1010
Tatum operates on an abstract *timing graph* constructed by the host application, and can be configured to use an application defined delay calculator.
1111

1212
Tatum is optimized for high performance, as required by optimizing CAD tools.
1313
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).
1515
* Tatum's data structures are cache optimized
1616
* Tatum supports parallel analysis using multiple CPU cores
1717

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.
2053
I could find no suitable open source STA engines, and wrote my own.
2154

22-
##Origin of the Name
55+
### Name Origin
2356
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).
2457

2558
[1]: http://web.media.mit.edu/~tristan/phd/dissertation/chapter3.html#x1-390003.4.3

_config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
theme: jekyll-theme-minimal

libtatum/tatum/util/tatum_strong_id.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ bool operator<(const StrongId<tag,T,sentinel>& lhs, const StrongId<tag,T,sentine
223223
namespace std {
224224
template<typename tag, typename T, T sentinel>
225225
struct hash<tatum::util::StrongId<tag,T,sentinel>> {
226-
std::size_t operator()(const tatum::util::StrongId<tag,T,sentinel> k) const {
226+
std::size_t operator()(const tatum::util::StrongId<tag,T,sentinel> k) const noexcept {
227227
return std::hash<T>()(k.id_); //Hash with the underlying type
228228
}
229229
};

0 commit comments

Comments
 (0)