module cmultip(clk, ar, ai, qr, br, bi, qi);
  input clk;
  input [17 : 0] ar;
  input [17 : 0] br;
  output [17 : 0] qr;
  input [17 : 0] ai;
  input [17 : 0] bi;
  output [17 : 0] qi; 
 
  wire [17 : 0] br_add_bi;
  wire [17 : 0] ar_add_ai;
  wire [17 : 0] ai_sub_br;
  
  wire [17 : 0] arbrbiout;
  wire [17 : 0] araibiout;
  wire [17 : 0] aiarbrout;
  
  //完成加法预处理
  assign    br_add_bi = br + bi; 
  assign    ar_add_ai = ar + ai;
  assign    ai_sub_br = ai - ar;
  
  //调用乘法器模块
  rmulti rmulti1(.clock(clk), .dataa(ar), .datab(br_add_bi), .result(arbrbiout));
  rmulti rmulti2(.clock(clk), .dataa(bi), .datab(ar_add_ai), .result(araibiout));
  rmulti rmulti3(.clock(clk), .dataa(br), .datab(ai_sub_br), .result(aiarbrout));
  
  assign qr = arbrbiout - araibiout;
  assign qi = arbrbiout + aiarbrout;

endmodule
