Comments (4)
It's the timing constraint file that you must define yourself. You can either search for Synopsys' manual or read the book Constraining Designs for Synthesis and Timing Analysis.
from opentimer.
Hmmm, I wrote my own script in the end https://github.com/hughperkins/VeriGPU/blob/main/verigpu/timing.py Seemed easier than figuring out how to write an sdc file :) Not sure if I'm missing anything from my script that opentimer handles, or handles better? My script estimates both maximum propagation delay, as a ratio of nand gate units; and area, also as a ratio of nand gate units.
from opentimer.
I think your understanding is wrong.
The SDC file is the constraint of timing. For example, I want my circuit to run at 100MHz, then I can define a clock in the SDC file of 100MHz and let the compiler (yosys
or some other things) optimize the circuit to run at 100MHz. With the resulting netlist and the SDC, the STA tools (like OpenTimer) can check if your circuit meets such requirements.
If you cannot provide an SDC file to the STA tool, it could not perform such analysis because it cannot infer your timing paths.
Just let me show a simple example of defining the clock clk
in 100MHz. You can pick it up and try to expand yourself with the manuals and STA books. By the way, the SDC format is just a subset of the Tcl language.
create_clock -period 10 [get_ports {clk} ] -name clk
set_clock_uncertainty -setup 0.1 [get_clocks *]
set_clock_uncertainty -hold 0.1 [get_clocks * ]
set_clock_latency -source -fall -early 0.1 [get_clocks *]
set_clock_latency -source -fall -late 0.1 [get_clocks *]
set_clock_latency 0.5 [get_clocks *]
from opentimer.
If you provide such SDC file to yosys
, you may export the resulting netlist and the resulting SDC (not the original hand-written SDC). You can let OpenTimer to read them.
from opentimer.
Related Issues (20)
- Unable to install OpenTimer HOT 2
- /home/nicolast0604/OpenTimer/ot/headerdef.hpp:42:10: fatal error: filesystem: No such file or directory
- Does OpenTimer support CCS table? HOT 2
- make:***[Makefile:149: all] Error 2 on cygwin64.
- Query regarding supported characterized lib file
- openRAM liberty files
- make test reports all tests fail (except first two)
- inout HOT 1
- liberty : input/output voltage HOT 2
- set multicycle path
- error processing verilog in ot/verilog/verilog.cpp HOT 3
- Looking for SDF format file support
- How to contribute?
- unable to complete the make compile
- OpenTimer not found HOT 2
- How to report timing in combinational circuits?
- How to copy a timer object
- report_timing
- Segmentation fault in arc::is_tseg and arc::is_pseg
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opentimer.