3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-24 17:45:33 +00:00
Commit graph

13024 commits

Author SHA1 Message Date
Jannis Harder
7eaa4bcb46 sim: Add -noinitstate option and handle non-cosim initstate
This adds the -noinitstate option which is required to simulate
counterexamples to induction with yw-cosim. Also add handling for
$initstate cells for non-co-simulation.
2023-09-28 17:29:24 +02:00
Martin Povišer
20024900d9
Merge pull request #3813 from povik/ast-simplify-work-vol2
ast/simplify: Remove in_lvalue/in_param simplify() parameters
2023-09-28 11:57:58 +02:00
Martin Povišer
b0045300fd booth: Cut down the test
Cut the test down from taking ~25 s to ~3 s.
2023-09-28 11:55:51 +02:00
Martin Povišer
6b70b3dbef booth: Fix assertion
Fix assertion to what it should be per Andy's comments.
2023-09-28 11:50:57 +02:00
Rasmus Munk Larsen
01a015747e Speed up RTLIL::Const::decode_string by 1.7x. 2023-09-27 17:16:13 -07:00
github-actions[bot]
ac8b31e000 Bump version 2023-09-28 00:15:01 +00:00
Miodrag Milanović
b35ea8f896
Merge pull request #3957 from YosysHQ/ver_def_param
Verific: add default parameters to modules
2023-09-27 17:37:58 +02:00
Miodrag Milanovic
f193ebdded Verific: add default parameters to modules 2023-09-27 16:57:18 +02:00
Martin Povišer
d510a5fcde
Merge pull request #3955 from nakengelhardt/nak/show_use_dot_for_aliases
show: use dot for wire aliases instead of BUF
2023-09-27 11:25:19 +02:00
github-actions[bot]
076c5ceb71 Bump version 2023-09-27 00:15:07 +00:00
Wanda
c172fef01a hashlib: Use a better hash for pool. 2023-09-26 18:55:06 +01:00
Martin Povišer
a511976b48 ast/simplify: Retire in_lvalue/in_param arguments to simplify 2023-09-26 13:32:15 +02:00
Martin Povišer
22b99413e8 ast/simplify: Make in_lvalue/in_param into props of AST nodes
Instead of passing around in_lvalue/in_param flags to simplify, we make
the flags into properties of the AST nodes themselves. After the tree
is first parsed, we once do

  ast->fixup_hierarchy_flags(true)

to walk the full hierarchy and set the flags to their initial correct
values. Then as long as one is using ->clone(), ->cloneInto() and the
AstNode constructor (with children passed to it) to modify the tree, the
flags will be kept in sync automatically. On the other hand if we are
modifying the children list of an existing node, we may need to call

  node->fixup_hierarchy_flags()

to do a localized fixup. That fixup will update the flags on the node's
children, and will propagate the change down the tree if necessary.

clone() doesn't always retain the flags of the subtree being cloned. It
will produce a tree with a consistent setting of the flags, but the
root doesn't have in_param/in_lvalue set unless it's intrinsic to the
type of node being cloned (e.g. AST_PARAMETER). cloneInto() will make
sure the cloned subtree has the flags consistent with the new placement
in a hierarchy.

Add asserts to make sure the old and new way of determining the flags
agree.
2023-09-26 13:32:15 +02:00
Martin Povišer
10d0e69588 ast/simplify: Make tweaks in advance of big in_lvalue/in_param change
The following commit will replace the way in_lvalue/in_param is being
tracked in the simplify code. Make tweaks in advance so that it will
be easier to make the old way and the new way agree.

