sÍntese evolucionÁria de circuitos digitais ?· sÍntese evolucionÁria de circuitos digitais...

Download SÍNTESE EVOLUCIONÁRIA DE CIRCUITOS DIGITAIS ?· SÍNTESE EVOLUCIONÁRIA DE CIRCUITOS DIGITAIS EMPREGANDO…

Post on 30-Nov-2018

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Departamento de Engenharia Eltrica

    SNTESE EVOLUCIONRIA DE CIRCUITOS DIGITAIS EMPREGANDO FPGAS

    Aluno: Rogrio Cortez B. L. Pvoa Orientador: Marco Aurlio C. Pacheco

    1. Introduo

    1.1. Motivao O hardware evolutivo (Evolvable Hardware EHW) projetado para se adaptar s

    mudanas na sua estrutura fsica, no ambiente ou no seu objetivo, devido a sua capacidade de reconfigurao dinmica. Desta forma este hardware se difere do hardware tradicional cuja estrutura fixa [1]. EHW foi o resultado dos estudos da rea da Eletrnica Evolutiva, que surgiu devido ao grande interesse de pesquisadores em otimizar e/ou sintetizar circuitos eletrnicos por algoritmos evolutivos [2].

    Algoritmos evolutivos so divididos em classes e foram desenvolvidos a partir de observaes de processos adaptativos e evolutivos da natureza, tendo como principais bases a seleo natural, a recombinao do material gentico e a mutao [3]. Dentre as principais classes esto os algoritmos genticos [4] [5], a programao gentica [6], a evoluo diferencial [7], os algoritmos culturais [8] [9] e a programao evolutiva [10].

    A Eletrnica Evolutiva classificada de acordo com o tipo de projeto, a natureza do projeto e a plataforma evolutiva. O tipo de projeto determina se o mesmo ser utilizado para otimizao ou sntese de circuitos, a natureza do projeto define se as aplicaes sero analgicas ou digitais e a plataforma evolutiva abrange as classificaes intrsica e extrnseca para uma aplicao.

    Uma aplicao extrnseca consiste em avaliar circuitos atravs de simuladores, j na intrnseca a avaliao realizada atravs do uso de circuitos integrados reconfigurveis, esta metodologia de evoluo de circuitos denominada Evolvable Hardware [2], como j mencionada anteriormente.

    Projetos de Hardware Evolucionrio para evoluo intrnseca consistem na utilizao de um hardware programvel, como FPAA, FPGA ou FPTA, e uma tcnica de algoritmo evolutivo, como o Algoritmo Gentico. O algoritmo evolutivo compilado em um software e uma configurao de bits gerada para reconfigurar o hardware programvel. Trabalhos como [11] e [12], utilizando a plataforma reconfigurvel Field Programmable Transistor Array (FPTA), so realizados na NASA (National Aeronautics and Space Administration) e so exemplos de projetos de Hardware Evolucionrio.

    2. FPGA

    2.1. Conceito de FPGA Field Programmable Gate Array (FPGA) uma plataforma reconfigurvel que contm

    uma matriz de clulas lgicas genricas e chaves programveis. Estas clulas lgicas so configuradas para desempenhar uma funo simples, enquanto as chaves programveis interconectam as clulas lgicas segundo uma configurao.

  • Departamento de Engenharia Eltrica

    FIGURA 2.1. Estrutura Conceitual de uma FPGA.

    Na implementao de um projeto em FPGA, ocorre a especificao da funo de cada clula lgica alm da configurao da conexo de cada chave. Com a etapa de sntese do projeto concluda, enviado um arquivo de configurao para FPGA por um cabo. Este processo feito em campo e no em fbrica, sendo por este motivo atribudo o nome Field Programmable placa. [13]

    2.2. LUT-based logic cell Normalmente uma clula lgica constituda de uma LUT (look-up table), ou tabela de

    busca, que um circuito combinacional com um flip-flop tipo D. Uma n-LUT pode ser considerada como uma memria 2n por 1 e se configurada de forma correta pode funcionar como uma funo combinacional de n entradas. A figura 2.2 um exemplo de clula lgica baseada em look-up table de 3 entradas. [13]

  • Departamento de Engenharia Eltrica

    FIGURA 2.2. Clula lgica baseada em look-up table de 3 entradas.

    2.3. Projeto FPGA O projeto e programao de uma FPGA consistem em seis etapas: definio do

    comportamento da FPGA, gerao de uma netlist, processo de roteamento, validao do mapeamento, gerao do arquivo binrio e configurao da FPGA.

    A definio do comportamento da FPGA feita atravs da gerao de um projeto esquemtico (grfico) por uma linguagem de descrio de hardware (HDL Hardware Description Language). As principais linguagens utilizadas so VHDL e Verilog. Este projeto utilizar a linguagem VHDL (Very-high-speed integrated circuit HDL).

    A netlist gerada por uma ferramenta de EDA (Eletronic Design Automation). Esta netlist descreve a conectividade de um circuito, como componentes, pinos e portas. O processo de roteamento o ajuste da netlist arquitetura da FPGA.

    O mapeamento validado atravs de anlises temporais e simulaes, a partir desta validao um arquivo binrio gerado e transferido para a FPGA para configurar a mesma. Esta transferncia feita atravs de uma interface serial utilizando o protocolo JTAG. [13]

    3. Algoritmos Genticos

    3.1. Conceito Tcnica de busca e otimizao paralela, desenvolvida por John Holland na Universidade

    de Michigan, que se baseia na seleo natural proposta por Charles Darwin, onde uma soluo potencial se d atravs de uma estrutura semelhante a um cromossomo. Este cromossomo submetido a trs operadores, seleo, crossover e mutao, alm de uma funo de avaliao de aptido. [14]

    3.2. Estrutura Bsica Segue abaixo, a estrutura bsica de um Algoritmo Gentico simples.

  • Departamento de Engenharia Eltrica

    FIGURA 3.1. Estrutura bsica de um Algoritmo Gentico simples.

    Para determinar a soluo de um problema, uma populao aleatria de possveis solues gerada. Os cromossomos pertencentes a esta populao so avaliados quanto aos seus desempenhos e ordenados quanto a sua aptido. Aps este procedimento, avaliado se a soluo para o problema foi encontrada, caso tenha sido encontrada o procedimento encerrado, caso contrrio os procedimentos de seleo, reproduo e mutao sero aplicados para gerar novos indivduos na populao.

    Por esta tcnica estar baseada na teoria da seleo natural, a seleo feita de forma a privilegiar a sobrevivncia dos indivduos mais aptos. Privilgio concedido pelo fato da aptido dos indivduos estar diretamente relacionada probabilidade de serem selecionado e assim contriburem com uma nova gerao de indivduos.

    Aps o procedimento de seleo, cromossomos so selecionados aleatoriamente em pares para que o crossover seja realizado. A aplicao de tal evento probabilstica, ou seja, h a possibilidade de ocorrer ou no. Caso ocorra, partes do material gentico (nmero binrio) de um indivduo trocado com o outro indivduo, de maneira que os dois descendentes possuam material gentico dos dois indivduos progenitores (figura 3.2). Caso no ocorra, os cdigos dos cromossomos so preservados.

  • Departamento de Engenharia Eltrica

    FIGURA 3.2. Crossover.

    Cada bit dos novos indivduos submetido ao procedimento de mutao, que ocorre de forma probabilstica. Ao ocorrer uma mutao o bit alterado, como ilustrado na figura 3.3. Aps a mutao, os indivduos resultantes passam a fazer parte da populao, sendo ento reiniciado o procedimento, conforme a figura 3.1. [14]

    FIGURA 3.3. Mutao.

    4. Objetivo Este projeto tem com objetivo estudar projetos de Hardware Evolucionrio utilizando a

    plataforma reconfigurvel Field Programmable Gate Array (FPGA). Projetos deste tipo requerem uma constante comunicao entre o software que utiliza o algoritmo evolutivo e o hardware programvel, alm do uso de uma FPGA requerer passos como programao, configurao de portas e envio de dados. Logo ser estudada a possibilidade de transferncias de dados para a placa, de forma a utiliz-la de maneira eficiente.

    O projeto tambm tem como objetivo implantar uma aplicao de EHW utilizando uma FPGA. Para esta etapa final, sero avaliados os recursos disponveis e os conhecimentos adquiridos na rea.

    4.1. Recurso Para a realizao do projeto, o modelo da FPGA escolhido foi o Spartan-3E, do

    fabricante XILINX. Que est disponvel no pacote Spartan-3E Starter Kit.

  • Departamento de Engenharia Eltrica

    FIGURA 4.1. Spartan-3E Starter Kit.

    5. Atividades Realizadas

    5.1. Projeto FPGA e Pesquisa O incio do projeto foi determinado pelo entendimento da estrutura conceitual e do

    projeto de uma FPGA, implementando a metodologia de execuo de um projeto de FPGA, descrita no captulo 2 deste projeto. A lembrar, as seis etapas de programao e projeto de uma FPGA so: definio de comportamento da FPGA, gerao de uma netlist, processo de roteamento, validao do mapeamento, gerao do arquivo binrio e configurao da FPGA.

    Aps a compreenso e a implementao de um projeto esttico, se fez necessrio o estudo de Algoritmos Genticos, conforme o captulo 3. Desta forma foi constatada a importncia de se utilizar este mtodo para a evoluo de cdigos e para uma futura programao evolucionria.

    Para o desenvolvimento de projetos de Hardware Evolucionrio utilizando FPGAs atuando em tempo hbil, foi necessrio pesquisar possveis formas de evoluir um projeto. A criao de um Algoritmo Gentico durante a criao de um cdigo VHDL como soluo do problema, por mais trivial que se pode parecer, no satisfaz o requisito de utilizao do projeto no dia a dia, em tempo satisfatrio. Isto ocorre porque um projeto de uma FPGA necessita de um tempo relativamente grande para execuo de suas etapas [13]. Alm disso, o nmero de evolues que seriam realizadas pelo Algoritmo Gentico para programao da

  • Departamento de Engenharia Eltrica

    plataforma reconfigurvel seria grande, de forma a prolongar mais o tempo para encontrar uma configurao tima.

    5.2. Definio de Soluo Dentre as solues de projetos relacionados a este assunto, a evoluo do arquivo

    binrio, gerado a partir da criao de um cdigo VHDL e do mapeamento da FPGA, se apresentou como a mais adequada para o projeto. Pois para a evoluo do arquivo binrio s necessrio realizar a gerao deste arquivo uma nica vez, ou seja, as seis etapas de programao e projeto de uma FPGA sero executadas somente uma vez, sendo a partir deste momento a programao da FPGA evoluda por

Recommended

View more >