Formas de se implementar sistemas digitais - Tecnologias de Hardware
Formas de se implementar sistemas digitais – Tecnologias de Hardware
Para desenvolver sistemas digitais é necessário conhecer as tecnologias onde o mesmo pode ser implementado. Saiba mais neste artigo!
Este post faz parte da série Sistemas Digitais. Leia também os outros posts da série:
Em um artigo anterior abordamos as formas de se representar um sistema digital. Para desenvolver um é necessário conhecer as tecnologias onde o mesmo pode ser implementado, vamos às nossas opções:
Pequenos Circuitos Integrados (CIs) SSI/MSI
São circuitos integrados que implementam pequenas funções, como exemplos temos a família 74xx da Texas que dominou o mercado nas décadas de 60 e 70.
Esta família possui mais de 100 componentes que implementam desde uma NAND até uma unidade aritmética de 4-bits. Uma lista completa dos componentes pode ser vista aqui.
Como componentes de lógica programável ficaram mais baratos e capazes, não é mais recomendado projetar um hardware grande utilizando pequenos CIs.
Application Specific Integrated Circuit (ASIC) é um circuito integrado construído para um único propósito. Existem pelo menos três categorias de ASIC:
O circuito é construído a partir de componentes lógicos pré-definidos, conhecidos como células padrão, exemplos de célula padrão: somadores, mux e etc.
O circuito é construído a partir de blocos pré-definidos de células, um bloco de células é feito de blocos de "standard cell", somente a interconexão é feita. O processo de desenvolvimento é simplificado.
O circuito é completamente polido para uma aplicação em específico, existe o total controle sobre os componentes a nível de transistor. É obtido o melhor resultado em desempenho, área e energia mas o processo de desenvolvimento é bastante complexo. Normalmente este tipo de ASIC é feito para produzir as "Standard Cells" citadas acima.
Um arranjo de células lógicas genéricas com uma estrutura de interconexão programável: aqui se encaixam FPGAs e CPLDs.
Os blocos lógicos são agrupados em uma matriz bidimensional, e os fios de interconexão são organizados como canais de roteamento horizontais e verticais entre as linhas e colunas do bloco lógico. Os canais de roteamento contém fios e switches programáveis que permitem que os blocos lógicos se conectem de várias formas diferentes.
Leia mais sobre a arquitetura deste tipo de dispositivo aqui.
Estas tecnologias podem ser comparadas em Área, Velocidade, Custo, Consumo e Time to Market.
A área do chip (tamanho) corresponde a quantidade de silício para implementar uma aplicação em particular. Um menor chip necessita de menos recursos, simplifica os testes e tem um rendimento melhor. Uma mesma funcionalidade pode ser implementada com diferentes arquiteturas, um somador por exemplo, pode ser implementado de maneira rápida (um somador em paralelo ocupa bastante área), devagar (ripple pouca área) e de outras formas.
Uma vez escolhida a arquitetura, a área depende da tecnologia. Para uma mesma arquitetura a tecnologia ASIC sempre resulta em menor área já que dispositivos lógicos programáveis necessitam de área para conseguirem ficar genéricos (muitos roteamentos e etc). Estamos falando de uma diferença de 2-5 vezes de área necessária para uma mesma funcionalidade.
A velocidade de um circuito digital é dada pelo tempo necessário para uma saída gerar um resultado a partir de uma alteração na entrada. Normalmente representado pelo pior caso de propagação de atraso entre sinais de entrada e saída. Um chip com maior área via de regra possui uma velocidade menor, é este o caso do ASIC vs FPGA, aonde o ASIC mais uma vez leva vantagem ao ser mais rápido que o FPGA para uma mesma aplicação.
Um ASIC além de ser menor e mais rápido também consome menos energia, isto não é surpresa visto que o ASIC é otimizado para uma função específica e não desperdiça recursos com roteamentos não utilizados e switches para programabilidade.
Custo e Time to Market
Fazer um ASIC custa muito caro. Além do tempo de desenvolvimento ser muito maior. Se você vai fazer um chip que não pode ser reprogramado após feito, ele não pode conter erros ou bugs já que seu algoritmo vai estar congelado no silício.
Gasta-se muito mais dinheiro e tempo para desenvolver e depurar um ASIC, as ferramentas também são bem caras. Então, se o seu chip não for vender – muito – é muito difícil e inviável fazer um ASIC, já que alguns milhões de reais serão gastos no processo. Um erro pode custar muito caro.
FPGAs, em contra-partida, têm um tempo de desenvolvimento muito menor, normalmente toda a cadeia de software necessária para o desenvolvimento em FPGA é barata e você utiliza somente um fabricante. Você pode corrigir bugs e erros a qualquer momento já que o chip é reprogramável, não atoa uma das funções de FPGA é a prototipação de ASIC.
O custo unitário de um FPGA é maior do que um ASIC, então traçando um gráfico entre as tecnologias teríamos algo como isto:
Figura 1 – Gráfico retirando do livro RTL Hardware Design de Pong Chu
Como podemos ver, para pequenas e médias empresas, ou ainda, produtos de alto valor agregado que vendem poucas unidades, FPGA é a melhor solução.
Para saber mais sobre sistemas digitais
O excelente livro RTL Hardware Design using VHDL: Coding for Efficiency, Portability and Scability. do Pong Chu foi usado como referência, indico a todos interessados em desenvolver sistemas digitais.
<< Formas de representar um sistema digital
AnteriorAnteriorSistemas Embarcados no Controle de Máquinas – Controle & Instrumentação
PróximoTDC 2014 São Paulo – Trilha EmbeddedPróximo
Formas de se implementar sistemas digitais – Tecnologias de Hardware - André Castelan
16/07/2014 22:02
[…] Neste artigo do Embarcados escrito por mim podemos observar tecnologias para a implementação de sistemas digitais. […]