Verilog/System Verilog restrictions on generate block and continous assignment
Simulator hangs are sometimes caused by 0-delay loops, like combinatorial feedback loops. Other tools might show you exactly where the loop is occurring. You can also try adding #1 delays to your continuous assignments. Then time can advance and you might be able to see oscillations of your signals in the waveform.