Você está na página 1de 5

CAD para Microeletrnica

Uma perspectiva do fluxo de desenvolvimento de circuitos digitais



Thiago Rider Augusto
Instituto de Informtica - INF
Universidade Federal do Rio Grande do Sul - UFRGS
Porto Alegre RS, Brasil
thiago.rider@ufrgs.br


Abstract The design and development of integrated circuits
manually is no longer possible due to the increasing complexity of
the same. The work of designing layout of transistors by hand
and circuits with thousands of switches is no longer a reality. To
accommodate features previously unimaginable, the scale of
integration of components on an IC has increased considerably.
The market trend of getting increasingly miniaturized, portable
and enhanced-performance systems compared to previous
versions of these devices leads to much more complex challenges,
because some variables that had not interfered in the functioning
of the circuit, now appears as parasites or effects that must be
taken into account due to the scale of integrated elements. To aid
this task and enable circuits like latest generation
microprocessors, SoCs and high density memories, there are
specific CAD (Computer Aided Design) softwares for
microelectronics. In the flow of an integrated circuit there are
many tasks and each may has specialized software or a set of
them. For digital circuits there are some well-defined phases and
each one has some applications to help the designer in system,
logical or physical levels, and also to the processes of
implementation and verification of the design.
KeywordsCAD; software; synthesis; microelectronics;
integrated circuits
I. INTRODUO
A concepo e o desenvolvimento de circuitos integrados
de forma manual no so mais possveis devido crescente
complexidade dos mesmos. O trabalho de desenhar layout de
transistores mo e projetar circuitos com milhares destes no
mais uma realidade. Para acomodar funcionalidades antes
inimaginveis, a escala de integrao de componentes em um
CI aumentou consideravelmente. A tendncia de mercado de
cada vez mais se obter sistemas miniaturizados, portteis e com
desempenho ampliado em relao s verses anteriores desses
dispositivos leva a desafios cada vez mais complexos, pois
algumas variveis que antes no interferiam no funcionamento
do circuito, agora aparecem como parasitas ou efeitos que
devem ser levados em considerao devido escala dos
elementos integrados.
As barreiras impostas pela integrao na escala submicron
incluem: uma maior contribuio da corrente de leakage do
transistor no consumo do circuito, dificuldades de se fabricar o
dispositivo fisicamente de forma fiel ao layout e sua
comparao com o esquemtico torna-se mais intensa
computacionalmente e ainda, a anlise de elementos parasitas
tem um peso muito maior do que antes [1].
Visando auxiliar esta tarefa e viabilizar circuitos como
microprocessadores de ltima gerao, SoCs e memrias de
alta densidade, existem os softwares CAD(Computer Aided
Design) especficos para microeletrnica. No fluxo de um
circuito integrado existem muitas tarefas e para cada uma pode
existir um software envolvido ou mesmo um conjunto deles.
Para o fluxo de desenvolvimento de circuitos digitais existem
algumas fases bem definidas e que possuem CAD para auxiliar
o projetista seja no nvel de sistema, lgico ou fsico e ainda,
para os processos de implementao e verificao do design.
II. NVEL DE SISTEMA
A. Especificao
A primeira etapa de um projeto comea pela sua
especificao quando so definidos os requisitos e as restries
do mesmo, como frequncia de operao, potncia, rea,
quantidade de memria, etc. Alm disso, necessrio separar o
projeto em macro blocos.
B. Microarquitetura
A maneira para se atingir o resultado da especificao
descrito na forma de uma microarquitetura, onde o designer vai
descrever com detalhes cada macro bloco, suas interfaces e
suas interaes. a diviso de um bloco em mdulos menores.
Pode ainda ser definido como o passo entre a especificao e a
descrio de hardware.
Para esta fase possvel modelar o sistema utilizando CAD
e linguagens como SystemC, evitando erros mais previsveis
em estgios mais adiantados, ou mesmo tomar decises
arquiteturais adiantadas visando a otimizao sem nem mesmo
ter descrito o hardware na forma de RTL. Essa simulao
chamada de TLM (Transaction Level Modeling) e permite
observar se a arquitetura desempenha a funcionalidade
necessria, vai de encontro com as especificaes do usurio,
atinge as metas de performance e consumo, alm de ter a
definio da viabilidade do projeto[2]. A Figura 1 mostra o
modelo da estrutura utilizada em TLM. Essa proposta utiliza
uma estrutura com registradores mapeados em memria,
definies de entradas e sadas, comportamentos independentes
do tempo e polticas para timing e potncia definidas pelo
usurio do CAD. O software Mentor Graphics Vista Architect
um exemplo de CAD system level[2].

