Criação de Layouts Digitais Utilizando
Ferramentas de Síntese e Place&Route
Automáticas
Licenciatura em Engenharia Electrotécnica e de Computadores – Projecto, Seminário ou Trabalho Final de Curso 2003/2004
Aluno: Fernando José Soares Leal ( [email protected] )
Local de Trabalho: FEUP ( Lab. Microelectrónica I223 ) e Chipidea
Orientador: Prof. João Canas Ferreira ( [email protected] )
Página Web: www.fe.up.pt/~ee00236/
Supervisor: Engº Célio Albuquerque ( [email protected] )
INTRODUÇÃO
back-end digital
front-end
O trabalho insere-se na segunda parte do projecto de circuitos integrados digitais, ou seja, a obtenção de um layout digital a
partir das descrições HDL do circuito pretendido. Para tal foram utilizadas as ferramentas de CAD automáticas apropriadas.
Pretende-se pois executar a Síntese Lógica, Place&Route e Verificação Final de alguns blocos digitais já correctamente
codificados e validados. Os blocos foram implementados numa tecnologia de Standard-Cells de 0.18µm.
Contemplava-se a execução de blocos de complexidade variável e pretendia-se verificar os resultados obtidos com diferentes
abordagens na utilização das ferramentas.
Síntese Lógica
Descrições HDL
Place&Route
Netlist Gate-Level
Verificação
Final
Layout Digital
MOTIVAÇÃO
As tarefas de Síntese Lógica e Place&Route, embora
parcialmente automatizadas através do recurso às
ferramentas de CAD, são de vital importância para o
sucesso ou fracasso do resultado final.
Importa portanto conseguir realizá-las de maneira a
obter, não só o melhor resultado possível, mas também
obtê-lo dentro de parâmetros competitivos.
SÍNTESE LÓGICA
Ficheiro
.synopsys_dc
Netlist Gate-Level
Bibliotecas
Tecnológicas
Para Place&Route
Design Compiler
Descrições HDL
Reports
Scripts de Síntese
Top-level
Instruções de:
SubBloco1
-Condições de Operação
-Restrições Temporais
A tarefa consiste numa tradução das descrições em HDL
(Verilog, no caso) dos circuitos em portas lógicas. No final é
gerada uma netlist chamada de gate-level que será usada para
fazer o Place&Route.
A ferramenta tem como entradas: as bibliotecas tecnológicas e as
descrições HDL; O ficheiro de configuração .synopsys_dc, que
deverá ser atentamente trabalhado; e os scripts de síntese
criados pelo projectista, onde constarão todas as instruções para
as operações a serem executadas pela ferramenta.
OBJECTIVO
As diversas tarefas que compõem o back-end digital
revestem-se de uma complexidade bastante apreciável.
Isto deve-se, logo de início, ao trabalho em circuitos de
grande dimensão em termos de número de transístores,
dimensão essa que obriga à utilização das referidas
ferramentas. Serão elas que se encarregarão de semiautomatizar algumas tarefas que de outro modo seriam
simplesmente impracticáveis.
Estas ferramentas são, no entanto, bastante genéricas,
pelo que a sua utilização para cada determinado circuito
ou bloco de circuito implica a tomada de uma série de
decisões de estratégia de utilização, bem como uma
configuração muito apurada, de modo a se conseguir
obter aquilo que era pretendido.
É exactamente nisto que este trabalho incidiu. No final
pretendia-se ter obtido conhecimentos profundos sobre
todas estas questões que surgem durante o back-end
digital.
Estes conhecimentos irão permitir uma muito maior
sistematização e portanto fluidez nas tarefas, o que
levará inevitavelmente a uma maior competitividade,
num ambiente empresarial em que o time-to-market
desempenha um papel fulcral.
Para a síntese Lógica foi utilizada a ferramenta DesignCompiler
da Synopsys.
SubBloco n
Estes scripts são exactamente o factor onde existe maior grau de
liberdade e por isso concentram em si a maior parte da
complexidade da Síntese. Tiveram de ser tomadas decisões em
diversas áreas, tanto mais gerais como a estratégia de síntese,
ou mais particulares como restrições a impor ou introdução de
características particulares a um circuito ou bloco.
-Inserção de Scan-Chains
-Compilação/Optimização
-Verificação
No final foram gerados também diversos reports que permitiram
analisar os resultados da síntese.
-Geração de Reports
PLACE & ROUTE
Bibliotecas
Tecnológicas
ficheiro LEF )
LAYOUT DIGITAL
(
BitStream
( formato GDS )
Bibliotecas
Tecnológicas
(
ficheiro Verilog )
Silicon Ensemble
Timing Librarys
( ficheiro CTLF )
CT-Gen
Netlist Gate-Level
Netlist Post-Layout
( Verilog )
Ficheiros
ctgen.commands
ctgen.constraints
Para geração de
esquemático
Para o Place&Route foi utilizada a ferramenta Silicon
Ensemble da Cadence.
A tarefa consiste na definição e implementação do
desenho físico dos blocos já sintetizados.
É feita a definição dos vários parâmetros para o layout, a
colocação das células da tecnologia adequadas da
forma pretendida (placement), o dimensionamento e
planeamento de linhas de alimentação e suas ligações.
Poderá incluir outros itens como, por exemplo, inserção
de pads ou geração de clock-trees (como no caso).
Finalmente, é feito o encaminhamento (routing) de todas
as ligações começando pelas mais prioritárias, ou seja,
as referentes aos clocks.
Sequência de Tarefas
PLANO DE TRABALHO
Estava previsto o seguinte plano de trabalho:
- Estudo das ferramentas a utilizar
- Síntese e Place&Route de blocos digitais de
complexidade variável.
- Elaboração do Relatório Final
Floorplanning
Placement
Ex. de parâmetros:
-Aspect Ratio
-IO to Core Distance
-Row Utilization
Power
Routing
Clock Trees
Generation
Ex. de operações:
-Especificação de
Power Rings
-Especificação de
Stripes
Filler Cells
Procedimentos: Identificação de
células disponíveis
-Inserção recursiva
das maiores para
as menores
Routing
Procedimentos:
Clock Routing
-Global/Final Routing
ou
WROUTE
VERIFICAÇÃO FINAL
Para a Verificação Final (signoff) foi utilizada a ferramenta Calibre da
Synopsys. Esta é a ferramenta aconselhada pela foundry para a
tecnologia em causa.
Ficheiro com as
regras a cumprir
BitStream completo
( formato GDS )
Reports
Calibre
Netlist Spice
Extraida do
esquemático
Tarefas
DRC
LVS
A tarefa consiste na execução do DRC- Design Rules Check e do
LVS- Layout vs Schematic. Estas duas verificações permitem aferir a
correcção do design antes de uma eventual inclusão noutros
projectos ou mesmo produção.
O DRC verifica se não há violações ás regras de desenho relativas à
tecnologia. O LVS confirma a correcção das ligações ou seja, se o
circuito corresponde realmente ao esquemático pretendido. Ambas
as operações geram reports de erros para posterior análise.
RESULTADOS e CONCLUSÔES
A execução do trabalho veio confirmar a complexidade das tarefas envolvidas. O aparecimento consecutivo das mais diversas questões, que originaram por
exemplo muitas repetições de operações, colocou de facto em realce a importância que assume o seu conhecimento e experiência na sua resolução para uma
sistematização cada vez maior do trabalho.
Compreende-se pois que, num meio de produção, seja vital que todo este processo seja feito da forma mais fluída e rápida possível.
Apesar do esforço envolvido, e confirmando uma vez mais a complexidade verificada, apenas foi executado um bloco digital. Na figura da direita pode-se ter
uma ideia do aspecto visual do layout digital obtido. Este layout passou sem erros a fase de verificação final (executada na Chipidea).
No final, penso ter realmente adquirido os conhecimentos pretendidos, apesar de obviamente, a execução de outro bloco ser desejável para a consolidação
dos mesmos.
Referências Bibliográficas:
[1] User’s Guide e Tutoriais disponibilizados pela Synopsys e Cadence; [2] Cadence Silicon Ensemble in the Digital Backend Domain for AMIS 0.35 Autores: J. Neves Rodrigues, T. Olsson e T. Lenart;
[3] Place & Route with Silicon Ensemble Autor: T. Lenart - Lund University; [4] Step by Step guide to Place&Route with Cadence Silicon Ensemble Autor: J.C.Alves – FEUP; [5] Clock Tree Generation Autor: Lund University;
Retirados da Internet
Agradecimentos: aos professores João Canas Ferreira e José Carlos Alves; aos Engenheiros Célio Albuquerque e Pedro Alves da Chipidea, pela disponibilidade sempre demonstrada.
Recebe, como entradas, os vários
ficheiros da tecnologia e a netlist
gate-level criada pela Síntese.
No final é exportado um ficheiro
bitstream em formato GDS e
eventualmente uma descrição
Verilog do layout (para geração de
esquemático)
Download

Post