In reply to Ankelih:
Verilog does not allow operands with dynamically sized widths. You can create a bitwise mask to do this
tmp_array = data & (512'b1 << data_len_code*8) - 1
In reply to Ankelih:
Verilog does not allow operands with dynamically sized widths. You can create a bitwise mask to do this
tmp_array = data & (512'b1 << data_len_code*8) - 1