Primero que nada, el código que muestras es peligroso: estás asignando phase_c_hi = 1 junto con phase_b_lo en el estado hall=001. Eso significa que tienes el high-side de C y el low-side de B activos, pero si también activas A_hi, estás creando un camino entre Vcc y GND a través de dos fases. Revisa tu tabla de conmutación, porque para un BLDC en pasos de 60 grados, nunca deben estar activos dos high-sides al mismo tiempo. Te recomiendo usar una look-up table y un registro de salida separado del cálculo combinatorio. Algo como:
always @(posedge clk) begin
case (hall)
3'b001: pwm_out <= 6'b100010; // A-Hi, B-Lo
3'b010: pwm_out <= 6'b010001; // B-Hi, C-Lo
...
endcase
end