Akash Levy
dd9687fc4c
Add way to disable memory init
2024-10-01 01:32:29 -07:00
Mohamed Gaber
35c8ad61ac
cli/python: error-checking, python interpreter bugfix
...
* Less brittle method of adding script dirname to sys.path
* Check if scriptfp successfully opens before using it
* Move `log_error` to after `PyErr_Print()` is called
2024-09-30 17:38:43 +03:00
Martin Povišer
3e3515e7d9
log: Never silence `log_cmd_error`
...
Add extra handling to arrange for `log_cmd_error` never being silenced
by the command line `-v N` option. Similar path for `log_error` exists
already.
2024-09-24 17:47:46 +02:00
Akash Levy
08fe6f66aa
Fix functional
2024-09-23 06:56:12 -07:00
Akash Levy
7d5dac7255
More apt location for whereami
2024-09-22 06:02:20 -07:00
Akash Levy
03f740e2a4
Undo annoying commit bdc43c6592
2024-09-18 22:05:23 -07:00
Akash Levy
db0317afc5
Add support for int stuff
2024-09-18 16:46:53 -07:00
Martin Povišer
3a1b003cc3
celltypes: Fix `$buf` eval
2024-09-18 16:55:02 +02:00
Akash Levy
9f44ec8aa1
Merge branch 'YosysHQ:main' into main
2024-09-17 15:24:05 -07:00
Martin Povišer
865df26fac
Adjust buf-normalized mode
2024-09-17 10:46:20 +02:00
Claire Xenia Wolf
80119386c0
Add RTLIL "buffered-normalized mode" and improve "bufnorm" pass
...
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
2024-09-17 10:46:20 +02:00
Claire Xenia Wolf
d027ead4b5
Improvements in "bufnorm" pass
...
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
2024-09-17 10:46:20 +02:00
Claire Xenia Wolf
4d469f461b
Add coarse-grain $buf buffer cell type
...
Signed-off-by: Claire Xenia Wolf <claire@clairexen.net>
2024-09-17 10:46:20 +02:00
Akash Levy
285c8a3f66
Merge branch 'YosysHQ:main' into main
2024-09-12 11:14:15 -07:00
N. Engelhardt
c8b42b7d48
Merge pull request #4538 from RCoeurjoly/verific_bounds
2024-09-12 13:04:04 +02:00
Mohamed Gaber
8dac27108e
Typos
2024-09-11 21:45:51 +03:00
Mohamed Gaber
738b5eef0b
Add dirname of script file to sys.path
...
This matches the behavior of running a Python interpreter, where the
first element of sys.path is the dirname of the script being run.
This allows importing of files and modules in the same directory without
messing with PYTHONPATH or similar.
2024-09-11 21:45:51 +03:00
Mohamed Gaber
38f9e6c3a2
-y flag for libyosys Python scripts
...
This adds a Python equivalent to the `-c` option, where scripts importing `libyosys` can be imported and used.
Most of the work for this was already done to enable Python passes a couple years back, so this is a relatively small changeset.
2024-09-11 21:45:51 +03:00
Roland Coeurjoly
bdc43c6592
Add left and right bound properties to wire. Add test. Fix printing
...
for signed attributes
Co-authored-by: N. Engelhardt <nak@yosyshq.com>
Co-authored-by: Roland Coeurjoly <rolandcoeurjoly@gmail.com>
2024-09-10 12:52:42 +02:00
Akash Levy
20c5ed2ebb
Merge latest
2024-09-06 07:43:14 -07:00
Miodrag Milanović
b20df72e1e
Merge pull request #4536 from YosysHQ/functional
...
Functional Backend
2024-09-06 10:05:04 +02:00
Akash Levy
cc3acb9894
Fix whereami extension
2024-09-05 22:13:28 -07:00
Akash Levy
63a7996cb4
Merge branch 'YosysHQ:main' into main
2024-09-05 17:07:57 -07:00
Akash Levy
ce95ec1f9e
Add VHDL support via GHDL call
2024-09-05 13:24:38 -07:00
Emil J. Tywoniak
bd6f7bb4a7
ff: improve comments
2024-09-05 11:17:12 +02:00
Emily Schmidt
4eeb8d326a
functional backend: rename "type" to either "kind" or "sort" to make the terminology consistent
2024-08-28 12:39:41 +01:00
Emily Schmidt
b428bf4600
functional backends: identifiers in c++/smtlib may not start with digits
2024-08-27 13:10:34 +01:00
Emily Schmidt
459e6b913a
add functional ir documentation
2024-08-27 11:11:02 +01:00
Akash Levy
f707a3b6cd
Merge branch 'YosysHQ:main' into main
2024-08-26 22:37:42 -07:00
N. Engelhardt
0fc5812dcd
Merge pull request #4541 from YosysHQ/krys/compiler-warnings
...
Resolve (some) compiler warnings
2024-08-26 15:04:16 +02:00
Akash Levy
fe5c65a77e
Merge branch 'YosysHQ:main' into master
2024-08-22 15:44:55 -07:00
Emily Schmidt
761eff594f
functional backend: missing includes for stl containers
2024-08-22 11:13:58 +01:00
Emily Schmidt
9b5e81b13f
drivertools: fix C++20 "incomplete type" error by moving constructors below other definitions
2024-08-22 10:40:56 +01:00
Emily Schmidt
f456761e88
add sandia copyright notice to the functional backend
2024-08-21 11:04:11 +01:00
Emily Schmidt
831da51255
add picorv test to functional backend
2024-08-21 11:04:11 +01:00
Emily Schmidt
50047d25b3
functional backend: add different types of input/output/state variables
2024-08-21 11:04:11 +01:00
Emily Schmidt
79a1b691ea
silence some more warnings, undo mistaken addition
2024-08-21 11:04:11 +01:00
Emily Schmidt
8f77494263
silence some warnings
2024-08-21 11:04:11 +01:00
Emily Schmidt
fbee31080e
add optional header and hashlib implementation for optional
2024-08-21 11:04:11 +01:00
Emily Schmidt
850b3a6c29
convert class FunctionalIR to a namespace Functional, rename functionalir.h to functional.h, rename functional.h to compute_graph.h
2024-08-21 11:04:08 +01:00
Emily Schmidt
8c0f625c3a
functional backend: topological sort starts with the output and next states nodes, other nodes get deleted
2024-08-21 11:03:29 +01:00
Emily Schmidt
7ac0e92d35
functional backend: rename get_input and get_current_state to input and current_state (more consistent with other methods)
2024-08-21 11:03:29 +01:00
Emily Schmidt
99effb6789
add support for initializing registers and memories to the functional backend
2024-08-21 11:03:29 +01:00
Emily Schmidt
12a31a4418
add MemContents class to mem.h
2024-08-21 11:03:29 +01:00
Emily Schmidt
6d329e142d
functional backend: error out if multiply driven or undriven signals are seen, dont bother putting them in functionalir
2024-08-21 11:03:29 +01:00
Emily Schmidt
145af6f10d
fix memory handling in functional backend, add more error messages and comments for memory edgecases
2024-08-21 11:03:29 +01:00
Emily Schmidt
4722f13a5d
functional backend: reduce $lcu to $alu
2024-08-21 11:03:29 +01:00
Emily Schmidt
3cd5f4ed83
add support for RTLIL cells with multiple outputs to the functional backend, implement $fa,$lcu,$alu
2024-08-21 11:03:29 +01:00
Emily Schmidt
13bacc5c8f
eliminate pmux in functional backend
2024-08-21 11:03:29 +01:00
Emily Schmidt
c0c90c2c31
functional backend: require shift width == clog2(operand width)
2024-08-21 11:03:29 +01:00
Emily Schmidt
7f8f21b980
remove widths parameters from FunctionalIR factory methods and from functionalir.cc
2024-08-21 11:03:29 +01:00
Emily Schmidt
55c2c17853
document functionalir.h and change visitors to derive from AbstractVisitor. remove extraneous widths arguments from visitors.
2024-08-21 11:03:29 +01:00
Emily Schmidt
6922633b0b
fix a few bugs in the functional backend and refactor the testing
2024-08-21 11:03:29 +01:00
Emily Schmidt
9ad859fc0a
add bwmux, bweqx, bmux, demux cells
2024-08-21 11:03:29 +01:00
Emily Schmidt
00a65754bb
factor out SExpr/SExprWriter classes out of smtlib backend, and also tidy them up/document them
2024-08-21 11:03:27 +01:00
Emily Schmidt
9f660b1e4b
rewrite smtlib pass to use SExpr class
2024-08-21 11:02:31 +01:00
Roland Coeurjoly
566e57d24f
Support $lut cells. Both C++ and SMT tests pass
2024-08-21 11:02:31 +01:00
Emily Schmidt
1b2986f7fb
add support for $mul, $div, $divfloor, $mod, $modfloor, $pow in functional backend
2024-08-21 11:02:31 +01:00
Emily Schmidt
9700df50d6
add generic writer class with formatting function to FunctionalTools
2024-08-21 11:02:31 +01:00
Emily Schmidt
eb2bb8c45b
tidy up generic functional backend, add generic scope class, tidy up c++ functional backend
2024-08-21 11:02:31 +01:00
Emily Schmidt
6f9e21219b
add new generic compute graph and rewrite c++ functional backend to use it
2024-08-21 11:02:29 +01:00
Emily Schmidt
248d5f72d4
add support for std::variant to hashlib
2024-08-21 11:01:09 +01:00
Emily Schmidt
dbf2bc3b1d
need unsigned comparison when checking shift widths for overflow in functional backend
2024-08-21 11:01:09 +01:00
Emily Schmidt
7b29d177ac
add support for memories to c++ and smtlib functional backends
2024-08-21 11:01:09 +01:00
Emily Schmidt
7611dda2eb
add initial version of functional smtlib backend
2024-08-21 11:01:09 +01:00
Emily Schmidt
63dea89fac
add initial version of functional C++ backend
2024-08-21 11:01:09 +01:00
Emily Schmidt
dd5ec84a26
fix bugs in drivertools
2024-08-21 11:01:09 +01:00
Jannis Harder
d90268f610
fixup! drivertools: Utility code for indexing and traversing signal drivers
2024-08-21 11:01:09 +01:00
Jannis Harder
d4e3daa9d0
ComputeGraph datatype for the upcoming functional backend
2024-08-21 11:01:09 +01:00
Jannis Harder
f29422f745
topo_scc: Add sources_first option
2024-08-21 11:01:09 +01:00
Jannis Harder
56572978f5
drivertools: Utility code for indexing and traversing signal drivers
...
It adds `DriveBit`, `DriveChunk` and `DriveSpec` types which are similar
to `SigBit`, `SigChunk` and `SigSpec` but can also directly represent
cell ports, undriven bits and multiple drivers. For indexing an RTLIL
module and for querying signal drivers it comes with a `DriverMap` type
which is somewhat similar to a `SigMap` but is guaranteed to produce
signal drivers as returned representatives.
A `DriverMap` can also optionally preserve connections via intermediate
wires (e.g. querying the driver of a cell input port will return a
connected intermediate wire, querying the driver of that wire will
return the cell output port that's driving the wire).
2024-08-21 11:00:21 +01:00
Jannis Harder
f24e2536c6
kernel/rtlil: Add `SigBit operator[](int offset)` to `SigChunk`
...
This is already supported by `SigSpec` and since both `SigChunk` and
`SigSpec` implement `extract` which is the multi-bit variant of this,
there is no good reason for `SigChunk` to not support
`SigBit operator[](int offset)`.
2024-08-21 10:58:39 +01:00
Jannis Harder
c73c8a39cf
kernel/log: Add log_str helper for custom log_* functions/overloads
...
When implementing custom log_... functions or custom overloads for the
core log functions like log_signal it is necessary to return `char *`
that are valid long enough.
The log_... functions implemented in log.cc use either `log_id_cache` or
`string_buf` which both are cleared on log_pop.
This commit adds a public `log_str` function which stores its argument
in the `log_id_cache` and returns the stored copy, such that custom
log functions outside of log.cc can also create strings that remain
valid until the next `log_pop`.
2024-08-21 10:58:39 +01:00
Jannis Harder
0922142567
Add generic topological sort and SCC detection
...
This adds a generic non-recursive implementation of Tarjan's linear time
SCC algorithm that produces components in topological order. It can be
instantiated to work directly on any graph representation for which the
enumerate_nodes and enumerate_successors interface can be implemented.
2024-08-21 10:58:39 +01:00
Emil J. Tywoniak
4847caac49
driver: print maximum memory usage on macOS as well
2024-08-19 12:50:12 +02:00
Krystine Sherwin
7b47f645d7
Address warnings
...
- Setting default values
- Fixing mismatched types
- Guarding unused var
2024-08-16 04:30:31 +12:00
Akash Levy
f7ffd73fa0
Fix opt_dff problem
2024-08-01 09:20:18 -07:00
Akash Levy
c0af4604bc
Update Yosys
2024-07-30 16:55:18 -07:00
Emil J
92cac63845
Merge pull request #4344 from widlarizer/emil/keep_hierarchy
...
cost: add keep_hierarchy pass with min_cost argument
2024-07-29 16:33:08 +02:00
Emil J
051d83205d
Merge pull request #4471 from georgerennie/hashlib_primes
...
hashlib: Add some more primes
2024-07-29 15:10:22 +02:00
Emil J. Tywoniak
4b29f64142
cost: add model for techmapped cell count, keep_hierarchy pass with -min_cost parameter
2024-07-29 10:26:02 +02:00
Emil J
49eaa108a5
Merge pull request #4425 from YosysHQ/emil/doc-sigmap
...
sigmap: comments
2024-07-29 10:18:44 +02:00
Akash Levy
89630d3755
Merge branch 'YosysHQ:main' into master
2024-07-28 22:42:33 -07:00
Akash Levy
00f5b122a1
Log smallfix for compatibility with pyosys
2024-07-23 15:51:56 -07:00
Roland Coeurjoly
ce11ddbf21
Simplified run_frontend by using a lambda function for file extension checks and combining blif and eblif into a single condition.
2024-07-23 17:55:04 +02:00
Roland Coeurjoly
8c1431f373
Guess VHDL frontend for both *.vhd and *vhdl files
2024-07-23 17:01:57 +02:00
Emil J. Tywoniak
583db7b15e
sigmap: comments
2024-07-18 16:02:11 +02:00
Akash Levy
a42f4dbedb
Merge branch 'YosysHQ:main' into master
2024-07-18 00:10:20 -07:00
Alexander von Gluck
2f514487cb
haiku: Basic fixes to build under Haiku
2024-07-15 12:57:34 +02:00
George Rennie
339d4e8932
hashlib: Correct prime sequence
2024-07-02 08:10:18 +01:00
Akash Levy
0596766cbd
Merge upstream yosys changes
2024-07-01 18:33:38 -07:00
George Rennie
78ae4ed9ac
hashlib: Add some more primes
...
* Add some primes as suggested in #4458 . This allows larger hashtables
to be allocated for very big designs
2024-07-01 12:37:41 +01:00
Martin Povišer
07daf61ae6
Merge pull request #4467 from povik/fix-add-shiftx
...
rtlil: Fix `addShiftx` for signed shifts
2024-06-26 18:17:28 +02:00
Martin Povišer
89d939334e
rtlil: Fix `addShiftx` for signed shifts
...
Only the `B` input (the shift amount) can be marked as signed on a
`$shiftx` cell. Adapt the helper accordingly and prevent it from
creating invalid RTLIL when called with `is_signed` set. Previously
it would mark both `A` and `B` as signed.
2024-06-21 15:14:08 +02:00
Miodrag Milanovic
141a2e3638
Make C++17 compiler required
2024-06-17 16:55:36 +02:00
Akash Levy
fce46d2a53
Add better Yosys/Verific name aliasing and reenable dffe opt
2024-06-15 14:18:33 -07:00
Akash Levy
187737b86a
Don't adjust naming on imported cells. Add $ for each pass
2024-05-19 15:02:40 -07:00
Akash Levy
0e77a03359
Merge branch 'YosysHQ:main' into master
2024-05-06 21:11:06 -07:00
Martin Povišer
fc82251105
techmap: Support dynamic cell types
2024-05-03 13:33:28 +02:00
Akash Levy
45b723d6f3
Merge branch 'YosysHQ:main' into master
2024-04-25 06:24:57 -07:00