|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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
复制代码
|
|