Pipelining

// Combinational: 1 cycle, fmax ~ 100 MHz
always @(posedge clk) begin
  result <= (a * b + c) * d;
end
^ This is Lower Latency?
// 3-stage pipeline: 3 cycles, fmax ~ 300 MHz
always @(posedge clk) begin
  stage1 <= a * b;
  stage2 <= stage1 + c;
  result <= stage2 * d;
end
^ This is Lower Latency?

* For illustration purposes only, see FAQ for more details.