马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
采用的板子为altera的EP4CE115F29C7,目前程序在modelsim仿真可以实现,但是上板后无法实现,初步认为是主程序出现了问题。求助大佬给点建议,感谢!!!(代码为引用,非原创)always @(posedge clk or negedge rst_n)begin
// 复位
if(rst_n == 1'b0)begin
for(j = 0; j < `D; j=j+1) begin // 位置空间的最优解初始化
gen_r(16'h0056, rand); // 生成随机数
xgbest[j] <= `X_MIN + (rand*16'h100 + rand) % (`X_MAX - `X_MIN + 1); // 局部最优解的位置随机初始值
end
fgbest <= 32'hffff_ffff; // 32位全局最优解初始值
gbest <= 8'hff; // 8位全局最优解初始值
// 对位置和速度进行随机初始化赋值
for(i = 0; i < `N; i=i+1) begin
for(j = 0; j < `D; j=j+1) begin
gen_r(rand, rand);
x[i][j] <= `X_MIN + (rand*16'h100 + rand) % (`X_MAX - `X_MIN + 1); // 随机的初始位置
gen_r(rand, rand);
v[i][j] <= `V_MIN + (rand*16'h100 + rand) % (`V_MAX - `V_MIN + 1); // 随机的初始速度
xlbest[i][j] <= x[i][j];
end
lbest[i] <= 32'hffff_ffff; // 既不最优解初始值
end
end
else if(end_cnt) begin
for(i = 0; i < `N; i=i+1)begin
for(j = 0; j < `D; j=j+1) begin
// 生成随机数因子
gen_r(rand, r1[i][j]) ;
gen_r(r1[i][j], r2[i][j]) ;
gen_r(r2[i][j], rand) ;
// 加入混沌
gen_c(r1[i][j], r2[i][j], x[i][0], x[i][1], x[i][0], x[i][1]);
// 生成速度
gen_v(v[i][j], xlbest[i][j], x[i][j], r1[i][j], r2[i][j], xgbest[j], v[i][j]);
// 更新位置
gen_x(x[i][j], v[i][j], x[i][j]);
end
// 更新自适应函数解
gen_f1(i, f);
// 比较并得到最优解
com_f(f, i, lbest[i], fgbest, gbest, lbest[i], fgbest);
/*$display("gbest = %0h", gbest);
$display("fgbest = %0h", fgbest);*/
end
end
end
|