aboutsummaryrefslogtreecommitdiffstats
path: root/frontends/ast/simplify.cc
Commit message (Collapse)AuthorAgeFilesLines
* Allow localparams in constant functionsZachary Snow2020-08-201-0/+12
|
* Merge pull request #2122 from PeterCrozier/struct_array2clairexen2020-08-191-28/+62
|\ | | | | Support 2D bit arrays in structures. Optimise array indexing.
| * Support 2D packed bit arrays in struct/union.Peter Crozier2020-06-091-35/+1
| |
| * Support 2D bit arrays in structures. Optimise array indexing.Peter Crozier2020-06-081-28/+96
| |
* | Merge pull request #2339 from zachjs/display-format-0sclairexen2020-08-181-1/+1
|\ \ | | | | | | Allow %0s $display format specifier
| * | Allow %0s $display format specifierZachary Snow2020-08-091-1/+1
| | |
* | | Merge pull request #2338 from zachjs/const-branch-finishclairexen2020-08-181-4/+4
|\ \ \ | | | | | | | | Propagate const_fold through generate blocks and branches
| * | | Propagate const_fold through generate blocks and branchesZachary Snow2020-08-091-4/+4
| |/ /
* | | Merge pull request #2317 from zachjs/expand-genblockclairexen2020-08-181-41/+82
|\ \ \ | | | | | | | | Fix generate scoping issues
| * | | Fix generate scoping issuesZachary Snow2020-07-311-41/+82
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | - expand_genblock defers prefixing of items within named sub-blocks - Allow partially-qualified references to local scopes - Handle shadowing within generate blocks - Resolve generate scope references within tasks and functions - Apply generate scoping to genvars - Resolves #2214, resolves #1456
* | | Merge branch 'const-func-block-var' of https://github.com/zachjs/yosys into ↵Claire Wolf2020-08-181-26/+29
|\ \ \ | | | | | | | | | | | | | | | | | | | | zachjs-const-func-block-var Signed-off-by: Claire Wolf <claire@symbioticeda.com>
| * | | Allow blocks with declarations within constant functionsZachary Snow2020-07-251-18/+21
| | | |
* | | | Merge pull request #2281 from zachjs/const-realclairexen2020-08-181-3/+11
|\ \ \ \ | |_|/ / |/| | | Allow reals as constant function parameters
| * | | Allow reals as constant function parametersZachary Snow2020-07-191-3/+11
| |/ /
* | | Merge pull request #2301 from zachjs/for-loop-errorsclairexen2020-07-281-17/+19
|\ \ \ | | | | | | | | Clearer for loop error messages
| * | | Clearer for loop error messagesZachary Snow2020-07-251-17/+19
| |/ /
* / / Avoid generating wires for function args which are constantZachary Snow2020-07-241-0/+28
|/ /
* | Add AST_EDGE support to AstNode::detect_latch(), fixes #2241Claire Wolf2020-07-101-0/+2
| | | | | | | | Signed-off-by: Claire Wolf <claire@symbioticeda.com>
* | Merge pull request #2179 from splhack/static-castclairexen2020-07-011-0/+8
|\ \ | | | | | | Support SystemVerilog Static Cast
| * | static cast: simplifyKazuki Sakamoto2020-06-191-0/+7
| | |
| * | static cast: support changing size and signednessKazuki Sakamoto2020-06-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Support SystemVerilog Static Cast - size - signedness - (type is not supposted yet) Fix #535
* | | Allow constant function calls in for loops and generate if and caseZachary Snow2020-06-291-1/+5
| | |
* | | Remove YS_ATTRIBUTE(unused) where present just for log_assert()/log_debug().whitequark2020-06-191-1/+1
|/ /
* | Merge pull request #2112 from YosysHQ/claire/fix2040clairexen2020-06-091-0/+57
|\ \ | |/ |/| Add latch detection for use_case_method in part-select write
| * Add latch detection for use_case_method in part-select write, fixes #2040Claire Wolf2020-06-041-0/+57
| | | | | | | | Signed-off-by: Claire Wolf <claire@symbioticeda.com>
* | Support packed arrays in struct/union.Peter Crozier2020-06-071-12/+131
|/
* Merge branch 'master' into structPeter Crozier2020-06-031-3/+22
|\
| * Merge pull request #2029 from whitequark/fix-simplify-memory-sv_logicclairexen2020-05-291-2/+2
| |\ | | | | | | ast/simplify: don't bitblast async ROMs declared as `logic`
| | * ast/simplify: don't bitblast async ROMs declared as `logic`.whitequark2020-05-051-2/+2
| | | | | | | | | | | | Fixes #2020.
| * | Add force_downto and force_upto wire attributes.Marcelina Kościelnicka2020-05-191-0/+19
| | | | | | | | | | | | Fixes #2058.
| * | Merge pull request #2027 from YosysHQ/eddie/verilog_neg_uptoClaire Wolf2020-05-141-1/+1
| |\ \ | | | | | | | | ast: swap range regardless of range_left >= 0
| | * | ast: swap range regardless of range_left >= 0Eddie Hung2020-05-041-1/+1
| | |/
* | | Generalise structs and add support for packed unions.Peter Crozier2020-05-121-40/+106
| | |
* | | Implement SV structs.Peter Crozier2020-05-081-101/+233
|/ /
* | Merge pull request #2022 from Xiretza/fallthroughswhitequark2020-05-081-1/+1
|\ \ | | | | | | Avoid switch fall-through warnings
| * | Add YS_FALLTHROUGH macro to mark case fall-throughXiretza2020-05-071-1/+1
| | | | | | | | | | | | | | | C++17 introduced [[fallthrough]], GCC and clang had their own vendored attributes before that. MSVC doesn't seem to have such a warning at all.
* | | Merge pull request #2005 from YosysHQ/claire/fix1990Claire Wolf2020-05-071-10/+52
|\ \ \ | |/ / |/| | Add "nowrshmsk" attribute, fix shift-and-mask bit slice write for signed offset
| * | Add AST_SELFSZ and improve handling of bit slicesClaire Wolf2020-05-021-4/+10
| | | | | | | | | | | | Signed-off-by: Claire Wolf <claire@symbioticeda.com>
| * | Add "nowrshmsk" attribute, fix shift-and-mask bit slice write for signed ↵Claire Wolf2020-05-021-7/+43
| |/ | | | | | | | | | | offset, fixes #1990 Signed-off-by: Claire Wolf <claire@symbioticeda.com>
* | Merge pull request #2025 from YosysHQ/eddie/frontend_cleanupEddie Hung2020-05-051-12/+12
|\ \ | | | | | | frontend: cleanup to use more ID::*, more dict<> instead of map<>
| * | frontend: cleanup to use more ID::*, more dict<> instead of map<>Eddie Hung2020-05-041-12/+12
| |/
* / verilog: set src attribute for primitivesEddie Hung2020-05-041-1/+3
|/
* Merge pull request #1851 from YosysHQ/claire/bitselwriteClaire Wolf2020-04-211-12/+70
|\ | | | | Improved rewrite code for writing to bit slice
| * Make mask-and-shift the default for bitselwriteClaire Wolf2020-04-161-1/+1
| | | | | | | | Signed-off-by: Claire Wolf <claire@symbioticeda.com>
| * Add LookaheadRewriter for proper bitselwrite supportClaire Wolf2020-04-161-1/+7
| | | | | | | | Signed-off-by: Claire Wolf <claire@symbioticeda.com>
| * Improved rewrite code for writing to bit slice (disabled for now)Claire Wolf2020-04-151-12/+64
| | | | | | | | | | | | | | | | | | This adds the new rewrite rule. But it's still missing a check that makes sure the new rewrite rule is actually a valid substitute in the always block being processed. Therefore the new rewrite rule is just disabled for now. Signed-off-by: Claire Wolf <claire@symbioticeda.com>
* | Extend support for format strings in Verilog front-endClaire Wolf2020-04-181-8/+38
| | | | | | | | Signed-off-by: Claire Wolf <claire@symbioticeda.com>
* | ast: Fix handling of identifiers in the global scopeDavid Shah2020-04-161-2/+5
|/ | | | Signed-off-by: David Shah <dave@ds0.me>
* Merge pull request #1918 from whitequark/simplify-improve_enumwhitequark2020-04-151-5/+3
|\ | | | | ast/simplify: improve enum handling
| * ast/simplify: improve enum handling.whitequark2020-04-151-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this commit, enum values were serialized as attributes of form \enum_<width>_<value> where <value> was a decimal signed integer. This has multiple drawbacks: * Enums with large values would be hard to process for downstream tooling that cannot parse arbitrary precision decimals. (In fact Yosys also did not correctly process enums with large values, and would overflow `int`.) * Enum value attributes were not confined to their own namespace, making it harder for downstream tooling to enumerate all such attributes, as opposed to looking up any specific value. * Enum values could not include x or z, which are explicitly permitted in the SystemVerilog standard. After this commit, enum values are serialized as attributes of form \enum_value_<value> where <value> is a bit sequence of the appropriate width.