Ok, that's interesting. I also just copied the OP's code, but to a verilog (.v) file, not System Verilog. Apart from that, everything's pure vanilla. The SV aspect may explain the bad presentation of the +1 value (you and the OP). Maybe the carry arises from the combination of SV + Cyclone IV, but doesn't appear in SV + CPLD. Somewhere, recently, I saw a reference to looking at a lower level (gate level?) than the RTL representation. I'll have a look at the Q II manuals tonight, but maybe a guru could provide some early pointers to the method?