Fig. 1. A estrutura usada para modelagem TLM.
III. NVEL LGICO
A. RTL
Neste nvel de abstrao, a descrio de hardware tal qual
consta na microarquitetura implementada pelo designer
utilizando RTL (Register Transfer Language), que representa
de forma precisa e que no gera ambiguidades em um
design[3], pois desenvolver e realizar debug em um circuito
diretamente considerando portas lgicas seria uma tarefa muito
difcil. Designs consistem de mdulos e suas ligaes, fazendo
com que o projetista possa reaproveitar partes do circuito e
tornando o mesmo hierarquizado e de mais fcil manuteno.
Para este passo, linguagens como Verilog (Fig. 2) ou VHDL
so utilizadas.

Fig. 2. Cdigo RTL de um Full Adder em Verilog.
B. Sntese Lgica
Aps a etapa de descrio, existe a de sntese lgica, um
processo no qual o RTL da etapa anterior analisado
semanticamente, separado em smbolos, otimizado e mapeado
para uma biblioteca de clulas digitais padro (standard cells).
O cdigo mapeado para portas lgicas ou gates permite uma
aproximao do circuito real um pouco melhor do que no nvel
de sistema. Estimativas pouco precisas de rea, potncia e de
timing so possveis. Esta etapa uma das que mais possui
pesquisa na rea, incluindo algoritmos para encontrar
equivalncias entre funes lgicas, estruturas de dados mais
eficientes para representar e manipular funes booleanas,
formas de representao de tabelas verdade como inteiros,
sntese de mquinas de estado e representao de circuitos por
AIG (And-Inverter Graph), que uma forma de descrever o
mesmo em nodos AND e Inversores interconectados, o que
facilita a busca pelo caminho crtico e o corte e reescrita em
AIGs, um processo de simplificao lgica, algo que vai alm
do tradicional Mtodo de Quine-McClusckey, visando reduzir
o nmero de nodos e a profundidade lgica do circuito.

Fig. 3. A estrutura And-Inverter Graph(AIG).
Um circuito digital pode ser combinacional ou sequencial,
conforme a apresentao ou no de certos elementos.
Conforme [4], um AIG combinacional uma rede booleana
composta de portas AND de duas entradas e inversores. O
tamanho de um AIG o nmero de nodos que o compe e est
relacionado diretamente rea de um circuito e a profundidade
o nmero de nodos do caminho mais longo, partindo de uma
entrada primria at uma sada primria, e faz relao direta
com o delay do circuito representado. A meta de
transformaes locais em AIG reduzir a rea e o delay.
Existem tambm AIGS sequenciais, que introduzem elementos
sequenciais estrutura lgica dos AIGS combinacionais. Os
elementos sequenciais so considerados latches tipo D com
uma entrada e uma sada. Para todos os latches considera-se o
mesmo clock, que omitido na representao do AIG.
O software ABC da Universidade de Berkeley permite a
converso de uma forma abstrata de um circuito em portas
lgicas[5]. Com funcionalidades semelhantes a este software, e
de acordo com [6], a Universidade Federal do Rio Grande do
Sul desenvolve uma sute de aplicativos: Switchcraft, que um
ambiente com diversas ferramentas para gerar uma rede de
transistores a partir de uma descrio de um circuito,
possibilitando estimar delay, rea e potncia dissipada
(dinmica e esttica); Karma, que implementa mapas de
Karnaugh, minimizao de Quine-McClusckey, rvores de
// Full Adder rtl

module full_adder
(in_x, in_y, carry_in, sum_out,
carry_out);

input in_x;
input in_y;
input carry_in;
output sum_out;
output carry_out;

wire w_sum1;
wire w_carry1;
wire w_carry2;

assign carry_out = w_carry1 | w_carry2;

// Cria duas instancias de half-adders para o circuito.

