Layout

Nesta etapa foram realizadas as atividades:

- Criação do template e edição do arquivo de configurações;

- Definição do Floorplan;

- Definição da rede de Vcc e Gnd;

- Realização do Placemment;

- Geração da árvore de clock;

- Roteamento e análise geométrica;

- Inclusão dos preenchimentos;

- Análise final;

- Exportação dos arquivos HDL e SDF.

Criação do template e edição do arquivo de configurações

O processo pode se iniciar digitando:

ams_encounter -tech c35b4

Após a execução do comando serão criados alguns arquivos e uma estrutura de pastas próprias para o desenvolvimento de layout utilizando a tecnologia de 35 micrômetros da Cadence.

Em seguida, deve-se inicializar o encounter digitando:

encounter

Para iniciar o design, deve-se ir em Design -> Import Design... -> load... e escolher o arquivo .conf criado pelo template (c35b4_std.conf). Com isto o projeto já é iniciado com alguns parâmetros padrão e com a especificação das bibliotecas de tecnologia.

Deve-se em seguida incluir na configuração do projeto o seu arquivo HDL (após a síntese e inclusão dos PADs), o arquivo de restrições .sdc (gerado na síntese) e o arquivo .io (criado após a inclusão dos PADs no arquivo HDL). Além disto, deve-se definir o “top cell”. Neste projeto foi digitado “uartproto”.

Para facilitar futuros processos de re-design, aconselha-se salvar a configuração criada clicando em save...

Definição do Floorplan

Entrar em Floorplan -> Specify Floorplan

Definir o floorplan. No projeto em desenvolvimento, foi definido:

Die Size By: Width: 1210.8 Height: 1210.8. Nesta dimensão foi observado uma taxa de utilização do core de menos de 20%, o que é suficiente para desenvolver o CI e distância entre pinos de IO é de 5.

Core to IO Boundary: Core to Left: 100 Core to Top: 100 Core to Right 100 Core to Bottom: 100. Essas dimensões são suficientes para traçar as linhas vcc e gnd ao redor do core.

Após clicar em Ok, com o botão Move/Resize/Reshape posicionou-se e esticou-se a área do design para toda área do core.

Após esta etapa a imagem do Chip a ser visualizada deverá ser conforme a imagem floorplan.png.

Definição da rede de Vcc e Gnd

No início do processo, ao criar o template, foi gerado um arquivo chamado gemma.tcl. Neste arquivo é possível observar um script completo para realizar o design do CI. Porém, muitas linhas estão comentadas, ficando a cargo do designer descomentá-las e executar o script de acordo com suas necessidades.

Iremos preferencialmente utilizar a interface gráfica para o desenvolvimento do CI. Porém em alguns momentos pode ser útil a utilização de alguns comandos do arquivo gemma.tcl, principalmente quando o procedimento a ser realizado pela interface gráfica é trabalhoso ou não foi identificado.

A partir do arquivo gemma.tcl foi identificado que antes de realizar o layout do vcc e gnd é necessário executar a seguinte seqüência de comandos para interconectar a alimentação dos PADs.

clearGlobalNets
globalNetConnect vdd! -type pgpin -pin vdd! -inst * -module {}
globalNetConnect gnd! -type pgpin -pin gnd! -inst * -module {}
globalNetConnect vdd3o! -type pgpin -pin vdd3o! -inst * -module {}
globalNetConnect vdd3r1! -type pgpin -pin vdd3r1! -inst * -module {}
globalNetConnect vdd3r2! -type pgpin -pin vdd3r2! -inst * -module {}
globalNetConnect gnd3o! -type pgpin -pin gnd3o! -inst * -module {}
globalNetConnect gnd3r! -type pgpin -pin gnd3r! -inst * -module {}

Em seguida deve-se ir em Power -> Power Planning -> Add Rings...

No campo Net(s): deve-se deixar apenas gnd! e vdd! - Os demais são alimentação dos PADs e serão inseridos automaticamente.

