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

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 uma API (Application Programming Interface) chamada JBits (abordada no prximo captulo).

    6. JBits

    6.1. Conceito JBits um conjunto de classes Java que fornece uma API (Application Programming

    Interface) para acessar um arquivo binrio, desenvolvido para modelos de FPGA do fabricante Xinlinx. A interface permite a reconfigurao das clulas lgicas e conexes de dispositivos da FPGA. Desta forma, sua utilizao permite a configurao dinmica de circuitos. [15]

    6.2. Funcionamento Esta biblioteca de classes d acesso completo a configurao de todos os dispositivos da

    plataforma reconfigurvel e por se tratar de classes Java pr-compiladas, o resultado para configurao da FPGA no um bitstream esttico, mas sim um cdigo executvel que gera um bitstream para a placa. Este cdigo executado nos momentos de configurao, conforme a figura 7.1.

  • Departamento de Engenharia Eltrica

    FIGURA 6.1. Modo de funcionamento do JBits.

    A informao compartilhada entre o processador que executa o cdigo Java e a FPGA, o que difere de outros sistemas de computao reconfigurvel onde a configurao da FPGA completamente independente da interface do software. Esta diferena evita erros que so difceis de encontrar e corrigir. Com um mdulo nico e integrado de software que faz tanto a configurao do circuito e gerenciamento do processador, a coerncia entre o software e a FPGA mantida de uma forma simples. [15]

    6.3. Forma de utilizao do JBits A figura 7.2 ilustra a forma de utilizao do JBits. A aplicao em Java para o usurio

    utiliza o JBits para configurar os dispositivos da FPGA. Cada chamada de funo no nvel da interface JBits faz uma ou mais chamadas para o nvel de bits, onde um bit alterado no bitstream. Ocorrendo ento uma abstrao na alterao de bits, evitando alteraes diretas no arquivo binrio, por parte do usurio.

    Esta interface do nvel de bit gerencia o fluxo contnuo de dados do dispositivo e fornece suporte para leitura e escrita bitstreams de e para arquivos. Alm disso, a classe Bitstream pode ler dados do hardware e mape-lo para o formato de dados de um bitstream (readback), o que necessrio para uma reconfigurao dinmica. A API JBits utiliza o software XHWIF para fazer o download e readback do hardware.

    A biblioteca central a coleo de classes Java que definem ncleos (Macro cell) geralmente parametrizveis e realocveis dentro de um dispositivo. So exemplos de ncleos: contadores, somadores e multiplicadores. [15]

    FIGURA 6.2. Forma de utilizao do JBits.

  • Departamento de Engenharia Eltrica

    FIGURA 6.3. Exemplo de cdigo JBits para o modelo da FPGA Virtex.

    6.4. Limitaes do JBits Uma das principais limitaes do JBits sua natureza manual, onde todos os comandos

    enviados para a FPGA devem ser explicitados no cdigo fonte. Para facilitar a programao destes cdigos, os ncleos (Macro cell) da FPGA so utilizados.

    Outra limitao importante a necessidade de um conhecimento avanado sobre a arquitetura da plataforma reconfigurvel, conhecimento este, que nunca foi exigido dos usurios de FPGAs. Para soluo deste problema necessrio estudo sobre as documentaes de cada modelo de FPGA utilizado em um projeto. [15]

    O fabricante desta interface, XINLINX, no garante o funcionamento correto das classes para modelos de FPGAs diferentes do modelo XC4000 ou da famlia Virtex (at a Virtex II). Sendo a ultima verso, JBits 3.0, desenvolvida especificamente para o modelo Virtex II.

    6.5. BoardScope Ferramenta grfica para anlise do funcionamento de FPGAs em qualquer placa de

    computao reconfigurvel. Verifica o funcionamento do projeto e resultados produzidos por operaes do hardware. Permite uma verificao mais detalhada e uma depurao durante a comunicao da FPGA com outros dispositivos.

    O BoardScope utiliza a interface JBit para acessar recursos do bitstream da FPGA. Em seguida, utilizando o XHWIF, o bitstream transferido para configurar a FPGA, ou o readback realizado para analis-lo.

    Os estados dos Blocos Lgicos Configurveis (CLB) so representados graficamente pelo BoardScope. A figura 7.4 mostra o StateView no BoardScope de uma placa com quatro FPGAs do modelo XC4028EX. Cada quadrado representa a CLB de uma FPGA, colorido com a cor azul para representar um estado de baixa e verde para um estado de alta. Se os estados forem alterados as cores so alteradas indicando os novos estados. A representao possibilita a anlise de todos as CLBs e as alteraes de estados. [15]

  • Departamento de Engenharia Eltrica

    FIGURA 6.4. StateView no BoardScope.

    6.6. XHWIF uma interface Java para comunicao com placas FPGA. Possui mtodos para ler e

    escrever bitstreams das FPGAs e mtodos para descrever os tipos e nmero de FPGAs contidas em uma placa. Tambm possui mtodos para incrementar o clock e para leitura e escrita nas memrias da placa. Atravs deste software h uma padronizao na comunicao entre os aplicativos e o hardware, permitindo comunicao de aplicativos com placas diferentes.

    Outra vantagem desta interface permitir que aplicativos como o BoardScope no se preocupem com controladores, barramentos e tipos de barramento (PCI, ISA e outros). [15]

    7. Ferramentas Utilizadas

    7.1. Hardware Conforme descrito no captulo 4, o modelo da FPGA utilizado neste projeto foi o

    Spartan-3E, do fabricante XILINX, disponvel no pacote Spartan-3E Starter Kit.

    7.1. Software Xilinx

    Integrated Software Environment (ISE) Project Navigator Software que

    permite a realizao das sei...

Recommended

View more >