module mult_real #( parameter integer A_width = 8 ,parameter integer C_width = 8 ,parameter integer o_width = 31//division ) ( input rstn ,input clk ,input en ,input signed [A_width-1 :0] din ,input signed [C_width-1 :0] coef ,output signed [o_width-1 :0] dout ); wire signed [A_width+C_width-1:0] ac; wire signed [o_width-1 :0] Re_trunc; DW02_mult #(A_width,C_width) inst_c1 ( .A (din ), .B (coef ), .TC (1'b1 ), .PRODUCT (ac ) ); trunc #( .diw (A_width+C_width ) ,.msb (A_width+C_width-2 ) ,.lsb (A_width+C_width-o_width-1 ) ) u_round1 (clk, rstn, en, ac, Re_trunc); assign dout = Re_trunc; endmodule