3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-01-18 16:28:57 +00:00
Commit graph

1979 commits

Author SHA1 Message Date
KrystalDelusion
5abfee7718
Merge bc310e7165 into 64a933d77b 2025-12-18 09:00:45 +01:00
Emil J
f003eca615
Merge pull request #5526 from YosysHQ/emil/fix-cellaigs-function-arg-eval-order
cellaigs: fix function argument evaluation order
2025-12-12 10:00:09 +01:00
Emil J
5594b817cd
Merge pull request #5524 from rocallahan/single-thread-log
Check that we don't use logging during multithreading
2025-12-10 13:54:09 +01:00
Emil J
e08e9119ee
Merge pull request #5516 from rocallahan/limit-threads
Limit thread usage in tests
2025-12-10 13:45:07 +01:00
Emil J. Tywoniak
99e873efc9 cellaigs: fix AOI and OAI ordering 2025-12-10 12:41:13 +01:00
Emil J. Tywoniak
d932ce7f47 cellaigs: formatting 2025-12-10 12:33:17 +01:00
Emil J. Tywoniak
882001cb01 cellaigs: fix adder function argument evaluation order 2025-12-10 12:33:17 +01:00
Emil J. Tywoniak
7f3ea41103 cellaigs: fix function argument evaluation order 2025-12-10 11:36:37 +01:00
Emil J
1cceaa2a80
Merge pull request #5538 from YosysHQ/emil/driver-git-hash
driver: add --git-hash
2025-12-09 15:00:36 +01:00
Emil J. Tywoniak
6acb79afa2 driver: add --git-hash 2025-12-09 11:58:57 +01:00
Emil J. Tywoniak
23e1b0656c version: add git hash string 2025-12-09 11:58:43 +01:00
Robert O'Callahan
d274ff8627 Delete prefix strings on shutdown to avoid triggering leak warnings.
Fixes #5532
2025-12-05 09:45:47 +00:00
Robert O'Callahan
638e904f91 Remove cover() coverage tracking 2025-12-04 16:27:13 +01:00
Robert O'Callahan
7219ac94b3 Add YOSYS_MAX_THREADS 2025-12-04 12:09:04 +01:00
Robert O'Callahan
7e75200b2a Check that we don't use logging during multithreading 2025-11-29 22:47:23 +00:00
Robert O'Callahan
b23dc345ae Make it safe to access .c_str() for autoidx IDs in a multithreaded context 2025-11-25 22:49:41 +00:00
Robert O'Callahan
948001f39f Merge the two autoidx hashtables into one
When something calls `IdString::c_str()` on an autoidx ID, we need to cache the
full string in a thread-safe way. If we need to allocate an entry in some data
structure to do that, it's difficult to do in a thread-safe no-performance-hazard way.
So instead, store the cached string pointer in the same hashtable as the prefix
pointer.
2025-11-25 21:57:46 +00:00
Robert O'Callahan
8f0ecce53f Forbid creating IdStrings and incrementing autoidx during multithreaded phases, and add dynamic checks for that
We could make it safe to increment autoidx during multithreaded passes, but that's
actually undesirable because it would lead to nondeterminism. If/when we need new
IDs during parallel passes, we'll have to figure out how to allocate them in a
deterministic way, and that will depend on the details of what the pass does.
So don't try to tackle that now.
2025-11-25 21:57:46 +00:00
Robert O'Callahan
4c8b537d71 Remove YOSYS_NO_IDS_REFCNT
Refcounting is hardly used at all so this option is not that useful.

We might want to have a different option that disables GC if that becomes
a performance issue, but that should be a different option.
2025-11-25 21:57:46 +00:00
Robert O'Callahan
7f9de6e48f Make coverage data thread-safe 2025-11-25 21:46:48 +00:00
Krystine Sherwin
bc310e7165
Celltypes: Revert c++20 feature
Turns out using designated initializers is c++20, so not available while we are still c++17 friendly.
2025-11-22 16:24:57 +13:00
Krystine Sherwin
155bc8b14e
celltypes: Reword synthesizable comment
Don't mention verilog.
2025-11-22 16:24:56 +13:00
Krystine Sherwin
8badbf75c4
celltypes: Add help -celltypes
Like `help -cells` but instead of printing the cell's ports, prints its flags.
2025-11-22 16:24:56 +13:00
Krystine Sherwin
b48881e996
celltypes: Extra type props
Now with `is_internal`, `is_metainfo`, and `has_effects`.
Each type property has a comment specifying usage/meaning.
Type properties (sans `is_internal`) get a default value of false.
`CellTypes::setup_*_type()` methods get their own `CellType` struct assignments with named fields being assigned true to improve readability.