half_adder u1_half_adder
(
.in_x(in_x),
.in_y(in_y),
.out_sum(w_sum1),
.out_carry(w_carry1)
);
half_adder u2_half_adder
(
.in_x(w_sum1),
.in_y(carry_in),
.out_sum(sum_out),
.out_carry(w_carry2)
);
endmodule
Deciso Binrias e outras funes associadas; Logic2Logic,
que possibilita converter funes lgicas para diferentes
formatos de representao (tabela-verdade, expresso, BLIF,
termos, BDD, expresses fatoradas e inteiros), sendo possvel
tambm comparar e visualizar expresses; e o ELIS, um
software que integra diversos mtodos para sntese lgica,
semelhante ferramenta SIS de Berkeley, com a diferena que
o mapeamento livre de bibliotecas.
O final do processo de nvel lgico gera uma netlist ou lista
de portas lgicas, ou gates, que ser utilizado como insumo
para o prximo nvel, que a concepo fsica do circuito, j
visando uma determinada tecnologia de fabricao.
IV. NVEL FSICO
Com a gerao da lista de portas lgicas interconectadas,
possvel j estimar com baixa qualidade resultados de rea das
portas lgicas, potncia e timing, utilizando alguns algoritmos
que se baseiam em estatsticas e alguns valores ideais de um
circuito, mas s aps a concepo fsica do mesmo que essa
estimativa se torna mais prximo do real. Este nvel pode ser
dividido em diversas fases, como: Floorplanning, Placement,
Sntese Fsica, Scan Reorder, Otimizaes Pr-Sntese de
rvore de Clock, Sntese da rvore de Clock, Roteamento,
Otimizaes Ps-Roteamento, alm das etapas paralelas de
Extrao de Parasitas, Clculo de Delay, Integridade de Sinais
e Static Timing Analysis [7] [10].
A. Floorplanning
A fase de floorplanning consiste na definio do tamanho
do die e instanciao de pads; no posicionamento de macro
blocos, planejamento de alimentao e alocao de rea no
chip (Figura 4). A organizao dos blocos visa facilitar as fases
seguintes, tentando evitar problemas relacionados a efeitos
fsicos dos elementos, como temperatura, queda de tenso,
delay e roteabilidade do design. As entradas para essa fase so:
uma netlist de nvel de portas lgicas em Verilog ou outra
linguagem de descrio de hardware; restries do projeto,
como timing e power; e dependendo da metodologia,
bibliotecas com informaes fsicas e de timing sobre as
clulas, no caso de standard cells. A sada para standard cells
um design dividido em macro blocos com dados sobre
conectividade lgica em Verilog ou outra HDL (Hardware
Description Language) e mais dados fsicos do design [7] [10].

Fig. 4. Floorplanning.
B. Placement
Este passo composto pelo processo de disposio de
clulas (metodologia standard cells) num design em que se
realizou floorplan previamente. Serve como etapa
intermediria para verificar se o floorplanning foi efetivo,
mostrando se aquela disposio fsica proposta ser vivel, pois
um floorplan inicial pode no disponibilizar o espao
necessrio para todas as clulas e macro blocos do design, o
que deve ser visto antes das prximas etapas para tentar evitar
o retrabalho.
Para este passo, algoritmos de placement top-down ou
bottom-up podem ser aplicados. No caso de bottom-up as
clulas de cada bloco podem ser dispostas separadamente,
como se cada bloco fosse um processo computacional de
placement. No caso de top-down, usado para designs menores,
as clulas vo sendo alocadas todas de uma vez. Para designs
maiores onde se usa bottom-up, processamento paralelo pode
ser feito, dependendo do CAD utilizado [7] [10].
C. Sntese Fsica
A sntese fsica a combinao da sntese lgica e do
placement (metodologia standard cells). Para alcanar
restries do projeto (timing, por exemplo), a sntese fsica
deve ser executada, possibilitando o resizing de componentes e
a reestruturao lgica.
O resizing consiste na substituio da clula por outra com
caractersticas de capacitncia mais adequadas a atender as
restries de timing do circuito em questo. Arquivos
Liberty(.lib) e Library Exchange Format (.lef) descrevem em
formato ASCII das clulas. Os arquivos Liberty apresentam
dados como: funo da clula; condies de operao;
capacitncia total de entrada e sada da rede; e informao de
timing para cada pino de sada em relao a cada pino de
entrada (Figura 5). J os arquivos LEF encapsulam dados de
layout de camadas de metal de uma clula, localizao de pinos
de entrada e sada e roteamento interno da clula,
possibilitando conhecer a rea em que no possvel rotear
outros sinais. Os atributos presentes nos arquivos LEF de
capacitncia e resistncia so usados para calcular delays,
efeitos de cross-talking e outros parmetros de verificao
fsica [7] [10].

Fig. 5. Exemplo de informao de timing de um pino Y em um arquivo LIB.
pin(Y) {
direction: output;
capacitance: 0.0;
function: "(A B)";
internal_power() {
related_pin: "A";
cell_rise(delay_template_7x7) {
index_1 ("0.04, 0.07, 0.1, 0.2, 0.5, 1.0, 2");
index_2 ("0.006, 0.030, 0.078, 0.174, 0.366, 0.749,
1.523");
values ( \
"0.07, 0.09, 0.13, 0.20, 0.35, 0.64, 1.23", \
"0.08, 0.10, 0.13, 0.21, 0.35, 0.65, 1.24", \
"0.09, 0.11, 0.15, 0.22, 0.37, 0.66, 1.25", \
"0.11, 0.13, 0.17, 0.25, 0.39, 0.68, 1.28", \
"0.14, 0.17, 0.20, 0.28, 0.42, 0.72, 1.31", \
"0.18, 0.21, 0.25, 0.33, 0.47, 0.76, 1.35", \
"0.23, 0.26, 0.31, 0.39, 0.54, 0.83, 1.42");
}
D. Scan Reorder e Design for Testability
Para ser possvel testar um circuito aps a sua fabricao,
os elementos sequenciais do design so conectados de uma
forma especial que funciona quando o chip est em modo de
teste. Uma Scan Chain (cadeia de scan) a conexo dos
registradores do design de forma que os padres de teste
possam ser aplicados e os resultados obtidos durante o teste
automtico. O passo de sntese lgica conecta arbitrariamente a
cadeia de scan. A preocupao com a testabilidade dos
dispositivos deu origem ao conceito de DFT (Design for
Testability), que inclui pensar em como o roteamento das
conexes de teste entre esses elementos ir impactar ao mnimo
o roteamento dos outros sinais funcionais do circuito. A ordem
entre registradores em que os sinais de teste percorrem o
circuito no faz diferena, de forma que pode-se reordenar a
cadeia de scan para que essas rotas sejam mnimas ou que
interfiram o menos possvel no espao rotevel para outros
sinais que no os de teste. O insumo para o CAD nessa etapa
a sada do passo de sntese fsica e o arquivo de informaes da
cadeia de scan no formato SCANDEF, provido pela sntese
lgica. Com a definio de onde ficaro as clulas, faz muito
mais sentido reordenar a cadeia de scan que foi produzida em
uma etapa que no se tinha idia ainda de como as clulas
seriam dispostas fisicamente. Uma anlise que escolha a menor
utilizao possvel de rotas na rea do chip desempenhada
pelo CAD [7] [10].
E. Otimizaes Pr-Sntese e rvore de Clock
Aps cada etapa necessrio continuar verificando se as
restries do projeto de timing ainda so contempladas. Com as
clulas dispostas em uma posio, possvel calcular violaes
de tempo que possam ter sido inseridas no design j que se tm
os delays baseados nas interconexes estimadas. Para essas
correes, o CAD pode realizar upsizing ou downsizing das
clulas, inserir buffers ou resintetizar caminhos para melhorar o
timing.
A sntese da rvore de clock o processo de inserir buffers
no caminho de clock para minimizar o skew e latncia do
mesmo, provendo otimizao em timing. A partir deste
momento, o clock do circuito no mais tratado como ideal, e
apresenta atributos como skew, latncia, tempo de transio,
etc.
Aps a criao da rvore de clock, uma nova anlise
executada pelo CAD para verificar se a sntese da rvore de
clock adicionou algum distrbio em outros caminhos do
circuito. A otimizao Post-CTS pode realizar a insero de
buffers, resizing de clulas ou ainda, alteraes na recm-
criada rvore de clock, tentando alcanar o melhor timing
possvel dado as restries do projeto [7] [10].
F. Roteamento e Otimizaes
O roteamento consiste em conectar os pinos das clulas,
macro blocos ou pads de um circuito para que corresponda ao
esquemtico.
Essa fase tambm feita em vrias iteraes, realizando um
roteamento preliminar para a obteno do congestionamento de
rotas, o que indica que um bloco necessita de que seja
retrocedido um passo e se faa o placement novamente, mas
utilizando uma densidade menor de clulas para que sobre
espao para roteamento. Os algoritmos de roteamento tentam
minimizar o mximo possvel dos congestionamentos de rotas
e o impacto em timing em caminhos crticos.
Aps o roteamento, as ligaes antes estimadas, so reais e
as informaes de timing so mais realistas. As otimizaes
podem ser feitas nessa fase so de incluso de buffers, resizing
e novas modificaes no circuito. As otimizaes podem levar
em considerao: as extraes de resistncia e capacitncia de
cada rede; clculo de delay das interconexes e clulas; a
integridade de sinais; e a anlise de timing.
O resultado dessa fase so layouts no formato que permita a
confeco de mscaras para a fabricao do chip. Um formato
existente para esse passo o GDSII [7] [10].
G. Sign-off
Para concluir o desenvolvimento de um chip e envi-lo para
a fabricao, so necessrias algumas verificaes, como:
Layout versus schematic (LVS), design rule check (DRC), e de
potncia. No LVS (Figura 6), o CAD faz uma comparao do
layout produzido com o esquemtico, verificando a
conectividade do design. O processo de DRC consiste em ter a
certeza de que aquele layout produzido fabricvel dado certo
n tecnolgico, verificando espaamentos mnimos, tamanhos
de via, sobreposies mnimas e outras regras de design para
mitigao de falhas dado o processo de fabricao [7] [10].

Fig. 6. Layout versus Schematics(LVS).
CONCLUSES
A rea de CAD para microeletrnica no mbito de circuitos
digitais to ampla quanto as diversas formas de se
desenvolver um circuito dessa natureza e sua crescente
complexidade. As possibilidades de se combinar metodologias
diferentes, como a que utiliza biblioteca de clulas padro e as
que so library-free, alm de poder se utilizar de diferentes
algoritmos para casa etapa adiciona um grande nmero de
possibilidades de pesquisa na rea j que cada etapa pode ser
enxergada como bem definida e substituda por algum
processamento em que as entradas e sadas sejam as mesmas,
porm mais eficiente. Essa questo leva tambm a estudos na
parte que envolve a integrao de todos esses passos e
algoritmos e os diferentes formatos de arquivos ou mensagens
entre processos para troca de informaes e interoperabilidade.
Os softwares CAD para microeletrnica tm muitas
iniciativas comerciais como as sutes da Synopsis, Cadence e
Mentor Graphics[8], mas se encontra muitas solues
acadmicas que englobam a maioria das etapas do fluxo de
desenvolvimento de circuitos digitais, como o caso em [5],
[9] e em [11], onde se prope uma padronizao de troca de
mensagens para a integrao das diversas ferramentas de CAD.
Esse trabalho apresenta um resumo do panorama da rea de
CAD, facilitando o entendimento do encadeamento entre as
diversas etapas do fluxo de integrao digital e a visualizao
da necessidade crescente de pesquisas na rea, tanto na criao
de novos algoritmos quanto para otimizaes de algoritmos j
conhecidos. medida que os circuitos vo se tornando mais
complexos e maiores, a complexidade de software envolvida
acompanha este crescimento e novas proposies para
processamento paralelo, otimizaes e a diviso do problema
em blocos que possam ser executados dessa forma devero ser
desenvolvidas.
REFERNCIAS
[1] Weste, N. H. E., and Harris, D. CMOS VLSI Design 4th Edition,
Addison-Wesley, 2011.
[2] Mentor Graphics, Electronic System Level Design, website:
http://go.mentor.com/32iew.
[3] D. August, Computer architecture and organization, Lecture 15: Register
Transfer Language. Princeton University: Princeton, NJ: 2004.
[4] R. Brayton, A. Mishchenko, Sequential Rewriting. EECS Department,
University of California, Berkeley, CA: 2007.
[5] A. Rengaraj, ABC Logic Synthesis basics. College of Engineering
UmassAmherst. Amherst, MA: 2011.
[6] Instituto de Informtica INF UFRGS, Logic circuit synthesis lab,
website: http://www.inf.ufrgs.br/logics/.
[7] Cadence, Digital IC Basics 03 (Lectures e Class Notes), 2009. Cadence
Design Systems.
[8] Mentor Graphics, Vista Architect, website: http://www.mentor.com/esl/.
[9] G. Posser, Dimensionamento de portas lgicas usando programao
geomtrica. Instituto de Informtica INF UFRGS. Porto Alegre, RS:
2011.
[10] O. C. Gouveia Filho, Projeto de circuitos integrados digitais.
Departamento de Engenharia Eltrica UFPR. Curitiba, PR.
[11] J. D. Togni, M. L. B. Lisba, e R. P. Ribas, Integrao de ferramentas e
ambientes de CAD para microeletrnica. Instituto de Informtica INF
UFRGS. Porto Alegre, RS: 2003.