Merge pull request #1848 from YosysHQ/eddie/fix_dynslice

ast: simplify to fully populate dynamic slicing case transformation
This commit is contained in:
Claire Wolf 2020-04-01 08:38:14 +02:00 committed by GitHub
commit 926a010b49
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 1 deletions

View File

@ -1727,7 +1727,7 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage,
}
did_something = true;
newNode = new AstNode(AST_CASE, shift_expr);
for (int i = 0; i <= source_width-result_width; i++) {
for (int i = 0; i < source_width; i++) {
int start_bit = children[0]->id2ast->range_right + i;
AstNode *cond = new AstNode(AST_COND, mkconst_int(start_bit, true));
AstNode *lvalue = children[0]->clone();

12
tests/simple/dynslice.v Normal file
View File

@ -0,0 +1,12 @@
module dynslice (
input clk ,
input [9:0] ctrl ,
input [15:0] din ,
input [3:0] sel ,
output reg [127:0] dout
);
always @(posedge clk)
begin
dout[ctrl*sel+:16] <= din ;
end
endmodule