The following module should return 6'b110011, but instead it just hangs xsim 2013.4:
module issue_021(y); output [5:0] y; assign y = 6'd3 ** 123456789; initial #10 $display("%b", y); endmodule
XSim 2013.4 seems to try to evaluate this expression by performing 123456789 multiplications instead of using a proper power-modulus algorithm.
In my tests I have run this module with:
xvlog issue_021.v xelab -R work.issue_021
Crosscheck: Modelsim 10.1d can simulate this module in an instant and Vivado 2013.4 can synthesize it correctly. Isim 14.7 and XST 14.7 seem to suffer from a similar problem.
History:
2014-01-25 Reported bug in Xilinx Support Forum
2014-04-16 Still broken in XSim 2014.1
2015-05-15 Still broken in XSim 2015.1
2017-07-01 Fixed in XSim 2017.2