title: Error "procedural assignment to a non-register result is not permitted"
body: <p>I'm getting the error </p>
  
  <blockquote>
    <p>[Synth 8-2576] procedural assignment to a non-register result is not
    permitted ["lpm_mult.v":29]</p>
  </blockquote>
  
  <p>What am i doing wrong?</p>
  
  <pre><code>module lpm_mult (
      dataa, datab,     // multiplicand,multiplier
      sum,              // partial sum 
      clock,            // pipeline clock
      clken,            // clock enable
      aclr,             // asynch clear
      result            // product
  );
  
  input  clock;
  input  clken;
  input  aclr;
  input  [31:0] dataa;
  input  [31:0] datab;
  input  [63:0] sum;
  output [63:0] result;
  
  always @ (clken or posedge clock) begin
      if (1==clken) begin
          assign result = dataa * datab;
      end
  end
  
  endmodule
  </code></pre>