基于遗传算法的组合逻辑电路设计的FPGA实现

2012-06-15 13:03:18来源: 电子设计工程
   

摘要:基于遗传算法的组合逻辑电路的自动设计,依据给出的真值表,利用遗传算法自动生成符合要求的组合逻辑电路。由于遗传算法本身固有的并行性,采用软件实现的方法在速度上往往受到本质是串行计算的计算机制约,因此采用硬件化设计具有重要的意义。为了证明基于FPGA的遗传算法的高效性,设计了遗传算法的各个模块,实现了基于FPGA的遗传算法。
关键词:遗传算法;组合逻辑电路;FPGA;随机数

    遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法,它最初是由美国Michigan大学J.Holland教授于1975年首先提出来的。随着经济社会的快速发展,人类科学研究与生产活动的广度与深度都大大拓展了。科研与生产实践中涌现出的大量新课题对作为社会发展催化剂的信息与控制科学提出了前所未有的挑战。传统信息处理算法在面对各种非线性、不确定、不能精确解析以及建模机理复杂的问题时,往往显得捉襟见肘。正是在这种背景下,各种智能信息处理算法如雨后春笋般涌现出来。作为智能信息处理算法中的重要一员,遗传算法近年来以其独特而卓越的性能日渐引起了人们的关注。
    组合逻辑电路其特点是功能上无记忆,结构上无反馈,即电路在任意时刻的输出状态只取决于该时刻各输入状态的组合,而与电路的原状态无关。本文通过实例介绍组合逻辑电路的设计方法,并通过电子设计自动化EDA(Electronic Design Automation)进行仿真分析,使组合逻辑电路的设计变得更方便,更实用。
    随着FPGA性能的不断提高,基于FPGA的计算加速已经逐渐成为提高计算速度和计算效率的重要手段之一。FPGA能够实现程序的并行化处理,不仅结构简单,而且有效地减少了运算时间、提高了运行效率,为遗传算法能在一些实时、高速的场合得到应用提供了依据。

1 基于FPGA遗传算法设计
    遗传算法是一种多点并行的迭代搜索算法,它的每一代称为一个种群,由多个个体组成,每个个体称为染色体,染色体由一定数目的字符组成。每个字符称为一个基因,基因在染色体中的位置决定了基因所表达的特性。
    文中基于FPGA的遗传算法,整个系统分为4个单元,4个单元分别为:选择单元、交叉单元、变异单元和适应度计算单元。
1.1 选择单元
    选择单元执行遗传算法中的选择操作。选择策略决定哪些个体存活并得以繁殖,因其直接关系到遗传算法的运行导向问题故对遗传算法的性能有直接并且重大的影响。标准遗传算法所采用的轮盘赌选择策略简便直观,但可能会产生较大的抽样误差。于是,各种改进的选择策略产生了。
    最早提出的使用浓度控制的选择策略可以保证群体的多样性从而避免了早熟现象并且提高了算法的鲁棒性及运算效率。后来通过对浮点遗传算法早熟收敛现象的分析,有人提出了一种新的父代选择策略,即使用当前代的子代个体作为下代的父代个体,可使交叉算子持续地探索和开发新空间。目前,人们又发现可以通过选择策略的改变调控并维持种群多样性。这类研究成果中,文献中提到的重复串的适应度处理是一个有益的尝试。
1.2 交叉单元
    交叉模块执行遗传算法中的交叉操作。由随机数模块产生的随机数与事先确定的交叉概率相比较,如果随机数小于交叉概率,则一对个体进行交叉操作,否则该对个体不变,直接进入变异模块。
    文中一对个体进行交叉操作的基因位由随机数决定。随机数模块产生一个与个体等长的随机二进制串,若随机二进制串中的某一位为1,则该对个体中该位置的基因相互交叉;否则,该对个体中该位置的基因保持不变。
1.3 变异单元
    变异模块执行遗传算法中的变异操作。与交叉模块相似,变异模块也是将随机数模块产生的随机数与事先确定的变异概率相比较,决定是否进行变异操作。同时个体中进行变异操作的基因位也是由一个与个体等长的随机二进制字符串决定的。对个体而言,执行变异操作的基因位不宜过多,否则容易对个体造成较大的破坏,影响种群的稳定性。本文将两个随机二进制字符串(每一位0、1等概率)进行相与操作,这样得到的新的随机二进制字符串中每一位为1的概率将降低到25%,用这个新的随机二进制串来决定个体变异的基因位。这样执行变异操作的个体中,每一位基因变异的概率也会降低到25%。
1.4 适应度计算单元
    适应度计算模块执行遗传算法中的适应度计算比较操作,它根据适应度计算函数来计算种群中每一个个体的适应度,包括遗传算法开始时初始化产生的种群和后来遗传变异后产生的种群,并把每个个体的适应度大小保存到存储器中。同时,适应度计算模块还需要记录每一代种群中适应度最高的个体。适应度计算模块有一个内置的计数器,计数器随适应度计算模块的启动而启动,从0开始计数,每个时钟周期加1。计数器数值表示当前个体及其适应度在存储器模块当中的存放地址。适应度计算模块停止工作时,计数器会重新归零,等待新一轮的启动信号。

[1] [2] [3]

关键字:遗传算法  组合逻辑电路

编辑:北极风 引用地址:http://www.eeworld.com.cn/FPGA/2012/0615/article_2979.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
遗传算法
组合逻辑电路

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved