| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This guards against access to bits outside of struct/union
members via dynamic indexing.
|
|
|
|
| |
For now, $bits, $left, $right, $low, $high, and $size are supported.
|
|\
| |
| | |
Handle range offsets in packed arrays within packed structs
|
| |
| |
| |
| |
| |
| |
| | |
This brings the metadata for packed arrays in packed structs
in line with the metadata for unpacked arrays, and correctly
handles the case when both lsb and msb in an address range are
non-zero.
|
|/
|
|
| |
* Resolve package types in interfaces
* Added test for resolving of package types in interfaces
|
| |
|
| |
|
|\
| |
| | |
simplify: Do not recursively simplify AST_CELL within AST_CELLARRAY
|
| |
| |
| |
| |
| |
| | |
Otherwise the AST_CELL simplification uses the wrong celltype before the
AST_CELLARRAY simplification has a chance to unroll it and change it to
the $array celltype.
|
| | |
|
|/ |
|
|\
| |
| | |
Support for arrays with swapped ranges within structs
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
This also corrects the implementation of C type arrays within structs.
Fixes #3550
|
|/
|
|
|
|
|
|
| |
This is primarily intended to enable the standard-permitted use of
module-scoped identifiers to refer to tasks and non-constant functions.
As a side-effect, this also adds support for the non-standard use of
module-scoped identifiers referring to constant functions, a feature
that is supported in some other tools, including Iverilog.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
genrtlil.cc and simplify.cc had inconsistent and slightly broken
handling of signedness for array querying functions. These functions are
defined to return a signed result. Simplify always produced an unsigned
and genrtlil always a signed 32-bit result ignoring the context.
Includes tests for the the relvant edge cases for context dependent
conversions.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* Add support for accessing whole struct
* Update tests
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
|
| |
|
| |
|
|
|
|
|
| |
If a local variable is always assigned before it is used, then adding
nosync prevents latches from being needlessly generated.
|
|
|
|
|
| |
I also removed the unnecessary shadowing of `width_hint` and `sign_hint`
in the corresponding case in `simplify()`.
|
|
|
| |
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
|
|
|
|
|
|
|
|
| |
- Attempt to lookup a derived module if it potentially contains a port
connection with elaboration ambiguities
- Mark the cell if module has not yet been derived
- This can be extended to implement automatic hierarchical port
connections in a future change
|
|
|
|
|
|
|
|
| |
- Root AST_PREFIX nodes are now subject to genblk expansion to allow
them to refer to a locally-visible generate block
- Part selects on AST_PREFIX member leafs can now refer to generate
block items (previously would not resolve and raise an error)
- Add source location information to AST_PREFIX nodes
|
|
|
|
| |
Fixes #2447.
|
|
|
|
|
| |
- preserve signedness of struct members
- fix initial width detection of struct members (e.g., in case expressions)
|
| |
|
| |
|
| |
|
|\
| |
| | |
Fixing old e-mail addresses and deadnames
|
| |
| |
| |
| |
| |
| |
| |
| | |
s/((Claire|Xen|Xenia|Clifford)\s+)+(Wolf|Xen)\s+<(claire|clifford)@(symbioticeda.com|clifford.at|yosyshq.com)>/Claire Xenia Wolf <claire@yosyshq.com>/gi;
s/((Nina|Nak|N\.)\s+)+Engelhardt\s+<nak@(symbioticeda.com|yosyshq.com)>/N. Engelhardt <nak@yosyshq.com>/gi;
s/((David)\s+)+Shah\s+<(dave|david)@(symbioticeda.com|yosyshq.com|ds0.me)>/David Shah <dave@ds0.me>/gi;
s/((Miodrag)\s+)+Milanovic\s+<(miodrag|micko)@(symbioticeda.com|yosyshq.com)>/Miodrag Milanovic <micko@yosyshq.com>/gi;
s,https?://www.clifford.at/yosys/,http://yosyshq.net/yosys/,g;
|
| |
| |
| |
| |
| |
| |
| |
| | |
The recent fix for case expression width detection causes the width of
the expressions to be queried before they are simplified. Because the
logic supporting module scope identifiers only existed in simplify,
looking them up would fail during width detection. This moves the logic
to a common helper used in both simplify() and detectSignWidthWorker().
|
|/
|
|
| |
This brings the mem2reg behavior in line with the nomem2reg behavior.
|
| |
|
|
|
|
|
|
|
|
|
| |
- The case expression and case item expressions are extended to the
maximum width among them, and are only interpreted as signed if all of
them are signed
- Add overall width and sign detection for AST_CASE
- Add sign argument to genWidthRTLIL helper
- Coverage for both const and non-const case statements
|
|
|
|
|
|
|
|
|
|
|
|
| |
From IEEE1364-2005, section 7.3 buf and not gates:
> These two logic gates shall have one input and one or more outputs.
> The last terminal in the terminal list shall connect to the input of the
> logic gate, and the other terminals shall connect to the outputs of
> the logic gate.
yosys does not follow this and instead interprets the first argument as
the output, the second as the input and ignores the rest.
|
| |
|
|
|
|
|
|
| |
This defers the simplification of globals so that globals in one file
may depend on globals in other files. Adds a simplify() call downstream
because globals are appended at the end.
|
| |
|
|
|
|
|
|
| |
- Fix explicit size cast of unbased unsized literals
- Fix unbased unsized literal bound directly to port
- Output `is_unsized` flag in `dumpAst`
|
| |
|
| |
|
| |
|
| |
|