Nas dimensões das trilhas vcc e gnd foram definidos Width: 20 Top: 20 Bottom: 20 Left: 20 Right: 20
Spacing: 10 10 10 10 / Offset: 10 10 10 10

Após clicar em Ok, deve-se ir em Power -> Power Planning -> Add Stripes...

No campo Net(s): deve-se deixar apenas gnd! e vdd! - Os demais são alimentação dos PADs e serão inseridos automaticamente.

Width: 2
Spacing: 2
Set-to-set distance: 100

Após cliar em Ok, deve-se ir em Route -> Special Route...

Apenas clicar em Ok. Neste momento pode-se observar que foram criadas diversas linhas de alimentação na altura apropriada para a conexão das standard cells.

Ao final destes procedimentos a imagem deverá ser similar a power.png.

Realização do Placemment

Ir em Place -> Standard Cells and Blocks...

Clicar em Default e Ok. Caso não seja clicado no botão Default antes de clicar em Ok, algumas células serão posicionadas “de cabeça para baixo” - gerando erro na conexão da alimentação com estas.

Para uma melhor visualização, clicar em Physical view. A imagem deverá ser similar a placemment.png.

As áreas ocupadas pelos módulos de seu sistema também poderão ser vistos ao clicar em Amoeba view. Neste caso a imagem visualizada será similar a amoeba.png. Observar na imagem as áreas do módulo transmitter e do módulo baud generator.

Geração da árvore de clock

Ir em Clock -> Design Clock -> Gen Spec...

Foram selecionados todos os tipos de buffers que começavam com 'clk' disponíveis.

Clicar em Ok.

Roteamento e análises

Route -> Nanoroute -> Route...

Basta clicar em Ok.

Em seguida deve-se verificar o design em Verify -> Geometry..., em Verify -> Process Antenna... e em Verify -> Connectivity...

Os erros encontrados poderão ser corrigidos reposicionando as células manualmente. No projeto em questão, apareceu um erro “antenna”. Após reduzido a distância da trilha crítica ao bloco manualmente, o problema foi solucionado. Outro erro foi um curto. afastei o bloco do strip de alimentação para que o programa tivesse espaço para rotear e o problema também foi solucionado.

Obs.: Após mover uma célula, basta rotear novamente.

O resultado pode ser visto na figura route.png.

Inclusão dos preenchimentos

Ir em Place -> Filler -> Add Filler...

Inserir as células FILL1 FILL2 FILL5 FILL10 FILL25

Clicar em Ok.

Ir em Place -> Filler -> Add IO Filler...

Inserir as células PERI_SPACER_100_P PERI_SPACER_50_P PERI_SPACER_20_P PERI_SPACER_10_P PERI_SPACER_1_P PERI_SPACER_01_P

Clicar em Ok.

Ir em Route -> Wroute...

Clicar em Ok.

Ir em Route -> Metal Fill -> Add...

Clicar em Ok.

O resultado será de acordo com a imagem metal.png.

Análise final

Relatórios diversos podem ser obtidos através de Design -> Check Design... e Design -> Report

Um relatório síntese pode ser visto em summaryReport.rpt:

Exportação dos arquivos HDL e SDF

Para efeito de simulação pós-layout, deve-se exportar o arquivo .v (HDL) e .sdf (especificação dos delays).

Para o arquivo HDL, deve-se ir em Design -> Save -> Netlist...

Já para o arquivo .sdf, foi visto que é mais simples utilizar o prompt do encounter digitando a seguinte seqüência de comandos:

setExtractRCMode -detail -rcdb none.rcdb -relative_c_t 0.01 -total_c_t 5.0 -reduce 5 -noise
setXCapThresholds -totalCThreshold 5.0 -relativeCThreshold 0.01
extractRC
rcOut -spef uart_layout.spef
delayCal -sdf uart_layout.sdf

Voltar