Also remove is_evaluable from cell types that aren't actually eval-able,
instead using is_combinatorial which afaict is what the flag was being used as a proxy for.
2025-11-22 16:24:55 +13:00
Krystine Sherwin
542a547c78
celltypes: get_cell() helper
Add `CellTypes::get_cell()` which takes a 'type' `IdString` and returns the corresponding `CellType` if it is in the `cell_types` dict, otherwise returns `nullptr`.
Useful for getting a cell type by name and then checking its attributes.
2025-11-22 15:57:34 +13:00
Krystine Sherwin
04092ea93d
celltypes: Add and use setup_type helpers
Add `CellTypes::setup_{comb, ff, formal}_type()`.  Most of the existing internal cells fit into one of these three groups.
2025-11-22 15:55:18 +13:00
Krystine Sherwin
8b6f18483b
celltypes: add builtin_ff and formal 2025-11-22 15:53:56 +13:00
Emil J
2eff366e8c
Merge branch 'main' into emil/sdc_expand 2025-11-19 16:29:37 +01:00
Emil J. Tywoniak
5a798b64ef sdc: separate out 2025-11-19 15:25:22 +01:00
Emil Jiří Tywoniak
c281bac461 sdc: add initial stubbed demo 2025-11-19 15:25:03 +01:00
Emil J. Tywoniak
9f07e21e35 rtlil: undeprecate builtin_ff_cell_types 2025-11-19 15:20:50 +01:00
Emil J. Tywoniak
9e81db4373 ff: split out type-only information 2025-11-19 15:20:50 +01:00
Robert O'Callahan
261a0ae9e1 Implement at() methods on SigSpec so that SigSpec::bits().at() continues to work as it did
Fixes a regression caused by commit 745222fa3b, which caused some
third-party code to fail to build, e.g.:
5d7aa035c6/lib/Transforms/YosysOptimizer/RTLILImporter.cpp (L229)
2025-11-17 09:15:55 +00:00
Emil J
84adc82fad
Merge pull request #5484 from YosysHQ/emil/idstring-simpler-final-gc
driver: move IdString collection to yosys_shutdown
2025-11-15 00:10:12 +01:00
Emil J. Tywoniak
c497b3b24c Revert "rtlil: make tracing optional in IdString garbage collection"
This reverts commit 8c76f93fce.
2025-11-14 15:32:10 +01:00
Emil J. Tywoniak
65d7d70507 driver: move IdString collection to yosys_shutdown 2025-11-14 15:31:45 +01:00
Miodrag Milanović
ba99c05902
Merge pull request #5482 from rocallahan/newid-namespace
Add missing `YOSYS_NAMESPACE_PREFIX` to fix callers of `NEW_ID` that aren't in the Yosys namespace
2025-11-14 14:06:15 +01:00
Emil J. Tywoniak
c48bc56f4a driver: fix timing data divison by zero when no passes run 2025-11-13 14:10:52 +01:00
Emil J. Tywoniak
1dd5b150e5 driver: garbage collect IdStrings without tracing at exit 2025-11-13 14:10:52 +01:00
Robert O'Callahan
ead0f922e1 Add missing YOSYS_NAMESPACE_PREFIX to fix callers of NEW_ID that aren't in the Yosys namespace 2025-11-12 22:29:54 +00:00
Emil J. Tywoniak
8c76f93fce rtlil: make tracing optional in IdString garbage collection 2025-11-12 20:22:30 +01:00
Emil J. Tywoniak
1ee4fc9d27 fix YOSYS_XTRACE_GET_PUT 2025-11-12 20:20:51 +01:00
Emil J. Tywoniak
50bfb5c5c9 constids: add $input_port and $connect 2025-11-12 20:19:42 +01:00
Robert O'Callahan
578d658871 Add timing stats for IdString garbage collection 2025-11-12 11:52:04 +01:00
Robert O'Callahan
df8444c5e7 Optimize IdString operations to avoid calling c_str() 2025-11-12 11:52:04 +01:00
Robert O'Callahan
e95ed7bbab Make NEW_ID create IDs whose string allocation is delayed 2025-11-12 11:52:04 +01:00
Robert O'Callahan
8895757364 Ensure that new_id(_suffix)() cannot create collisions with existing IdStrings. 2025-11-12 11:52:04 +01:00
Robert O'Callahan
9577a028c8 Make new_id/new_id_suffix taking string_view to avoid allocating strings 2025-11-12 11:52:04 +01:00
Robert O'Callahan
b3f3f42577 Remove StaticIdString and just use IdString now that we can make it constexpr 2025-11-12 11:52:04 +01:00
Robert O'Callahan
b0e2d75dbe Make IdString refcounts a hashtable containing only the nonzero refcounts
This saves space and doesn't cost very much since we hardly ever have nonzero refcounts any more.

It also allows for IdStrings with negative indexes, which we're going to add.
2025-11-12 11:52:04 +01:00