(2)系统各模块功能解释如下:
Control模块该模块好比软件实现的时候的CPU控制着整个系统的协调工作。它的主要功能是产生一些控制信号,控制各个模块的启动、停止,并为各个模块的同步提供协调信号。具体讲:它提供各个模块的时钟信号,同步各个模块;接收来自Randoml模块的2个随机地址,从RAM模块中选择个体和其对应的适应值将其传到Choose模块;接收来自Choose模块和Crossover_mutation模块的状态信号,控制其发出的对其他模块的控制信号;控制多路数据选择器、Initial模块和RAM模块的启动等。
Initial模块该模块即是初始化模块,它内部主要是由一个随机数模块构成的,用来产生一定数量的随机数序列作为初始种群。
Fitness模块该模块用来计算个体的适应值。一般根据软件实现中适应值函数的不同,该模块内部主要是由一些加法器、锁存器和乘法器构成(在函数优化中)。
Choose模块该模块主要实现选择2个个体的功能。当该模块启动,并从存储模块接受2个个体和其适应值后,采用联赛竞争机制选择两者中的1个进入下一模块,如此再选择1次,选择2个要进入交叉变异模块的个体。
交叉变异模块 该模块在启动后,接收Choose模块传来的2个个体,并按照随机数模块产生的随机数确定交叉点,进行交叉和变异。
多路数据选择模块 对进入fitness模块的个体进行分时控制。
Ramdoml模块该模块为选择模块选择个体和适应值提供2个随机的地址。
Ramdom2模块该模块为交叉变异模块提供交叉和变异的概率。
Ram模块 主要是用于保存个体和其适应值。具体实现时,我们常用了Altera公司提供的IP core生成2个双端口的ram。
(3)系统总执行过程:系统通过Control模块中的一个始终上升沿启动,随后启动Intial模块产生初始种群,并对其产生的个体进行计数,在达到规定的种群数量后停止Intial模块,控制模块控制多路数据选择器对Intial模块选通,并让产生的初始个体进入Fitness模块计算适应值,并存入相应的RAM地址中;接着控制模块启动Choose模块,Ramdoml模块随机的产生2个地址,并选择该地址中的个体作为选择的个体,运用联赛选择选择其一,如此选择2次,产生2个用于Crossover_mutation模块的个体,Crossover_mutation模块在Ramdom2模块产生的随机数控制下对2个个体实施交叉变异,产生2个个体,控制模块选通多路数据选择模块对Crossover_mutation模块选通,使产生的新个体通过Fitness模块将个体和适应值存入RAM中相应的位置。接着长运行上述过程一直到产生规定数量的个体,控制模块结束整个系统的运行。
(4)硬件实现:整个系统用VHDL语言编程实现上述各功能模块,在AlteraⅡ5.O环境下进行仿真。选用Al—tera公司CycloneⅡ型号的FPGA系列进行设计。Ram块用Altera IP cote中的双端口RAM。
3 实 验
在本部分中,首先对上述提到的各个模块进行独立的仿真,然后再将其运用在一个函数的优化问题上,并与其他同问题软件实现的算法进行比较。