'11' sequence detector systemverilog
In your Moore machine you set the 'z' in the combinatorial section. At the same time as you set the state to C. Thus the two coincide. To get z high after two bits have been detected (thus after the state C) you must move the assignment into the clocked section:

z &lt;= (state==C) ? 1'b1 : 1'b0;
// or even shorter:
z &lt;= (state==C);




Your Mealy machine is a problem. The definition of Mealy brings with it that the input  defines the output directly. Thus Mealy dictates that you must use a combinatorial statement of the type:

assign z = some_condition_with_state &amp;&amp; x;
   // or without assign in your always_comb section

The 'directly' means you can't really set 'z' after x has been high for two clocks as by that time it may have gone low again. 



One last tip: Don't use variables like 'z' and 'x' as they are too easily confused with 1'bx and 1'bz.