3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-22 08:35:32 +00:00
Commit graph

1427 commits

Author SHA1 Message Date
Claire Xenia Wolf
4fa314c0bd Add API to overwrite existing pass from plugin
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
2024-01-30 17:51:11 +01:00
N. Engelhardt
027cb31e9d
Merge pull request #4161 from YosysHQ/nak/add_sig_extract_asserts
SigSpec/SigChunk::extract(): assert offset/length are not out of range
2024-01-29 16:11:01 +01:00
Martin Povišer
c035289383 rtlil: Do not create dummy wires when deleting wires in connections 2024-01-29 11:25:54 +01:00
Martin Povišer
d6600fb1d5 rtlil: Fix handling of connections on wire deletion 2024-01-29 11:25:54 +01:00
N. Engelhardt
efe4d6dbdc SigSpec/SigChunk::extract(): assert offset/length are not out of range 2024-01-25 12:28:17 +01:00
Krystine Sherwin
65bb0d3059
Docs: updating to current 'master'
Pulling for #4133 and removing related TODO.
2024-01-22 11:18:07 +13:00
Catherine
b74d33d1b8 fmt: rename TIME to VLOG_TIME.
The behavior of these format specifiers is highly specific to Verilog
(`$time` and `$realtime` are only defined relative to `$timescale`)
and may not fit other languages well, if at all. If they choose to use
it, it is now clear what they are opting into.

This commit also simplifies the CXXRTL code generation for these format
specifiers.
2024-01-19 15:12:05 +00:00
Martin Povišer
134eb15c7e celledges: Clean up shift rules 2024-01-19 11:08:31 +01:00
Catherine
a33acb7cd9 cxxrtl: refactor the formatter and use a closure.
This commit achieves three roughly equally important goals:
1. To bring the rendering code in kernel/fmt.cc and in cxxrtl.h as close
   together as possible, with an ideal of only having the bigint library
   as the difference between the render functions.
2. To make the treatment of `$time` and `$realtime` in CXXRTL closer to
   the Verilog semantics, at least in the formatting code.
3. To change the code generator so that all of the `$print`-to-`string`
   conversion code is contained inside of a closure.

There are two reasons to aim for goal (3):
a. Because output redirection through definition of a global ostream
   object is neither convenient nor useful for environments where
   the output is consumed by other code rather than being printed on
   a terminal.
b. Because it may be desirable to, in some cases, ignore the `$print`
   cells that are present in the netlist based on a runtime decision.
   This is doubly true for an upcoming `$check` cell implementing
   assertions, since failing a `$check` would by default cause a crash.
2024-01-16 16:35:51 +00:00
hakan-demirli
e093f57c10 fix: fail if neither HOME nor XDG_STATE_HOME are set 2024-01-08 08:49:04 +03:00
hakan-demirli
54c3b63d24 fix: third time is the charm 2024-01-07 14:34:27 +03:00
hakan-demirli
31b45c9555 fix: xdg spec for hist 2024-01-07 14:17:48 +03:00
hakan-demirli
bcf1c7b879
Merge branch 'YosysHQ:master' into master 2024-01-07 14:08:35 +03:00
Martin Povišer
a96c257b3f celledges: Add messy rules that do pass the tests
This passes `test_cell -edges` on all the types of shift cells.
2024-01-04 19:34:15 +01:00
Claire Xenia Wolf
fb72dc1a40 Add constexpr hashlib default constructors
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
2023-12-29 19:20:44 +01:00
hakan-demirli
f50e8a3c1b Follow the XDG Base Directory Specification 2023-12-21 21:44:02 +03:00
Krystine Sherwin
afe8eff790
Merge updated master into krys/docs 2023-12-13 10:17:25 +13:00
Martin Povišer
4cce491639 celledges: s/x_jump/zpad_jump/ 2023-12-10 00:27:42 +01:00
Martin Povišer
80b8cd19c4 rtlil: Fix value type for iterator over SigSpec
When we are iterating over a `SigSpec`, the visited values will be of
type `SigBit` (as is the return type of `operator*()`). Account for that
in the publicly declared types.
2023-12-09 19:01:39 +01:00
Martin Povišer
189064b8da rtlil, hashlib: Remove deprecated std::iterator usage
`std::iterator` has been deprecated in C++17. Yosys is being compiled
against the C++11 standard but plugins can opt to compile against a
newer one. To silence some deprecation warnings when those plugins are
being compiled, replace the `std::iterator` inheritance with the
equivalent type declarations.
2023-12-09 19:01:39 +01:00
N. Engelhardt
beaae79e73
Merge pull request #4021 from povik/booth-wallace
Change `booth` architecture for improved delay, similar signed/unsigned results
2023-11-27 16:26:03 +01:00
Martin Povišer
84568453f8 rtlil: Add lsb() msb() SigSpec helpers 2023-11-22 12:46:15 +01:00
Martin Povišer
282ce24eec fmt: Handle free-standing time arguments 2023-11-20 17:25:42 +01:00
Jannis Harder
6cf50d16a8
Merge pull request #3973 from anonkey/master
cli(tcl): add ability to pass argument to tcl script from cli
2023-11-13 16:29:05 +01:00
Jannis Harder
d415b4d98a cli: Cleanups for tcl argument handling
* Keep the previous behavior when no tcl script is used
* Do not treat "-" as a flag but as a positional argument
* Keep including <unistd.h> as it's also used for other functions (at
  least for the emscripten build)
