mirror of
https://github.com/YosysHQ/yosys
synced 2025-06-21 21:33:40 +00:00
Merge pull request #2179 from splhack/static-cast
Support SystemVerilog Static Cast
This commit is contained in:
commit
8ce4f8790e
11 changed files with 135 additions and 0 deletions
|
@ -950,6 +950,7 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage,
|
|||
case AST_TO_SIGNED:
|
||||
case AST_TO_UNSIGNED:
|
||||
case AST_SELFSZ:
|
||||
case AST_CAST_SIZE:
|
||||
case AST_CONCAT:
|
||||
case AST_REPLICATE:
|
||||
case AST_REDUCE_AND:
|
||||
|
@ -3487,6 +3488,13 @@ replace_fcall_later:;
|
|||
}
|
||||
}
|
||||
break;
|
||||
case AST_CAST_SIZE:
|
||||
if (children.at(0)->type == AST_CONSTANT && children.at(1)->type == AST_CONSTANT) {
|
||||
int width = children[0]->bitsAsConst().as_int();
|
||||
RTLIL::Const val = children[1]->bitsAsConst(width);
|
||||
newNode = mkconst_bits(val.bits, children[1]->is_signed);
|
||||
}
|
||||
break;
|
||||
case AST_CONCAT:
|
||||
string_op = !children.empty();
|
||||
for (auto it = children.begin(); it != children.end(); it++) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue