鱼C论坛

 找回密码
 立即注册
查看: 1120|回复: 0

粒子群算法在FPGA上的实现

[复制链接]
发表于 2023-7-3 10:42:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
采用的板子为altera的EP4CE115F29C7,目前程序在modelsim仿真可以实现,但是上板后无法实现,初步认为是主程序出现了问题。求助大佬给点建议,感谢!!!(代码为引用,非原创)
  1. always @(posedge clk or negedge rst_n)begin
  2.     // 复位
  3.     if(rst_n == 1'b0)begin
  4.         for(j = 0; j < `D; j=j+1) begin // 位置空间的最优解初始化
  5.             gen_r(16'h0056, rand);      // 生成随机数
  6.             xgbest[j] <= `X_MIN + (rand*16'h100 + rand) % (`X_MAX - `X_MIN + 1);  // 局部最优解的位置随机初始值
  7.         end
  8.         fgbest <= 32'hffff_ffff;    // 32位全局最优解初始值
  9.         gbest <= 8'hff;             // 8位全局最优解初始值
  10.         
  11.         // 对位置和速度进行随机初始化赋值
  12.         for(i = 0; i < `N; i=i+1) begin
  13.             for(j = 0; j < `D; j=j+1) begin
  14.                 gen_r(rand, rand);
  15.                 x[i][j] <= `X_MIN + (rand*16'h100 + rand) % (`X_MAX - `X_MIN + 1); // 随机的初始位置
  16.                 gen_r(rand, rand);
  17.                 v[i][j] <= `V_MIN + (rand*16'h100 + rand) % (`V_MAX - `V_MIN + 1); // 随机的初始速度
  18.                 xlbest[i][j] <= x[i][j];
  19.             end
  20.             lbest[i] <= 32'hffff_ffff; // 既不最优解初始值
  21.         end
  22.     end
  23.     else if(end_cnt) begin
  24.         for(i = 0; i < `N; i=i+1)begin
  25.             for(j = 0; j < `D; j=j+1) begin  
  26.                 // 生成随机数因子
  27.                 gen_r(rand, r1[i][j])       ;
  28.                 gen_r(r1[i][j], r2[i][j])   ;
  29.                 gen_r(r2[i][j], rand)       ;

  30.                 // 加入混沌
  31.                 gen_c(r1[i][j], r2[i][j], x[i][0], x[i][1], x[i][0], x[i][1]);
  32.             
  33.                 // 生成速度
  34.                 gen_v(v[i][j], xlbest[i][j], x[i][j], r1[i][j], r2[i][j], xgbest[j], v[i][j]);

  35.                 // 更新位置
  36.                 gen_x(x[i][j], v[i][j], x[i][j]);
  37.             end

  38.             // 更新自适应函数解
  39.             gen_f1(i, f);

  40.             // 比较并得到最优解
  41.             com_f(f, i, lbest[i], fgbest, gbest, lbest[i], fgbest);
  42.             /*$display("gbest = %0h", gbest);
  43.             $display("fgbest = %0h", fgbest);*/
  44.         end
  45.     end
  46. end
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-27 17:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表