ACONFORTO, rtigo de Revisão / Review A rticle J.; VALLIM M.B.R. Estudo Comparativo das Tecnologias de Lógica Reconfigurável Altera e Xilinx Comparative Study of Altera and Xilinx Reconfigurable Logic Technologies Júlio Confortoa*; Marcos Banheti Rabello Vallima Curso de Engenharia Elétrica - Universidade Tecnológica Federal do Paraná, Campus Cornélio Procópio, PR, Brasil. a *E-mail: [email protected] Resumo O projeto de circuitos integrados vem se tornando um desafio cada vez mais dificil aos projetistas. Fatores como o tempo de introdução do produto no mercado, desempenho do componente e atualização tecnológica pressionam para que sejam buscadas soluções que resolvam tais problemas. Este artigo aborda uma concepção de lógica reconfigurável, comparando as tecnologias dos fabricantes Altera e Xilinx, líderes na produção de dispositivos FPGA, voltados às famílias Cyclone II e Spartan-3E respectivamente. Palavras-chave: Lógica Reconfigurável. FPGA. Cyclone II e Spartan-3E. Abstract The design of integrated circuits is becoming an increasingly difficult challenge to designers. Factors such as product introduction time in the market, component performance and technological upgrades demand solutions solve such problems. This article discusses a design of reconfigurable logic, comparing technologies and manufacturers ALTERA XILINX, leaders in the production of FPGA devices, aimed at families Cyclone II and Spartan-3E respectively Key-words: Reconfigurable Logic. FPGA. Cyclone II and Spartan-3E. 1 Introdução 2 Fundamentação Teorica A indústria eletrônica vem apresentando grande variedade de produtos, sendo que grande parte destes, estão baseados em algum tipo de computação digital embarcada. A escolha do processamento a ser utilizado, durante as fases iniciais de implementação de um sistema digital irá definir diversas características deste produto (BOBDA, 2007; MORAES; MESQUITA, 2005). Basicamente, um sistema computacional pode ser implementado por dispositivos programáveis em hardware (FPGA). A utilização desta diminui, consideravelmente o tempo de prototipagem e o custo de projeto. Eles podem facilmente ser reprogramados para atender uma modificação do sistema sem a necessidade da mudança do hardware. Para promover esta nova tecnologia de concepção de sistemas digitais, este artigo apresenta um comparativo entre as tecnologias dos FPGAs Altera e Xilinx, de modo que auxilie o projetista na escolha adequada do componente para a utilização deste no projeto. O artigo está organizado da seguinte maneira: O item dois mostra o detalhamaneto da arquitetura interna dos FPGAs da Altera e da Xilinx; o item três apresenta os materiais e métodos utilizados; o quatro relata os resultados das comparações, o cinco apresenta as discussões da comparação das famílias; e o 6 as conclusões deste trabalho. Os FPGAs (Field Programable Gate Arrays) são dispositivos semicondutores programáveis, cuja base é constituida em torno de uma matriz de blocos lógicos capazes de serem configurados para reproduzir o comportamento de um hardware (GONÇALVES, 2005; MORAES; MESQUITA, 2005; SCHÜTZ, 2000). Apresentam grande densidade interna de unidades lógicas que podem ser interconectadas através de redes internas de roteamento de sinais, que serão relatados em detalhe nos próximos tópicos. UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 69-75, Nov. 2011 2.1 Blocos de I/O (Entradas e Saídas) São mecanismos que controlam o fluxo de dados entre os pinos de entrada e saída, com a lógica interna do FPGA. São agrupados em bancos, onde cada um é independente, capaz de suportar diferentes tipos de interfaces (SCHÜTZ, 2000). A empresa Altera chama o seu bloco de entrada e saída de IOE (I/O Element) (ALTERA CORPORATION, 2004, 2007), já a Xilinx utiliza o termo IOB (I/O Block) (XILINX, 2008). Estes blocos apresentam características que suportam diversos padrões de sinais normalizados, incluindo LVTTL (Low Voltage TTL), LVCMOS (Low Voltage CMOS), LVDS (Low Voltage Differential Signaling), PCI (Peripheral Component Interconnect), HSTL (High Speed Transceiver Logic), SSTL (Stub Series Terminated Logic), AGP (Accelerated Graphics Port) e GTL (Gunning Transceiver Logic) (ALTERA 69 Estudo Comparativo das Tecnologias de Lógica Reconfigurável Altera e Xilinx CORPORATION, 2004, 2007; XILINX, 2008). Podemos destacar o padrão LVDS, pois possui pinos com características diferenciadas em relação aos outros pinos do dispositivo. Esses pinos possuem taxas de transferência de dados extremamente elevadas e circuitos internos que auxiliam na retirada de ruídos (ALTERA CORPORATION, 2004, 2007; XILINX, 2008). São geralmente utilizados para leituras de sensores. Todos os blocos são protegidos contra danos causados por descargas eletrostáticas (EDS) e por transientes de sobretensões. Adicionalmente, todos os blocos I/O da Altera e da Xilinx suportam o padrão de teste normalizado internacional IEEE 1149.1 (ALTERA CORPORATION, 2004, 2007; MARQUES, 2002). 2.2 Unidades lógicas Os blocos lógicos são circuitos idênticos, com fácil acesso a todas as estruturas de apoio e de roteamento. São constituidos por uma lógica Carry ou lógica de controle, LUT (“tabela verdade”), alguns circuitos de seleção (Multiplexadores) e flip-flops, que podem ser configurados para lidar com a lógica combinacional (GONÇALVES, 2005; MARQUES, 2002; SCHÜTZ, 2000). Utilizando esses blocos, um usuário pode construir aplicações envolvendo funções aritméticas como: somadores; subtratores; acumuladores; comparadores; contadores; entre outros. Os nomes das unidades lógicas variam de acordo com o fabricante, por exemplo, os FPGAs fabricados pela Altera recebem a denominação de LAB (Logic Array Blocks) (ALTERA CORPORATION, 2004, 2007), mas também podem ser denominadas de CLB (Configurable Logic Block) (XILINX, 2008), de acordo com a empresa XILINX. 2.2.1 Estrutura de uma matriz de blocos lógicos (LAB) Cada LAB possui dezesseis elementos lógicos interligados, através do “barramento” das interconexões. Cada elemento lógico (LE) é composto por: um gerador de função com quatro entradas (LUT); lógica de propagação; lógica carry; e um elemento de registro (ALTERA CORPORATION, 2004, 2007). Os recursos mencionados podem ainda ser utilizados na interconexão de unidades lógicas para se implementar, por exemplo, multiplicadores, contadores, somadores e memórias. Os elementos lógicos são organizados em colunas e agrupados de forma que no final formem uma estrutura da LAB. A figura 1 retrata a estrutura interna de uma LAB. Roteamentos entre LEs no LAB LE 1 LE 2 “Barramento” das interconexões Comunicação entre os elementos lógicos LE 3 LE 4 LE 5 LE 6 LAB Entradas Entrada 0 LE 7 LE 8 LE 9 LE 10 Entrada 1 Dados 1 Dados 2 LUT Soma LUT LUT LE 11 LUT LE 12 LE 13 LE 14 LE 15 Saida 0 Saida 1 LE 16 Fonte: Altera (2004) Figura 1: Arquitetura de uma LAB Cyclone II 70 UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 69-75, Nov. 2011 CONFORTO, J.; VALLIM M.B.R. 2.2.2 Estrutura de blocos Lógicos Configuráveis (CLB) Cada CLB possui nove células lógicas, formando quatro slices interligados. Os slices são agrupados em pares e organizados em coluna, de forma que transmita os seus dados independentes. Cada um possui duas LUTs de quatro entradas, Par esquerdo SLICEM (Lógica ou memória) para implemento lógico e dois elementos de armazenamento dedicados, que podem ser utilizados como flip-flops. As LUTs podem ser utilizadas como uma memória 16x1 (RAM16) ou como um registrador de deslocamento de 16 bits (SRL16) (XILINX, 2008). A figura 2 retrata a estrutura interna de um CLB. Par direito SLICEL (Única Lógica) Solicitar CLB MATRIZ DE CHAVES SLICE X1Y1 Solicitar SLICE X0Y1 SLICE X1Y0 Interconexão de vizinhos (CLB) CIN Entrada e saída de informações SLICE X0Y0 CIN FIMUX SRL 16 RAM 16 LUT4 (G) Lógica Carry FIMUX Registro LUT4 (G) F5MUX SRL 16 RAM 16 LUT4 (F) Lógica Carry Lógica Carry Registro F5MUX Registro LUT4 (F) Lógica aritmética Lógica Carry Registro Lógica aritmética SLICEM SLICEL Fonte: Xilinx (2008) Figura 2: Arquitetura de um CLB Spartan-3E 2.3 Roteamento da família Cyclone II O dispositivo que tem a arquitetura do tipo PLD hierárquico é constituído por uma matriz de blocos lógicos, denominados Logic Array Blocks, sendo os mesmos interligados pelo recurso de roteamento conhecido como matriz programável de Interconexão (PIA). Esse tipo de dispositivo é dito hierárquico porque os blocos lógicos podem ser agrupados entre si, criando assim, as macros-células. O roteamento é UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 69-75, Nov. 2011 bastante simplificado neste tipo de arquitetura, pois a cada nível de hierarquia utiliza-se basicamente uma rede do tipo crossbar (MARQUES, 2002). Em uma rede crossbar cada entrada é conectada a uma saída através de um ponto de conexão (crosspoint switch). É uma rede com apenas um estágio construído com elementos de conexão que permitem o cruzamento de diversas linhas (MARQUES, 2002). A figura 3 demonstra esse roteamento. 71 Estudo Comparativo das Tecnologias de Lógica Reconfigurável Altera e Xilinx Interconexão de condução à esquerda LAB Fonte: Altera Corporation (2004) Coluna de interconexão Comunicação entre os LBAs LAB Interconexão de condução à direita LAB Figura 3: Roteamento da Altera 2.4 Roteamento da família Spartan-3E A arquitetura do tipo matriz simétrica é flexível no requisito roteamento, pois possui canais verticais e horizontais de roteamento. Deve-se observar que, para a área do circuito não ser completamente dominada pelo roteamento, a granularidade do bloco lógico dever ser alta. A arquitetura desse tipo é largamente utilizada na indústria (MARQUES, 2002). Os recursos de roteamento dos dispositivos da família Spartan-3E possuem três tipos de segmentos de fio: linhas de propósito geral (Single - length lines), linhas longas (long lines), linhas globais e matrizes de chaves (MARQUES, 2002). As linhas globais atravessam toda a extensão do dispositivo na vertical possuindo apenas chaves de conexão com as linhas de propósito geral (single length lines) (ALTERA CORPORATION, 2004; GONÇALVES, 2005). A matriz de chaves (Figura 4) consiste de 10 chaves de interconexão, sendo que cada uma possui 6 pontos de interconexão programável (PIP). O PIP é um conjunto de transistores de passagem controlado por células de memória RAM, configuradas pelo CAD de síntese física. Essa matriz de chaves conecta as linhas de propósito geral. Observa-se que cada ponto de interconexão é muito caro em termos de área de silício, pois possui seis chaves (transistores) e ao menos 6 transistores para armazenar o estado de cada uma das chaves. Com o objetivo de reduzir a área de silício, a matriz de chaves limita a possibilidade de conexões (MARQUES, 2002). Na figura 4 observamos que cada conexão que entra na matriz de chaves só pode se conectar com outros três segmentos de fio, um em cada borda. O ideal seria uma conexão completa, mas o custo seria proibitivo. Seis Transistores de Passagem por ponto de conexão na matriz de chaves Fonte: Marques (2002) Figura 4: Matriz de chaves da família Spartan-3E 72 UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 69-75, Nov. 2011 CONFORTO, J.; VALLIM M.B.R. 3 Material e Métodos A linha de propósito forma uma rede de interconexão em linhas e colunas de cinco fios de metal cada, que se ligam através de matriz de chaves. Estas redes circundam os blocos lógicos e as I/O. As linhas longas percorrem todo o comprimento ou largura do dispositivo, sendo utilizadas para transmitir sinais globais do circuito, diminuindo assim o skew1 destes sinais. Cada linha longa possui uma chave programável no centro, a qual separa a linha em duas partes independentes. As entradas e as saídas dos blocos lógicos podem conectarse às linhas longas. As saídas do bloco que utilizarem este recurso podem ser realizadas através de buffers tri-state ou das linhas de propósito geral (MARQUES, 2002). CLB CLB CLB CLB CLB CLB CLB CLB CLB Para a elaboração desse estudo, foram utilizadas duas placas embarcadas, fabricadas respectivamente pelas empresas Altera e Xilinx. A fonte primária para analise comparativa foram os manuais dos fabricantes. Além disso, foram desenvolvidos dois ensaios práticos com finalidade de comparar compatibilidade, portabilidade, performance e quantidades de unidades lógicas consumidas numa atividade por cada FPGA. 3.1 Método empregado para avaliar o primeiro ensaio prático O primeiro ensaio consiste em verificar a portabilidade, compatibilidade e performance dos FPGAs. Foi elaborado um programa igual para as duas tecnologias, escrito em VHDL e compilado para os processadores. Esse programa tem a finalidade de ler pulsos de entrada, realizar um processamento simples e gerar pulsos similares ao da leitura. Os pulsos de entrada são fornecidos por um gerador de função numa frequência de 15kHz e de amplitude de 3 Volts. Foi necessário desenvolver um circuito eletrônico para isolar as fontes de tensão (gerador de função e placa embarcada) e tratar o sinal que entra no processador. Utilizou-se um osciloscópio para verificar o atraso dos pulsos de saída em relação aos pulsos de entrada. A figura 6 apresenta o esquema montado e o circuito eletrônico para efetuar o ensaio. Comutadores Programáveis Fonte: Gomes; Charão e Velho (2009) Figura 5: Interruptor de roteamento da Xilinx XDG1 + - GND_FPGA VCC_FPGA Osciloscópio U2 6 XSC2 4 GND_FPGA GND_FPGA D1 1N4148 1N4148 C1 74HC14-SO14 100pF/50V 1 TM PTJC04CA595 D1234567A 4C 4N25 VCC_FPCA U1:A 2 14 XC8325 ® 2 3 D2 7 Spartan 10k VCC_FPGA FPGA ALTERA/XILINX 1M - R2 + R1 - GND_FPGA - B A + 1 5 Ed Trig + 220R R3 1M R4 10k R5 Gerador de Função GND_FPGA GND_FPGA Figura 6: Esquema elaborado para comparar performance de cada FPGA 1 Diferença no tempo de propagação do sinal entre sua origem e seus destinos. Em linhas longas o sinal pode chegar nos destinos em tempos diferentes, comprometendo o comportamento de circuitos síncronos. Este parâmetro pode ser traduzido como “escorregamento” do sinal. UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 69-75, Nov. 2011 73 Estudo Comparativo das Tecnologias de Lógica Reconfigurável Altera e Xilinx 3.2 Método empregado para avaliar o segundo ensaio prático Já o segundo ensaio consiste em verificar a quantidade de células lógicas em que cada FPGA irá utilizar para realizar um conjunto de atividades. Foi elaborado um programa igual para as duas tecnologias, escrito em VHDL e compilado para os processadores. Esse programa tem a finalidade de controlar a velocidade e rotação de dois motores independentes, realizar a leitura dos sensores dos motores e mostrar esses valores num display LCD. A identificação da quantidade de células lógicas consumidas foi através dos compiladores de cada empresa Altera e Xilinx. Figura 7: Comparação do pulso que entra (sinal 1) e o pulso que sai (sinal 2) do FPGA da família Cyclone II 4 Resultados Os resultados obtidos na comparação dos datasheets das duas tecnologias são apresentados nas tabelas 1 e 2. A tabela 1 mostra a quantidade de pinos de I/O e os pinos diferenciais. Tabela 1: Quantidade de pinos Diferenciais Entradas e Saídas ALTERA Fabricante Cyclone II Família 59 a 274 85 a 622 XILINX Spartan-3E 40 a 156 108 a 376 A tabela 2 apresenta a quantidade de unidades lógicas disponível pelo FPGA (ALTERA CORPORATION, 2004, 2007; XILINX, 2008). Tabela 2: Quantidade de unidades lógicas Fabricante Família Elementos lógicos/ LAB / CLB Células lógicas ALTERA Cyclone II 4608 a 68416 288 a 4276 XILINX Spartan-3E 2160 a 33192 240 a 3688 Figura 8: Comparação do pulso que entra (sinal 1) e o pulso que sai (sinal 2) do FPGA da família SPARTAN - 3E 4.2 Resultado o segundo ensaio prático Do segundo ensaio prático, observa-se na tabela 3 que a família Cyclone II utilizou 6798 elementos lógicos enquantos a família Spartan-3E utilizou 4674 células lógicas. Podese inferir que o modelo Spartan-3E possui uma rede de interconexão mais compacta que o modelo Cyclone II. Tabela 3: Células lógicas que cada processador consumiu para realizar a mesma função Cyclone II Células lógicas / Elementos lógicos 6798 Pinos utilizados 24 Spartan-3E 4674 24 Família Com as informações citadas nas tabelas 01 e 02, é evidente que a família Cyclone II possui mais pinos de entrada e saída e blocos lógicos quando comparada com a família Spartan-3E. A quantidade de portas de I/O e unidades lógicas são importantes quando se está desenvolvendo um projeto complexo, de grande porte, que exija uma alta performance. No entanto, quando comparado performance a Spartan-3E é mais eficiente. 4.1 Resultado do primeiro ensaio prático Observa-se no primeiro ensaio prático que a família Spartan-3E possui uma velocidade de processamento maior quando comparada com a família Cyclone II. A figura 7 indica o atraso de 49,2 nano segundos do processador da empresa ALTERA. Já na figura 08 apresenta um atraso de 42 nano segundos do processador da empresa XILINX. 74 A compilação dos códigos fonte escritos em VHDL, permitiu a verificação da compatibilidade entre as duas tecnologias. Este resultado é interessante do ponto de vista do projetista, pois essa compatibilidade permite ao desenvolvedor mudar a plataforma tecnologica sem modificações significativas na estrutura do hardware. 5 Discussão Por meio dos resultados apresentados, observa-se que a família Cyclone II possui mais atributos quando comparada com a Spartan-3E. No entanto, avaliando valores comerciais, torna-se mais onerosa alta produção de produtos que incluam UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 69-75, Nov. 2011 CONFORTO, J.; VALLIM M.B.R. o FPGA da família Cyclone II. Seus valores comerciais variam entre $14.08 para o modelo mais simples até $422.40 (ALTERA CORPORATION, 2010) para modelos sofitiscados, enquanto a Spartan-3E oferece dispositivos entre $9.88 e $122.13 (AVNET PARTBUILDER, 2010). 6 Conclusão O estudo comparativo entre os FPGAs descrito neste artigo, baseou-se em grande parte na descrição da arquitetura interna presente nestes dispositivos, sendo estes as unidades lógicas que armazenam a função de cada parte do chip, os blocos de entrada e saída que fazem a interface com o meio externo e a arquitetura de interconexão entre os módulos. Verificou-se que a importância da computação reconfigurável é notável em vários segmentos do mercado de componentes eletrônicos, pois com a utilização destes dispositivos, a prototipação de sistemas digitais permite economias de tempo e dinheiro, tendo a sua realização facilitada pela grande evolução tecnológica presenciada atualmente. Como proposta de continuidade, visa-se estudar com mais profundidade o desempenho de cada processador, desenvolvendo programas complexos que exija alta velocidade de comunicação de dados. Agradecimentos Este trabalho é financiado pela FINEP – Financiadora de Estudos e Projetos (REF 4971/2006). O mesmo conta com o apoio da Fundação de Apoio à Educação, Pesquisa e Desenvolvimento Científico e Tecnológico da UTFPR (FUNTEF), da Fundação Araucária de Apoio ao Desenvolvimento Científico e Tecnológico do Paraná e do Conselho Nacional de Desenvolvimento Científico e Tecnológico - CNPq Brasil. UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 69-75, Nov. 2011 Referências ALTERA CORPORATION. 2010. Cátalogo de preços dos FPGAs da família Spartan-3E. Disponível em: <http://www. buyaltera.com/scripts/partsearch.dll?Cat=2556262&PV-5=3>. Acesso em: 24 ago. 2010. ALTERA CORPORATION. 2007. Cyclone II, Device Family Data Sheet. Disponível em: <http://www.altera.com/literature/ hb/cyc2/cyc2_cii5v1_01.pdf>. Acesso em: 12 jul. 2010. ALTERA CORPORATION. 2004. Section IV. I/O Standards. Disponível em: http://pdf1.alldatasheet.com/datasheet-pdf/ view/146756/ALTERA/EP2C35.html>. Acesso em: 12 jul. 2010. AVNET PARTBUILDER, 2010. Cátalogo de preços dos FPGAs da família Spartan-3E. Disponível em: <http://avnetexpress. avnet.com/store/em/EMController?langId=-1&storeId=50020 1&catalogId=500201&action=products&N=0&mfr=XLX&hr f=http://www.xilinx.com/onlinestore/silicon/online_store_s3e. htm&term=XC3S100E-4TQ144C>. Acesso em: 24 ago. 2010. BOBDA, C. Introduction Alemanha: Springer, 2007. to reconfigurable computing. GOMES, V.C.F.; CHARÃO, A.S.; VELHO, H.F.C. Field programmable gate array mini-curso de computação híbrida reconfigurável 2009. Disponível em: <http://www.vconrado. com/chr/fpga.pdf>. Acesso em: 23 ago. 2010. GONÇALVES, F.A.S. Pré-regulador retificador entrelaçado (Interleaved) ZCS-FM Boost, com controle digital através de dispositivo FPGA e linguagem VHDL. 2005. 277 f. Tese (Doutorado Engenharia Elétrica) – Universidade Estadual Paulista Julio de Mesquita Filho. Ilha Solteira, 2005. MARQUES, P.C.F. Algoritmo de roteamento maze para dispositivos programáveis FPGA. 2002. 88 f., Dissertação (Mestrado Ciência da computação) – Pontífica Universidade Católica, Porto Alegre, 2002. MORAES F.; MESQUITA D. Tendências em reconfiguração dinâmica de FPGAs, 2005. Disponível em: <http://sites.google. com/site/juancalegu/Tendenciasenreconfiguraciondinamicad. pdf>. Acesso em: 25 jul. 2010. SCHÜTZ, F. Estudos de FPGA. 128. f. Monografia (Graduação Informática) - Universidade Estadual do Oeste do Paraná, 2000. XILINX INC. Spartan-3E FPGA family: complete data sheet. 2008. Disponível em: <http://pdf1.alldatasheet.com/datasheetpdf/view/202147/XILINX/XC3S500E.html>. Acesso em: 12 jul. 2010. 75 Estudo Comparativo das Tecnologias de Lógica Reconfigurável Altera e Xilinx 76 UNOPAR Cient. Exatas Tecnol., Londrina, v. 10, n. 1, p. 69-75, Nov. 2011