* Move the custom getopt implementation into the Yosys namespace to
  avoid potential collisions
2023-11-06 16:40:13 +01:00
N. Engelhardt
93a426cbbf
Merge pull request #4008 from nakengelhardt/mem_libmap_data_attr
memory_libmap: look for ram_style attributes on surrounding signals
2023-11-06 16:25:38 +01:00
anonkey
ea91f189a3
cli(tcl): add ability to pass argument to tcl script from cli 2023-11-03 12:21:35 +01:00
Miodrag Milanovic
4eb18e1f07 change verific log callback api 2023-11-01 08:13:27 +01:00
Krystine Sherwin
8fad77bd0f
Merge branch 'master' into krys/docs
Fix failing verific tests
2023-11-01 13:17:51 +13:00
N. Engelhardt
f9ab6e147a mem: only import attributes from ports if the memory doesn't have them yet 2023-10-30 16:31:53 +01:00
N. Engelhardt
1b6d1e9419 memory_libmap: look for ram_style attributes on surrounding signals 2023-10-19 19:23:35 +02:00
Lofty
d21c464ae4
Merge pull request #3946 from rmlarsen/toposort
Speed up TopoSort by 2.7-3.3x.
2023-10-17 13:00:18 +01:00
Martin Povišer
bdd74e61ae celledges: Account for shift down of x-bits wrt B port 2023-10-16 13:29:47 +02:00
N. Engelhardt
6c562c76bc fix handling right shifts 2023-10-12 11:46:09 +02:00
N. Engelhardt
2d6d6a8da1 fix handling a_width != y_width 2023-10-12 11:46:09 +02:00
N. Engelhardt
d0e559a34f celledges: support shift ops 2023-10-12 11:46:09 +02:00
N. Engelhardt
3e22791810
Merge pull request #3975 from rmlarsen/optmerge 2023-10-09 17:05:19 +02:00
Rasmus Munk Larsen
bc0df04e06 Get rid of double lookup in TopoSort::node(). This speeds up typical TopoSort time overall by ~10%. 2023-10-06 12:53:05 -07:00
Miodrag Milanovic
2ab7d1d0c8 Fix readline/editline memory leak 2023-10-06 16:05:44 +02:00
Rasmus Munk Larsen
6a5799cc2e Add missing initialization of node_cmp_ member. 2023-10-05 17:27:26 -07:00
Rasmus Munk Larsen
0a37c2a301 Fix translation bug: The old code really checks for the presense of a node, not an edge in glift and flatten.
Add back statement that inserts nodes in order in opt_expr.cc.
2023-10-05 17:01:42 -07:00
Rasmus Munk Larsen
fd7bd420b3 Add back newline. 2023-10-05 15:26:29 -07:00
Rasmus Munk Larsen
e38c9e01c9 Undo formatting changes in kernel/utils.h. 2023-10-05 15:24:26 -07:00
Rasmus Munk Larsen
8e0308b5e7 Revert changes to celltypes.h. Use dict instead of std::unordered_map and most hash function for uint64_t to hashlib.h to support this. 2023-10-03 14:25:59 -07:00
Rasmus Munk Larsen
7b454d4633 Revert changes to celltypes.h. 2023-10-03 14:06:41 -07:00
Rasmus Munk Larsen
a6247cba42 Fix compiler warnings from GCC. 2023-10-03 09:29:06 +01:00
Rasmus Munk Larsen
cb9f318d37 Remove local modifications. 2023-10-03 09:29:06 +01:00
Rasmus Munk Larsen
ff915d21b6 Update comment. 2023-10-03 09:29:06 +01:00
Rasmus Munk Larsen
4968229efc Speed up stringf / vstringf by 1.8x.
The main speedup is accomplished by avoiding a heap allocation in the common case where the final string length is less than 128. Inlining stringf & vstringf adds an additional improvement.
2023-10-03 09:29:06 +01:00
Rasmus Munk Larsen
058973faee Undo formatting change. 2023-10-02 16:15:47 -07:00