- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于生物学的电子电路设计
在人类的科学研究中,有不少研究成果得益于大自然的启发,例如仿生学技术。随着计算机技术和电子技术的发展,许多的科学研究越来越与生物学紧密相联。在人工智能方面,已经实现了能用计算机和电子设备模仿人类生物体的看、听、和思维等能力;另一方面,受进化论的启发,科学家们提出了基于生物学的电子电路设计技术,将进化理论的方法应用于电子电路的设计中,使得新的电子电路能像生物一样具有对环境变化的适应、免疫、自我进化及自我复制等特性,用来实现高适应、高可靠的电子系统。这类电子电路常称为可进化硬件(EHW, Evolvable HardWare)。本文主要介绍可进化硬件EHW的机理及其相关技术并根据这种机理对高可靠性电子电路的设计进行讨论。
1 EHW的机理及相关技术
计算机系统所要求解决的问题日趋复杂,与此同时,计算机系统本身的结构也越来越复杂。而复杂性的提高就意味着可靠性的降低,实践经验表明,要想使如此复杂的实时系统实现零出错率几乎是不可能的,因此人们寄希望于系统的容错性能:即系统在出现错误的情况下的适应能力。对于如何同时实现系统的复杂性和可靠性,大自然给了我们近乎完美的蓝本。人体是迄今为止我们所知道的最复杂的生物系统,通过千万年基因进化,使得人体可以在某些细胞发生病变的情况下,不断地进行自我诊断,并最终自愈。因此借用这一机理,科学家们研究出可进化硬件(EHW,Evolvable HardWare),理想的可进化硬件不但同样具有自我诊断能力,能够通过自我重构消除错误,而且可以在设计要求或系统工作环境发生变化的情况下,通过自我重构来使电路适应这种变化而继续正常工作。严格地说,EHW具有两个方面的目的,一方面是把进化算法应用于电子电路的设计中;另一方面是硬件具有通过动态地、自主地重构自己实现在线适应变化的能力。前者强调的是进化算法在电子设计中可替代传统基于规范的设计方法;后者强调的是硬件的可适应机理。当然二者的区别也是很模糊的。本文主要讨论的是EHW在第一个方面的问题。
对EHW的研究主要采用了进化理论中的进化计算(Evolutionary Computing)算法,特别是遗传算法(GA)为设计算法,在数字电路中以现场可编程门阵列(FPGA)为媒介,在模拟电路设计中以现场可编程模拟阵列(FPAA)为媒介来进行的。此外还有建立在晶体管级的现场可编程晶体管阵列(FPTA),它为同时设计数字电路和和模拟电路提供了一个可靠的平台。下面主要介绍一下遗传算法和现场可编程门阵列的相关知识,并以数字电路为例介绍可进化硬件设计方法。
1.1 遗传算法
遗传算法是模拟生物在自然环境中的遗传和进化过程的一种自适应全局优化算法,它借鉴了物种进化的思想,将欲求解问题编码,把可行解表示成字符串形式,称为染色体或个体。先通过初始化随机产生一群个体,称为种群,它们都是假设解。然后把这些假设解置于问题的“环境”中,根据适应值或某种竞争机制选择个体(适应值就是解的满意程度),使用各种遗传操作算子(包括选择,变异,交叉等等)产生下一代(下一代可以完全替代原种群,即非重叠种群;也可以部分替代原种群中一些较差的个体,即重叠种群),如此进化下去,直到满足期望的终止条件,得到问题的最优解为止。
1.2 现场可编程逻辑阵列(FPGA)
现场可编程逻辑阵列是一种基于查找表(LUT, Lookup Table)结构的可在线编程的逻辑电路。它由存放在片内RAM中的程序来设置其工作状态,工作时需要对片内的RAM进行编程。当用户通过原理图或硬件描述语言(HDL)描述了一个逻辑电路以后, FPGA开发软件会把设计方案通过编译形成数据流,并将数据流下载至RAM中。这些RAM中的数据流决定电路的逻辑关系。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用,灌入不同的数据流就会获得不同的硬件系统,这就是可编程特性。这一特性是实现EHW的重要特性。目前在可进化电子电路的设计中,用得最多得是Xilinx 公司的Virtex系列 FPGA芯片。
2 进化电子电路设计架构
本节以设计高容错性的数字电路设计为例来阐述EHW的设计架构及主要设计步骤。对于通过进化理论的遗传算法来产生容错性,所设计的电路系统可以看作一个具有持续性地、实时地适应变化的硬件系统。对于电子电路来说,所谓的变化的来源很多,如硬件故障导致的错误,设计要求和规则的改变,环境的改变(各种干扰的出现)等。
从进化论的角度来看,当这些变化发生时,个体的适应度会作相应的改变。当进化进行时,个体会适应这些变化重新获得高的适应度。基于进化论的电子电路设计就是利用这种原理,通过对设计结果进行多次地进化来提高其适应变化的能力。
电子电路进化设计架构如图1所示。图中给出了电子电路的设计的两种进化,分别是内部进化和外部进化。其中内部进化是指硬件内部结构的进化,而外部进化是指软件模拟的电路的进化。这两种进化是相互独立的,当然通过外部进化得到的最终设计结果还是要由硬件结构的变化来实际体现。从图中可以看出,进化过程是一个循环往复的过程,其中是根据进化算法(遗传算法)的计算结果来进行的。整个进化设计包括以下步骤:
(1)根据设计的目的,产生初步的方案,并把初步方案用一组染色体(一组“0”和“1”表示的数据串)来表示,其中每个个体表示的是设计的一部分。染色体转化成控制数据流下载到FPGA上,用来定义FPGA的开关状态,从而确定可重构硬件内部各单元的联结,形成了初步的硬件系统。用来设计进化硬件的FPGA器件可以接受任意组合的数据流下载,而不会导致器件的损害。
(2)将设计结果与目标要求进行比较,并用某种误差表示作为描述系统适应度的衡量准则。这需要一定的检测手段和评估软件的支持。对不同的个体,根据适应度进行排序,下一代的个体将由最优的个体来产生。
(3)根据适应度再对新的个体组进行统计,并根据统计结果挑选一些个体。一部分被选个体保持原样,另一部分个体根据遗传算法进行修改,如进行交叉和变异,而这种交叉和变异的目的是为了产生更具适应性的下一代。把新一代染色体转化成控制数据流下载到FPGA中对硬件进行进化。
(4)重复上述步骤,产生新的数代个体,直到新的个体表示的设计方案表现出接近要求的适应能力为止。
一般来说通过遗传算法最后会得到一个或数个设计结果,最后设计方案具有对设计要求和系统工作环境的最佳适应性。这一过程又叫内部进化或硬件进化。
图中的右边展示了另一种设计可进化电路的方法,即用模拟软件来代替可重构器件,染色体每一位确定的是软件模拟电路的连接方式,而不是可重构器件各单元的连接方式。这一方法叫外部进化或软件进化。这种方法中进化过程完全模拟进行,只有最后的结果才在器件上实施。
进化电子电路设计中,最关键的是遗传算法的应用。在遗传算法的应用过程中,变异因子的确定是需要慎重考虑的,它的大小既关系到个体变异的程度,也关系到个体对环境变化做出反应的能力,而这两个因素相互抵触。变异因子越大,个体更容易适应环境变化,对系统出现的错误做出快速反应,但个体更容易发生突变。而变异因子较小时,系统的反应力变差,但系统一旦获得高适应度的设计方案时可以保持稳定。
对于可进化数字电路的设计,可以在两个层面上进行。一个是在基本的“与”、“或”、“非”门的基础上进行进化设计,一个是在功能块如触发器、加法器和多路选择器的基础上进行。前一种方法更为灵活,而后一种更适于工业应用。有人提出了一种基于进化细胞机(Cellular Automaton)的神经网络模块设计架构。采用这一结构设计时,只需要定义整个模块的适应度,而对于每一模块如何实现它复杂的功能可以不予理睬,对于超大规模线路的设计可以采用这一方法来将电路进行整体优化设计。
3 可进化电路设计环境
上面描述的软硬件进化电子电路设计可在图2所示的设计系统环境下进行。这一设计系统环境对于测试可重构硬件的构架及展示在FPGA可重构硬件上的进化设计很有用处。该设计系统环境包括遗传算法软件包、FPGA开发系统板、数据采集软硬件、适应度评估软件、用户接口程序及电路模拟仿真软件。
遗传算法由计算机上运行的一个程序包实现。由它来实现进化计算并产生染色体组。表示硬件描述的染色体通过通信电缆由计算机下载到有FPGA器件的实验板上。然后通过接口将布线结果传回计算机。适应度评估建立在仪器数据采集硬件及软件上,一个接口码将GA与硬件连接起来,可能的设计方案在此得到评估。同时还有一个图形用户接口以便于设计结果的可视化和将问题形式化。通过执行遗传算法在每一代染色体组都会产生新的染色体群组,并被转化为数据流传入实验板上。至于通过软件进化的电子电路设计,可采用Spice软件作为线路模拟仿真软件,把染色体变成模拟电路并通过仿真软件来仿真电路的运行情况,通过相应软件来评估设计结果。
4 结论与展望
进化过程广义上可以看作是一个复杂的动态系统的状态变化。在这个意义上,可以将“可进化”这一特性运用到无数的人工系统中,只要这些系统的性能会受到环境的影响。不仅是遗传算法,神经网络、人工智能工程以及胚胎学都可以应用到可进化系统中。虽然目前设计出的可进化硬件还存在着许多需要解决的问题,如系统的鲁棒性等。但在未来的发展中,电子电路可进化的设计方法将不可避免的取代传统的自顶向下设计方法,系统的复杂性将不再成为系统设计的障碍。另一方面,硬件本身的自我重构能力对于那些在复杂多变的环境,特别是人不能直接参与的环境工作的系统来说将带来极大的影响。因此可进化硬件的研究将会进一步深入并会得到广泛的应用而造福人类。
上一篇:数字化舞台布光灯具控制器的设计
下一篇:基于ADSP-BF561的车载多媒体系统