基于FPGA数据流控制动态可重构的实现

发布者:Blissful567最新更新时间:2011-05-11 来源: 电子科技关键字:FPGA  遗传算法  动态重构  单片机 手机看文章 扫描二维码
随时随地手机看文章

摘要  基于FPGA基本数据流的下载控制方式,利用遗传算法,通过单片机控制数据流的方式对FPGA进行编程配置,实现自身重构,使系统具有自适应、自组织和自修复的特性。
关键词  FPGA;遗传算法;动态重构;单片机

    可重构计算的概念是在20世纪60年代由美国加利福尼亚大学的Geraid Estrin提出,并研制了系统原型。70年代末,Suetlana P Kartas-hev和Steven I.Kartashev博士提出了动态可重构系统的概念。进入90年代,可重构技术成为了研究热点,近几年,可重构计算和软硬件协同设计,是当前计算机科研领域的两大核心,其任务建模平台大多是基于FPGA的动态可重构系统,是最近几年该领域研究的热点话题,并在多领域得到广泛应用。


    本文实现了基于遗传算法的硬件演化过程。通过Mcu随机产生种群,选择好的基因进行交叉变异产生后代,然后将合适的基因通过测试找到最佳重构方案。选择最佳方案应用于硬件,实现自我修复和自适应。

1 软件算法
    遗传算法(Genetic Algorithm,GA)是由美国密执安大学John Holland教授于20世纪70年代提出并逐步发展起来的一种自适应全局优化搜索算法。他模拟自然选择和自然遗传过程发生的繁殖,交叉和基因突变现象,在每次迭代中都保留一组候选解,并按某种指标从群解中选取较优个体,利用遗传算子对这些个体进行组合,产生新一代的候选解群,直到满足某种收敛指标,最终得到问题的最优解或近似解。


    基本遗传算法由4部分组成:(1)编码(产生初始种群)。(2)适应度函数计算。(3)遗传算子(选择、交叉、变异)。(4)运行参数。


1.1 选择
    遗传算法首先要产生初始种群,通常叫做染色体。染色体由基因组成,如11001,每位二进制数就是一个基因变量,然后通过适应度函数检测合格的染色体,选择合格染色体进行下一步的交叉、变异,得到新个体。


    遗传算法中的适应度,是表示某一个体对环境的适应能力,也表示该个体繁殖后代的能力。遗传算法的适应度函数也叫评价函数,是用以判断群体中个体优劣程度的指标,它是根据所求问题的目标函数进行评估的。


    此处适应度选择函数的模式通过一种反馈模式,将产生的个体经过仿真检测评估。如果达到要求,经评估结果存入存储模块,然后以轮盘赌的方式对所有的函数结果加权,判断每个基因的适应度与加权和的比值,即介于(0,1)的小数,选择大于—个值比如0.8为合格,当评估完群体中所有个体的适应度后,选择适应度大于0.8的个体存储,然后等待由交叉变异模块产生出的新个体。


1.2 交叉变异
    交叉变异模块得到来自选择模块的两个个体,根据随机数模块产生的随机数与交叉概率作比较,判断是否进行交叉操作。交叉算子根据交叉率将种群中的两个个体随机交换某些基因,能够产生新的基因组合,期望将有益基因组合在一起。


    如找到两个父代基因,需要进行交叉,找到基因的交叉点,将各个基因的交叉点交叉基因变量形成新的基因变量,变异就是每个基因找到基因变异点,试图通过基因变异找到合适的方案,如图1所示。

a.JPG


1.3 基因下载
    得到的优良基因就是所需的方案,将这个方案直接下载,最后实现可控制,可重构,自适应。如图2所示。

b.JPG


    基本遗传算法是通过某种编码机制把对象抽象为由特定符号按一定顺序排成的串,就像染色体都是由基因排成的串,此处是使用二进制编码,得到的是5 bit二进制字符串。程序如下:
    c.JPG
     

2 FPGA基本结构
    目前主流FPGA均采用基于SRAM工艺的查找表结构,也有些军品和宇航级FPGA,采用Flash或熔丝与反熔丝工艺的查找表结构。通过烧写文件改变查找表内容的方法来实现对FPGA的重复配置。
    查找表(Look-Up-Table)简称为LUT,目前FPGA中多使用4输入的LUT,所以每个LUT可以看成一个有4位地址线的RAM。这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出。

[page]
2.1 多路复用器(Multiplexer)
    基于这种4输入LUT结构的原理,采用了4输入的复用选择器,在多路数据传送过程中,能够根据需要将其中任意一路选出,也称多路选择器或多路开关。本文将控制器产生的5位数据流通过移位寄存器来控制4个输入端口的选择,如图3所示。

e.JPG

2.2 移位寄存器(Shift Register)
    在数字电路中,通常会用寄存器存放二进制数据或代码,如图4所示。Mux的选择位由控制器产生的数据流经缓存后输出,SelA[1,0],SelB[1,O]分别作用于两个多路复用器。移位寄存器中输出控制多路复用器的控制位如表1所示。

f.JPG
g.JPG


2.3 与非门
    与非门是组成各种电路的基础门,可根据需要,用与非门搭建不同的门,如图5所示,将不同的与非门结构实现与门或门等其他功能,实现动态可重构。

h.JPG



3 可重构系统的单元结构搭建
    根据4输入LUT的结构原理,本电路选用2个4输入的MUX用来选择与非门的输入端口,然后用1个2输入的MUX选择数据的输出,3个MUX的选择位分别用SelB[1,0],SelA[1,0],Sel-out控制,移位寄存器作为5位串行二进制数的缓存,如图6所示。可知,与非门可以通过东西南北4输入的选择组成各种数字电路,这种单元结构可以继续扩展为2×2或更多单元,实现复杂的数字电路。这里演示单元结构形成的与门和或门的简单结构,进一步说明可重构的可实现性。

i.JPG


    当产生数据流经过缓存进行重构电路后,可以看到新的熟悉电路所实现的功能,如图7所示。通过观察输入和输出端的关系,测试得到所需电路的最佳方案,即可下载到硬件,完成所需任务。

j.JPG



4 硬件平台结构
    硬件结构是基于单片机与FPGA的通信。Mcu选择MSP430,通过RS232和FPGA进行通信,PC机通过JTAG接口向中心芯片下载程序。外围设备中,选择2个8位LED,4位输入按键,1个12864液晶显示,预留32位的扩展接口。如图8所示,FPGA选择的是Ahera的EP1C16Q240C8。

k.JPG



5 结束语
    实施电路可重构技术,已成为计算系统研究中的新热点,使硬件逐渐软件化,通过微处理器结合多个FPGA对其进行配置,实现动态局部可重构,具有较强的通用性和自适应性,适用于模块化设计。本文基于5 bit数据流,实现了FPGA的部分动态可重构,可以实时生成所需要的硬件结构。动态可重构可以充分利用可重配置硬件,尤其是可重配置计算方面。该技术在理论上有较大发展,FPGA未来的发展方向之一就是做支持动态可配置的SOPC硬件。

关键字:FPGA  遗传算法  动态重构  单片机 引用地址:基于FPGA数据流控制动态可重构的实现

上一篇:基于DSP和CAN总线的RTU的设计
下一篇:基于DSP+CPLD的异步电动机控制系统开发平台设计

推荐阅读最新更新时间:2024-05-02 21:22

ATMEL AVR微控制器的开发方案
微控制器开发团队与编译器开发人员的合作成果是生成的代码效率更高,性能更好。本文介绍的是为了使ATMEL AVR微控制器系列更适合C编译器,开发者在编译器开发阶段对微控制器架构和指令集所进行的调整。 AVR架构的核心是一个可快速访问RISC寄存器文件。该文件由32个8位通用寄存器构成。微控制器可在一个单时钟周期内加载该文件中的任意两个寄存器到算术逻辑单元(Arithmetic Logical Unit, ALU),完成所要求的操作,将结果写回到任意一个寄存器。ALU支持寄存器间或某一寄存器与一个常数之间的运算和逻辑功能,单寄存器操作也是在ALU中执行的。微控制器使用一个哈佛(Harvard)架构,在该架构中,程序存储器空间与数据
[单片机]
ATMEL AVR<font color='red'>微控制器</font>的开发方案
基于单片机的太阳能环境参数测试仪设计方案
引 言   为了确保太阳能发电系统能够正常的工作,需要对太阳能发电系统的各项环境参数进行测量,从而有效地控制其运行。本文介绍了一种基于单片机的太阳能参数测试仪,提供了3种参数的测量功能和通信接口,以及2种供电方式,既可作为手持设备使用,又能安装在发电系统中,具有较高的实用价值。   1 硬件 电路设计   1.1 总体结构   该测试仪以AT89S52单片机为核心,外接温湿度传感器SHTll、照度传感器TSL2561、四位共阴数码管、RS485总线通信接口以及显示切换按键。单片机上电工作后,对当前温度、湿度、光强度进行实时测量,通过按键切换将测得的3种参数通过LED数码管进行轮流显示;此外,还可以通过RS485总线与PC
[单片机]
基于<font color='red'>单片机</font>的太阳能环境参数测试仪设计方案
单片机定时器工作模式TMOD设置
单片机定时器工作模式TMOD设置 TMOD:定时器/计数器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER) 定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。 其格式为: TMOD结构图 ============================================== 其中低四位定义定时器/计数器T0,高四位定义定时器/计数器T1,各位的说明: Ⅰ,GATE——门控制。 ●GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。 当INT0引脚为高电平时TR0置位,启动定时器T0; 当I
[单片机]
<font color='red'>单片机</font>定时器工作模式TMOD设置
《谈学单片机有前途还是嵌入式系统有前途》3
小编发现近期有很多新的发烧友加入我们,而且都是菜鸟。有的是对自己的专业了解不多,想问自己应该学什么;有的是想问自己究竟学哪些东西对于将来比较有用 其实对于这些同学,小编建议有空的话多在论坛和博客上看看,逛一逛,了解一下电子行业一些具体的东西。等你选择出了几个自己觉得不错的方向的时候,再来和发烧友们了解一下发展趋势,最终决定自己要往哪些方向走。如果你自己都一头雾水,别人也不知道要给你从何讲起了~~另外对于这些同学,如果想要学习单片机的话,还是建议去吴坚鸿的帖子去看看,或者就去小编的博客看看,小编汇总了他的回复,也有链接可以看看他的文章,对你们一定会有非常大的帮助的。 上周吴坚鸿回答了一个大三学生的问题,小编觉得,如果我大
[单片机]
《谈学<font color='red'>单片机</font>有前途还是嵌入式系统有前途》3
基于单片机的电热水器定时控制器设计
0 引言 传统的大容量电热水器的加热时间一般都比较长,如果热水器一直开着,则会一直耗能耗电,而定时开关控制器则可有效解决这些问题,使电热水器使用起来更加舒适省电。这样,电热水器不仅可以充分利用闲置的时间,避免用户使用时长时间的等待,减少不必要的保温,也可以更加节约电能,特别对低谷及高峰用电有差价的地区.利用晚间低谷用电开机加热,白天用电高峰关机保温,便能大量节约电费开支。本文中的定时控制器主要是以单片机AT89C2051作为核心控制元件,通过外围电路来控制热水器的电源,以达到定时开关机的目的。 1 硬件组成 本电热水器控制系统在加电后即可进入正常计时状态,用户可以随时校准时间并设定热水器的开关时间,以便控制器能够在设定的开关
[单片机]
按歪歪扭扭电路图做有模有样单片机89C51编程器
上次要用 单片机 89C51时,K1200编程器有点问题,不知道编程器还是单片机出问题,于是自己又做了个简易的 89C51 编程器,主要是不想花什么钱,就地取材。电路图参考了网上的一些资料。 正好有2个单片机小板,加上一个STC单片机。 只是引脚太多,飞线太多了,焊得累S了。然后 单片机 和VC编程也累得不行。嗑嗑碰碰,终于成功。烧写单片机 89C51 可真是麻烦。 电路图,手画的,能简便就简便: 完工后的图,焊得我晕: P0口上的上拉电阻一定要接,不然读 单片机 数据正确,但烧写时比较奇怪,前几个数量随机的字节会正确,后面就都是0xFF了,怎么调整程序都没有用,浪费了很多时间。通讯时上拉电阻挺重要的。 后来K1200
[电源管理]
按歪歪扭扭电路图做有模有样<font color='red'>单片机</font>89C51编程器
PIC16C64单片机外部功能特点
一、捕抓/比较/脉宽调制模块  PICI6C64单片机的RC2/C CPI脚具有捕抓/比较/PWM输出的功能,对应于内部的捕抓/比较/PWM模块,简称CCPI模块。该模块内有一16位寄存器。(CCPR1)可由软件设置而作为捕抓寄存器,比较寄存器或PWM输出寄存器。由图工中的CCP1控制寄存器(CCP1CON)来选择模式。 (一)捕抓功能  RC2/CCP 1脚作为捕抓功能时,应置为输入态。当有脉冲事件在CCP1脚上发生时,CCPR1即捕抓记录下此时TMR1(计数器1)的值,井产生捕抓发生中断请求. 例程1. BSF TRISC,2 ;CCP1脚置为输入  MOVLW,XXXX0101;选CCP1为捕抓模式, 
[单片机]
单片机---STM8开发环境搭建与标准库工程创建
背景说明 手头有一个单片机的Lora模块,之前也用来开发了一个DTU和温度采集产品,但是对于单片机开发的整个流程,并没有特别清楚,只是用了官方提供的模块代码,增加了温度采集和modbus数据采集过程,并且增加了一些数据传输,加密解密的过程,主要集中在了代码的修改上。对于开发环境及工程搭建这里,并没有深入研究,所以今天来尝试一下,弄一个干净的编译环境及工程。 开发环境 这里用的软件是IAR ,可以自己去官网下载再注册,也可以下载此处的版本 网盘:提取码s2ro 安装过程就是比较简单了,下一步,继续,继续,……,就完事了 整个过程可以参考 安装过程 注册的过程稍微繁琐一点,不过为了免费,还是要耐心一点。 编译环境 ST芯片
[单片机]
<font color='red'>单片机</font>---STM8开发环境搭建与标准库工程创建
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

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