These changes all should be innocuous.
2023-09-26 13:31:59 +02:00
N. Engelhardt
3319fdc46e show: use dot for wire aliases instead of BUF 2023-09-25 17:20:16 +02:00
Martin Povišer
91bcf81dbd booth: Note down debug prints are broken 2023-09-25 14:51:26 +02:00
Martin Povišer
7179e4f4b8 booth: Improve user interface 2023-09-25 14:50:41 +02:00
Martin Povišer
cde2a0b926 booth: Make more use of appropriate helpers
Use the `addFa` helper, do not misuse `new_id` and make other changes
to the transformation code.
2023-09-25 14:50:41 +02:00
Martin Povišer
d641dfaec2 rtlil: Add helper to emit full-adder cells 2023-09-25 14:50:41 +02:00
Martin Povišer
62302f601d booth: Remove more of unused helpers 2023-09-25 14:50:41 +02:00
Martin Povišer
30f8387b75 booth: Rewrite the main cell selection loop 2023-09-25 14:50:41 +02:00
Martin Povišer
986507f95f booth: Streamline the low-level circuit emission
For the basic single-bit operations, opt for gate cells (`$_AND_` etc.)
instead of the coarse cells (`$and` etc.). For the emission of cells
move to the conventional module methods (`module->addAndGate`) away
from the local helpers. While at it, touch on the surrounding code.
2023-09-25 14:50:41 +02:00
Martin Povišer
cb05262fc4 booth: Remove now-unused helpers 2023-09-25 14:50:41 +02:00
Martin Povišer
fedd12261f booth: Move away from explicit Wire pointers
To represent intermediate signals use the `SigBit`/`SigSpec` classes as
is customary in the Yosys codebase. Do not pass around `Wire` pointers
unless we have special reason to.
2023-09-25 14:50:41 +02:00
github-actions[bot]
934c82254d Bump version 2023-09-22 00:14:51 +00:00
Rasmus Munk Larsen
9ed38bf9b6
Speed up the autoname pass by 3x. (#3945)
* Speed up the autoname pass by 2x. This is accomplished by only constructing IdString objects for plain strings that have a higher score.

* Defer creating IdStrings even further. This increases the speedup to 3x.
2023-09-21 09:46:49 +00:00
Ethan Mahintorabi
aa06809d64 rtlil: Speeds up Yosys by 17%
This PR speeds up by roughly 17% across a wide spectrum of designs
tested at Google. Particularly for the mux generation pass.

Co-authored-by: Rasmus Larsen <rmlarsen@google.com>
Signed-off-by: Ethan Mahintorabi <ethanmoon@google.com>
2023-09-21 10:46:11 +01:00
Rasmus Munk Larsen
b9745f638b Remove extraneous "public:". 2023-09-20 16:20:08 -07:00
Rasmus Munk Larsen
e0042bdff7 Speed up TopoSort. The main sorting algorithm implementation in TopoSort::sort_worker is 11-12x faster. Overall, the complete sequence of building the graph and sorting is about 2.5-3x faster. The overall impact in e.g. the replace_const_cells optimization pass is a ~25% speedup. End-to-end impact on our synthesis flow is about 3%. 2023-09-20 15:49:05 -07:00
Martin Povišer
c4762d930e
Merge pull request #3930 from povik/verific-test-memsemantics
verific: Add test of accurate semantics in memory inference
2023-09-20 11:46:42 +02:00
Martin Povišer
99a5773911
Merge pull request #3920 from zachjs/asgn-expr
sv: support assignments within expressions
2023-09-20 11:30:14 +02:00
github-actions[bot]
35a05686c4 Bump version 2023-09-20 00:15:04 +00:00
Miodrag Milanović
8fb807cd24
Merge pull request #3943 from YosysHQ/verific_lineinfo
Set src attribute for verific with full info
2023-09-19 12:55:43 +02:00
Miodrag Milanovic
18855f23ce Set src attribute for verific with full info 2023-09-19 12:00:10 +02:00
Zachary Snow
28e99f2b8c fix width of post-increment/decrement expressions 2023-09-18 23:46:06 -04:00
Zachary Snow
7d07615dee allow attributes in front of ++/-- statements 2023-09-18 23:46:02 -04:00
github-actions[bot]
e2b613355d Bump version 2023-09-19 00:23:00 +00:00
Krystine Sherwin
98d0e749d6
Merge updates from 'master' into krys/docs 2023-09-19 11:28:36 +12:00
Krystine Sherwin
10ecbe9f5b
docs: updating memory mapping text
More complete code examples and confirming Verific support thanks to @povik
2023-09-19 11:26:57 +12:00
Krystine Sherwin
93c9bf2f5d
docs: Updating todos 2023-09-19 11:21:15 +12:00
Martin Povišer
54be4aca90
Merge pull request #3924 from andyfox-rushc/master
multpass -- create Booth Encoded multipliers for
2023-09-18 16:46:59 +02:00
Martin Povišer
8222121164 verific: Add test of accurate semantics in memory inference 2023-09-18 16:37:15 +02:00
N. Engelhardt
6dc7cc3a0e
Merge pull request #3933 from timkpaine/tkp/kernelheaders 2023-09-18 16:29:51 +02:00
N. Engelhardt
39dc2c0725
Merge pull request #3925 from povik/ci-glibcxx-assertions 2023-09-18 16:11:04 +02:00
Tim Paine
9042124ba7 Alphabetize headers to be installed, include some missing required ones for plugins, fixes https://github.com/chipsalliance/synlig/pull/1972 https://github.com/dau-dev/tools/issues/6 2023-09-15 14:31:08 -04:00
github-actions[bot]
b84ed5d3ad Bump version 2023-09-14 00:14:42 +00:00
Catherine
c7d7cfeaca Update ABC for WASI support. 2023-09-13 16:43:30 +01:00
Miodrag Milanović
eada408983
Merge pull request #3931 from whitequark/update-abc
Update ABC for WASI support
2023-09-13 13:40:49 +02:00
Miodrag Milanović
d79b4b2218
Merge pull request #3903 from jix/dft-future_ff
Basic support for tag primitives and `$future_ff`
2023-09-13 13:40:10 +02:00
Catherine
e9a11dd088 Update ABC for WASI support. 2023-09-13 11:39:30 +00:00