mirror of
https://github.com/YosysHQ/yosys
synced 2025-07-31 00:13:18 +00:00
Add AST_SELFSZ and improve handling of bit slices
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
This commit is contained in:
parent
bbbce0d1c5
commit
589ed2d970
5 changed files with 22 additions and 7 deletions
|
@ -809,6 +809,11 @@ void AstNode::detectSignWidthWorker(int &width_hint, bool &sign_hint, bool *foun
|
|||
sign_hint = false;
|
||||
break;
|
||||
|
||||
case AST_SELFSZ:
|
||||
sub_width_hint = 0;
|
||||
children.at(0)->detectSignWidthWorker(sub_width_hint, sign_hint);
|
||||
break;
|
||||
|
||||
case AST_CONCAT:
|
||||
for (auto child : children) {
|
||||
sub_width_hint = 0;
|
||||
|
@ -1267,7 +1272,8 @@ RTLIL::SigSpec AstNode::genRTLIL(int width_hint, bool sign_hint)
|
|||
|
||||
// just pass thru the signal. the parent will evaluate the is_signed property and interpret the SigSpec accordingly
|
||||
case AST_TO_SIGNED:
|
||||
case AST_TO_UNSIGNED: {
|
||||
case AST_TO_UNSIGNED:
|
||||
case AST_SELFSZ: {
|
||||
RTLIL::SigSpec sig = children[0]->genRTLIL();
|
||||
if (sig.size() < width_hint)
|
||||
sig.extend_u0(width_hint, sign_hint);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue