Projeto físico (eletrônica)
No projeto de circuitos integrados , o projeto físico é uma etapa do ciclo de projeto padrão que segue após o projeto do circuito . Nesta etapa, as representações dos circuitos dos componentes (dispositivos e interconexões) do projeto são convertidas em representações geométricas de formas que, quando fabricadas nas camadas de materiais correspondentes, garantirão o funcionamento desejado dos componentes. Essa representação geométrica é chamada de layout de circuito integrado . Esta etapa geralmente é dividida em várias subetapas, que incluem design e verificação e validação do layout. [1] [2]
O design moderno de Circuito Integrado (IC) é dividido em Design Front-end usando HDLs e Design Back-end ou Design Físico . As entradas para o projeto físico são (i) uma netlist, (ii) informações de biblioteca sobre os dispositivos básicos do projeto e (iii) um arquivo de tecnologia contendo as restrições de fabricação. O projeto físico geralmente é concluído pelo Layout Post Processing , no qual são realizadas alterações e acréscimos ao layout do chip. [3] Isso é seguido pelo processo de fabricação ou fabricação, onde os projetos são transferidos para matrizes de silício que são então empacotadas em CIs.
Cada uma das fases mencionadas acima tem fluxos de projeto associados a elas. Esses fluxos de design estabelecem o processo e as diretrizes/estrutura para essa fase. O fluxo de projeto físico usa as bibliotecas de tecnologia fornecidas pelas casas de fabricação. Esses arquivos de tecnologia fornecem informações sobre o tipo de pastilha de silício usada, as células padrão usadas, as regras de layout (como DRC em VLSI), etc.
Divisões
Normalmente, o design físico do IC é categorizado em design totalmente personalizado e semi-personalizado.
- Full-Custom: Designer tem total flexibilidade no design do layout, não são usadas células predefinidas.
- Semi-Custom: São usadas células de biblioteca pré-projetadas (de preferência testadas com DFM ), o designer tem flexibilidade no posicionamento das células e no roteamento. [4]
Pode-se usar ASIC para design Full Custom e FPGA para fluxos de design Semi-Custom. A razão é que se tem a flexibilidade de projetar/modificar blocos de projeto de bibliotecas fornecidas pelo fornecedor em ASIC. [5] Esta flexibilidade está faltando para fluxos semi-customizados usando FPGAs (por exemplo , Altera ).
Fluxo de projeto físico ASIC

As principais etapas do fluxo de projeto físico ASIC são:
- Design Netlist (após a síntese)
- Planta baixa
- Particionamento
- Canal
- Síntese de árvore de relógio (CTS)
- Roteamento
- Verificação física
- Pós-processamento de layout com geração de dados de máscara
Esses passos são apenas o básico. Existem fluxos de PD detalhados que são usados dependendo das Ferramentas utilizadas e da metodologia/tecnologia. Algumas das ferramentas/softwares usados no design de back-end são:
- Cadence (Compilador RTL Cadence Encounter, Implementação Digital Encounter, Solução de Integridade de Energia Cadence Voltus IC, Solução de Aprovação de Temporização Cadence Tempus)
- Sinopse (Design Compiler, IC Compiler II, IC Validator, PrimeTime, PrimePower, PrimeRail)
- Magma (BlastFusion, etc.)
- Mentor Graphics (Olympus SoC, IC-Station, Calibre)
O fluxo de projeto físico ASIC usa as bibliotecas de tecnologia fornecidas pelas casas de fabricação. As tecnologias são comumente classificadas de acordo com o tamanho mínimo do recurso. Os tamanhos padrão, na ordem de miniaturização, são 2 μm , 1μm, 0,5μm, 0,35μm, 0,25μm, 180 nm , 130nm, 90nm, 65nm, 45nm, 28nm, 22nm, 18nm, 14nm, etc. de acordo com as principais abordagens de fabricação: processo n-Well, processo twin-well, processo SOI , etc.
Design netlist
O design físico é baseado em uma netlist que é o resultado final do processo de síntese. O Synthesis converte o design RTL geralmente codificado em VHDL ou Verilog HDL em descrições de nível de porta que o próximo conjunto de ferramentas pode ler/compreender. Esta netlist contém informações sobre as células utilizadas, suas interconexões, área utilizada e outros detalhes. As ferramentas de síntese típicas são:
- Compilador Cadence RTL/Build Gates/Síntese de Conhecimento Fisicamente (PKS)
- Compilador de design de sinopse
Durante o processo de síntese, são aplicadas restrições para garantir que o projeto atenda à funcionalidade e velocidade exigidas (especificações). Somente depois que a netlist é verificada quanto à funcionalidade e tempo, ela é enviada para o fluxo de projeto físico.
Passos
Planta baixa
A segunda etapa no fluxo do projeto físico é o planejamento do piso . A planta baixa é o processo de identificar estruturas que devem ser colocadas próximas umas das outras e alocar espaço para elas de forma a atender às metas às vezes conflitantes de espaço disponível (custo do chip), desempenho necessário e desejo de ter tudo próximo. a todo o resto.
Com base na área do projeto e na hierarquia, uma planta baixa adequada é decidida. O floorplanning leva em consideração as macros usadas no projeto, memória, outros núcleos IP e suas necessidades de posicionamento, as possibilidades de roteamento e também a área de todo o projeto. A planta baixa também determina a estrutura de E/S e a proporção do projeto. Uma planta baixa ruim levará ao desperdício de área de matriz e ao congestionamento de roteamento.
Em muitas metodologias de projeto, área e velocidade são assuntos de trocas. Isso se deve aos recursos de roteamento limitados, pois quanto mais recursos forem utilizados, mais lenta será a operação. A otimização para área mínima permite que o projeto use menos recursos e maior proximidade das seções do projeto. Isso leva a distâncias de interconexão mais curtas, menos recursos de roteamento usados, caminhos de sinal de ponta a ponta mais rápidos e tempos de local e rota ainda mais rápidos e consistentes. Feito corretamente, não há pontos negativos no planejamento.
Como regra geral, as seções de caminho de dados se beneficiam mais do planejamento de piso, enquanto a lógica aleatória, máquinas de estado e outras lógicas não estruturadas podem ser deixadas com segurança para a seção de posicionamento do software de local e rota.
Os caminhos de dados são tipicamente as áreas do projeto onde vários bits são processados em paralelo com cada bit sendo modificado da mesma maneira com talvez alguma influência de bits adjacentes. Exemplos de estruturas que compõem os caminhos de dados são Adders, Subtractors, Counters, Registers e Muxes.
Particionamento
O particionamento é um processo de divisão do chip em pequenos blocos. Isso é feito principalmente para separar diferentes blocos funcionais e também para facilitar o posicionamento e o roteamento. O particionamento pode ser feito na fase de projeto RTL, quando o engenheiro de projeto divide todo o projeto em sub-blocos e, em seguida, passa a projetar cada módulo. Esses módulos estão interligados no módulo principal chamado módulo TOP LEVEL. Esse tipo de particionamento é comumente referido como Particionamento Lógico. O objetivo do particionamento é dividir o circuito de forma que o número de conexões entre as partições seja minimizado.
Canal
Antes do início da otimização de posicionamento, todos os modelos de carga de arame (WLM) são removidos. A veiculação usa valores RC da Rota Virtual (VR) para calcular o tempo. VR é a menor distância de Manhattan entre dois pinos. RCs VR são mais precisos do que RCs WLM.
A veiculação é realizada em quatro fases de otimização:
- Otimização de pré-colocação
- Na otimização de canais
- Otimização pós-colocação (PPO) antes da síntese da árvore do relógio (CTS)
- PPO após CTS.
- A otimização de pré-colocação otimiza a netlist antes da colocação, os HFNs (High Fanout Nets) são recolhidos. Também pode reduzir o tamanho das células.
- A otimização no local reotimiza a lógica baseada em VR. Isso pode executar dimensionamento de células, movimentação de células, desvio de células, divisão de rede, duplicação de portas, inserção de buffer, recuperação de área. A otimização executa iteração de fixação de configuração, tempo incremental e posicionamento orientado por congestionamento.
- A otimização pós-colocação antes do CTS realizar a otimização da netlist com clocks ideais. Ele pode corrigir violações de configuração, retenção e máximo de trans/cap. Ele pode fazer otimização de posicionamento com base no roteamento global. Ele re faz a síntese de HFN.
- A otimização pós-colocação após o CTS otimiza o tempo com o relógio propagado. Ele tenta preservar a inclinação do relógio.
Síntese da árvore do relógio
O objetivo da síntese da árvore do relógio ( CTS ) é minimizar a distorção e o atraso de inserção. O relógio não é propagado antes do CTS como mostrado na figura. Após o CTS, a folga deve melhorar. A árvore de clock começa na fonte de clock definida em .sdc e termina nos pinos de parada do flop. Existem dois tipos de pinos de parada conhecidos como pinos de ignorar e pinos de sincronização. Circuitos 'não toque' e pinos no front-end (síntese lógica) são tratados como circuitos 'ignorados' ou pinos no back-end (síntese física). Os pinos 'Ignorar' são ignorados para análise de tempo. Se o relógio for dividido, será necessária uma análise de inclinação separada.
- A inclinação global atinge a inclinação zero entre dois pinos síncronos sem considerar a relação lógica.
- A inclinação local atinge a inclinação zero entre dois pinos síncronos enquanto considera a relação lógica.
- Se o relógio for desviado intencionalmente para melhorar a folga de configuração, isso é conhecido como desvio útil.
Rigidez é o termo cunhado em Astro para indicar o relaxamento das restrições. Quanto maior a rigidez, mais apertadas são as restrições.
Na otimização de árvore de relógio (CTO) o relógio pode ser blindado para que o ruído não seja acoplado a outros sinais. Mas a blindagem aumenta a área em 12 a 15%. Como o sinal de clock é de natureza global, a mesma camada de metal usada para roteamento de energia também é usada para clock. O CTO é obtido por dimensionamento de buffer, dimensionamento de porta, realocação de buffer, ajuste de nível e síntese de HFN. Tentamos melhorar a folga de configuração na pré-colocação, na colocação e na otimização da pós-colocação antes dos estágios do CTS, negligenciando a folga de retenção. Na otimização de pós-colocação após a folga de retenção do CTS é melhorada. Como resultado do CTS, muitos buffers são adicionados. Geralmente para 100k portas são adicionados cerca de 650 buffers.
Roteamento
Existem dois tipos de roteamento no processo de projeto físico, roteamento global e roteamento detalhado. O roteamento global aloca recursos de roteamento que são usados para conexões. Ele também rastreia a atribuição de uma rede específica.
O roteamento detalhado faz as conexões reais. Diferentes restrições que devem ser atendidas durante o roteamento são DRC, comprimento do fio, tempo, etc.
Verificação física
A verificação física verifica a exatidão do projeto de layout gerado. Isso inclui verificar se o layout
- Cumpre todos os requisitos de tecnologia - Verificação de regras de design (DRC)
- É consistente com a netlist original - Layout vs. Schematic (LVS)
- Não tem efeitos de antena - Verificação de regras de antena
- Isso também inclui verificação de densidade no nível de chip completo...A densidade de limpeza é uma etapa muito crítica nos nós de tecnologia inferior
- Cumpre com todos os requisitos elétricos – Verificação de Regras Elétricas (ERC). [6]
Pós-processamento de layout
O pós-processamento de layout, também conhecido como preparação de dados de máscara , geralmente conclui o projeto físico e a verificação. Ele converte o layout físico (polígonos) em dados de máscara (instruções para o gravador de fotomáscara ). Inclui [3]
- Acabamento de cavacos, como inserção de rótulos de empresa/chip e estruturas finais (por exemplo, anel de vedação, estruturas de enchimento),
- Gerando um layout de retículo com padrões de teste e marcas de alinhamento,
- Preparação de layout para máscara que estende dados de layout com operações gráficas (por exemplo, tecnologias de aprimoramento de resolução , RET) e ajusta os dados para mascarar dispositivos de produção (gravador de fotomáscara).
Veja também
Referências
- ^ N. Sherwani, "Algoritmos para VLSI Physical Design Automation", Kluwer (1998), ISBN 9780792383932
- ↑ A. Kahng, J. Lienig, I. Markov, J. Hu: "VLSI Physical Design: From Graph Partitioning to Timing Closure", Springer (2011), doi : 10.1007/978-90-481-9591-6 , ISBN 978-90-481-9590-9 , pág. 7.
- ^ a b J. Lienig, J. Scheible (2020). "Cap. 3.3: Dados de máscara: Pós-processamento de layout". Fundamentos do Projeto de Layout de Circuitos Eletrônicos . Springer. pág. 102-110. ISBN 978-3-030-39284-0.
- ^ Fluxo de design semi-personalizado
- ^ Mehrotra, Alok; Van Ginneken, Lukas PPP; Trivedi, Yatin. "Fluxo de projeto e metodologia para 50M gate ASIC" , Publicações da Conferência IEEE, ISBN 0-7803-7659-5
- ↑ A. Kahng, J. Lienig, I. Markov, J. Hu: "VLSI Physical Design: From Graph Partitioning to Timing Closure", Springer (2011), doi : 10.1007/978-90-481-9591-6 , ISBN 978-90-481-9590-9 , pág. 27.