mirror of
https://github.com/YosysHQ/sby.git
synced 2025-08-10 07:10:54 +00:00
example for autotune
This commit is contained in:
parent
a498e1e9a1
commit
9293e66092
3 changed files with 139 additions and 0 deletions
30
docs/examples/autotune/README.md
Normal file
30
docs/examples/autotune/README.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
# Autotune demo
|
||||
|
||||
This directory contains a simple sequential integer divider circuit. The
|
||||
verilog implementation in [divider.sv](divider.sv) comes with assertions that
|
||||
this circuit will always produce the correct result and will always finish
|
||||
within a fixed number of cycles. The circuit has the divider bit-width as
|
||||
parameter.
|
||||
|
||||
Increasing the WIDTH parameter quickly turns proving those assertions into a
|
||||
very difficult proof for fully autmated solvers. This makes it a good example
|
||||
for the `--autotune` option which tries different backend engines to find the
|
||||
best performing engine configuration for a given verification task.
|
||||
|
||||
The [divider.sby](divider.sby) file defines 3 tasks named `small`, `medium` and
|
||||
`large` which configure the divider with different bit-widths. To verify the
|
||||
`small` divider using the default engine run:
|
||||
|
||||
sby -f divider.sby small
|
||||
|
||||
To automatically try different backend engines using autotune, run
|
||||
|
||||
sby --autotune -f divider.sby small
|
||||
|
||||
The `small` task should finish quickly using both the default engine and using
|
||||
autotune. The `medium` and `large` tasks take significantly longer and show
|
||||
greater differences between engine configurations. Note that the `large` tasks
|
||||
can take many minutes to hours, depending on the machine you are using.
|
||||
|
||||
You can learn more about Sby's autotune feature from [Sby's
|
||||
documentation](https://symbiyosys.readthedocs.io/en/latest/autotune.html).
|
Loading…
Add table
Add a link
Reference in a new issue