用的quartus II 9.0,听说高版本的编译更快,但想使用sopc(qsys还不太熟,比如使用ssram不太方便,没有直接的控制器)。
一共使用的nios模块有cpu,ssram,tristate_bridge_ssram,sdram,jtag_uart,sysid和自己编写的一个模块adaboost,
测试时,adaboost只调用calc_w_four模块两次,编译时间8分钟。
全部64个 类似calc_w_four这种模块 一起调用后,编译时间为50分钟左右,实在太长,以后还有nios的C语言编译,不能忍!
请问有什么办法没?
是代码写得有问题?
还是其它问题???
calc_w_four模块:
module calc_w_four(DIR, FA, WEIGHT, w, data1,data2,data3,data4,data5,data6,data7,data8,data9,data10,data11,data12,data13,data14,data15,data16);
localparam DATA_WIDTH = 26;
localparam W_WIDTH = 15;
localparam FA_WIDTH = 26;
input DIR;
input signed [FA_WIDTH-1:0] FA;
input [W_WIDTH-1:0] WEIGHT;
output reg [W_WIDTH-1:0] w;
input signed [DATA_WIDTH-1:0] data1,data2,data3,data4,data5,data6,data7,data8,data9,data10,data11,data12,data13,
data14,data15,data16;
always @ (DIR or FA or WEIGHT or data1,data2,data3,data4,data5,data6,data7,data8,data9,data10,data11,data12,data13,data14,data15,data16) begin
if((data1+data4-data2-data3)+(data13+data16-data14-data15)-(data9+data12-data10-data11)-(data5+data8-data6-data7)<=FA)
if(DIR)
w <= WEIGHT;
else
w <= 1'b0;
else
if(DIR)
w <= 1'b0;
else
w <= WEIGHT;
end
endmodule