Sistemas Digitais III Escola Superior de Tecnologia de Setúbal Opções de Design para Circuitos Integrados CMOS Para implementar um circuito integrado (CI) em CMOS é possível escolher entre as múltiplas possibilidades existentes no mercado. A escolha deve ser feita com base nas características necessárias para o circuito(complexidade, velocidade, área), no custo de cada implementação e no tempo disponível para o desenvolvimento. As soluções seguintes são apresentadas por ordem crescente de custo e de forma indirecta também por ordem crescente de tempo necessário ao desenvolvimento e complexidade máxima do CI que pode ser implementado com cada solução. 1-Lógica Programável O investimento feito no desenvolvimento de qualquer CI é elevado, sendo importante dividir este custo por um elevado número de cópias do mesmo circuito. Um circuito “programável” é uma solução que tem potencialmente a possibilidade de ser utilizado em muitas soluções diferentes. Na classe dos circuitos de lógica programável podem identificar-se as seguintes grupos: • Estruturas de lógica programável • Interligações programáveis • Arrays de portas reprogramáveis 1.1-Estructuras de lógica programável (PLDs) Exemplos de PLDs são: • Programmable read only memory (PROM) • Programmable array logic (PAL) • Programmable logic array (PLA) A semelhança entre estes circuitos reside no facto de todos serem compostos por arrays de ANDs e ORs e as diferenças estão patentes na tabela1. Circuito PROM PAL PLA Array de ANDs Fixo Programável Programável Array de ORs programável fixo programável Tabela 1- PROMs, PALs e PLAs. PLDs FMD Pagina 1 Sistemas Digitais III Escola Superior de Tecnologia de Setúbal Na figura 1 pode ver-se o esquema lógico de uma PROM de três entradas e quatro saídas. Figura 1 – Esquema lógico de uma PROM PLDs FMD Pagina 2 Sistemas Digitais III Escola Superior de Tecnologia de Setúbal Na figura 2 pode ver-se um exemplo de uma PROM usada para implementar um display de sete segmentos. Figura 2 – Exemplo de uma PROM. PLDs FMD Pagina 3 Sistemas Digitais III Escola Superior de Tecnologia de Setúbal Na figura 3 pode ver-se o esquema lógico de um PAL de três entradas e quatro saídas. Figura 3 – Esquema lógico de um PAL PLDs FMD Pagina 4 Sistemas Digitais III Escola Superior de Tecnologia de Setúbal Na figura 3 pode ver-se o esquema lógico de um PLA de três entradas e quatro saídas. Figura 4 – Esquema lógico de um PLA A arquitectura destas estruturas inclui também outros elementos que não aparecem no esquema lógico. Na figura 5 pode ver-se uma PAL com detalhe para a estrutura de Input/Output. PLDs FMD Pagina 5 Sistemas Digitais III Escola Superior de Tecnologia de Setúbal Figura 5 – Estrutura de uma PAL com detalhe na estrutura de Input/Output Sobre a forma como são feitas as ligações pode de uma forma simplificada dizer-se que existem duas gates para o transístor de programação, sendo uma delas designada por gate flutuante. Para inibir o funcionamento desse transístor a gate flutuante é polarizada negativamente por forma a mudar o seu nível de threshold para um valor superior às tensões de operação do circuito, de forma a que o transístor esteja sempre off. PLDs FMD Pagina 6 Sistemas Digitais III Escola Superior de Tecnologia de Setúbal 1.2-Ligações programáveis 1.2.1- Ligações programáveis permanentes Enquanto nos PLDs o circuito é programável mudando as suas características (escolhendo a função combinacional a ser implementada), neste tipo de implementação programa-se o roteamento (as ligações entre os blocos disponíveis). Nesta classe incluem-se os Field Programmable Gate Arrays (FPGAs) que se baseiam num elemento base que depende do fabricante. No caso da Actel o elemento base pode ser visto na figura 6. Figura 6 – Elemento base da Actel O circuito PLICE permite implementar todas as funções lógicas de duas ou três entradas e algumas de quatro entradas. Um latch é implementado com uma destas estruturas, enquanto um registo necessita de duas. Figura 7 – Elemento base da QuickLogic PLDs FMD Pagina 7 Sistemas Digitais III Escola Superior de Tecnologia de Setúbal Na figura 7 pode ver-se o elemento base da QuickLogic. Dentro do espaço do circuito integrado existem frequentemente zonas destinadas a diferentes funções. No caso das FPGAs da Actel podemos ver na figura 8 a distribuição do espaço. Figura 8 – Arquitectura das FPGAs da Actel Na figura 9 pode ver-se o circuito associado ao pad de input/output. Figura 9 – Actel I/O pad PLDs FMD Pagina 8 Sistemas Digitais III Escola Superior de Tecnologia de Setúbal A programação das ligações é no caso da Actel feita usando um elemento designado por PLICE (Programmable Low-Inpedance Circuit Element) que consiste essencialmente numa resistência (>100MΩ) elevada que através da aplicação das tensões de programação apropriadas é alterada permanentemente para uma resistência de baixo valor (200-500Ω). 1.2.2- Ligações reprogramáveis Os circuitos deste tipo são semelhantes aos anteriores, tendo como vantagem o facto de ser possível reprogramar as ligações. Em alguns casos o elemento base é dotado de mais funcionalidades do que no tipo anterior. 1.3- Arrays de portas reprogramáveis Um dos tipos de arrays de portas programáveis mais comuns é o Sea-of-Gates (SOG) onde a parte central do CI é composta por um array contínuo de transístores N e P onde o layout não está completo, mas os transístores já estão formados (as camadas de difusão e polysilício já estão colocadas), ficando disponível para o cliente as camadas de metal e os contactos para implementar as funções necessárias. Figura 10 – Layout do SOG PLDs FMD Pagina 9 Sistemas Digitais III Escola Superior de Tecnologia de Setúbal Na figura 10 pode ver-se o layout do SOG com detalhe da forma como são implementados os transístores. Existem várias vantagens deste tipo de design sobre o layout full-custom sendo de realçar as seguintes: • o custo é mais baixo porque a wafer pode ser utilizada para muitos designs diferentes • o tempo de design é mais baixo devido às ferramentas automatizadas para roteamento e teste • o custo dos testes é mais baixo porque podem ser aplicados processos de teste comuns 2-Design com Células Standard É também possível usar como base a lógica ou a função utilizando células existentes em biblioteca (habitualmente fornecida com o software utilizado). As células de biblioteca são normalmente criadas para as seguintes classes de circuitos: • Small Scale Integration (SSI). Exemplos: nand, nor, xor. • Medium Scale Integration (MSI). Exemplos: codificadores, somadores , comparadores. • Datapath. Exemplos: shifters, alus. • Memórias. Exemplos: RAM,ROM. • Blocos ao nível de sistema. Exemplos: multiplicadores, microcontroladores. O design é feito usando estes blocos pré-implementados. A vantagem de usar as células standard em relação às possibilidades anteriores é a possibilidade de obter uma maior densidade (permitindo implementar mais funções), tendo como principal desvantagem um maior custo de desenvolvimento. 3-Full-custom Design O design full-custom obriga a desenhar de raiz, ao nível do transístor todo o circuito a implementar. Tem como vantagem obvia poder aproveitar todo a área existente em silício, uma vez que não existirão blocos ou lógica que não é utilizada, e ter toda a liberdade para construir um circuito que corresponda exactamente às necessidades, tendo como desvantagens o custo de desenvolvimento, o custo de teste e a necessidade de produzir muitas unidades do mesmo CI para rentabilizar o desenvolvimento. Entre o full-custom e o design com standard cells existem um nível intermédio, normalmente designado por semi-custom, que usa no mesmo CI os dois tipos de design permitindo que o desenho ao nível do transístor só seja usado quando é efectivamente necessário (por motivos de área, velocidade). PLDs FMD Pagina 10 Sistemas Digitais III Escola Superior de Tecnologia de Setúbal Bibliografia Principles of CMOS VLSI Design – A system perspective Neil Weste, Kamran Eshraghian Addison Wesley Modern Digital Design Richard S. Sandige McGraw-Hill International Editors Microelectronics Jacob Millman, Arvin Gravel McGraw-Hill International Editors PLDs FMD Pagina 11