Open enurseitov opened 2 years ago
It's the generated Verilog that's incorrect - self.input+x
are supposed to be 9-bit numbers.
the next one takes 10 bits
It doesn't.
Yes after thinking about it I admit that my expectations were wrong, the way migen behaves makes sense. Still, the mismatch with Verilog is there...
Consider this minimal example:
Expected output:
0x03020100
Produced output:0x0c040100
, i.e.self.input+1
takes 9 bits, the next one takes 10 bits etc.Yet, the generated Verilog code is correct and produces expected results when simulated by Vivado simulator:
assign output_1 = {(input_1 + 2'd3), (input_1 + 2'd2), (input_1 + 1'd1), input_1};