TF TRABALHO FINAL REALIZAR TODAS AS ETAPAS DO LAB3 PARA UMA DAS FUNÇÕES ABAIXO 21/10/18 MÁXIMO 1 GRUPO POR FUNÇÃO: F1=A ------------------. B. (C + D) F2=A --------------------. (B + C + D) F3=(A. ----------------- B. C) + D F4=A ----------------------- + (B. (C + D))) F5=A --------------------. ( (B. C) + D) F6= ----------------------- ((A + B). C) + D F7=A -------------------- + B + (C. D) Conteúdo do relatório a ser mostrado ao professor e entregue no Moodle 1. (10%) Esquemático print screen da tela e print screen do console com mensagem se houve ou não erro no esquemático. 2. (30%) Layout da célula print screen da tela, indicando as entradas A / B / C / D. 3. (5%) Relatório do DRC tela que indica se houveram ou não erros 4. (5%) Relatório do LVS tela que indica se houveram ou não erros 5. (15%) Extração e Simulação elétrica. Apresentar os arquivos referentes ao netlist e às capacitâncias parasitas. Dado que é uma porta com 4 entradas, a sugestão é gerar 16 estímulos para a verificação da funcionalidade completa da porta projetada, como abaixo: v1 a 0 pulse (1 0 0 0.02N 0.02N 1N 2N) v2 b 0 pulse (1 0 0 0.02N 0.02N 2N 4N) v3 c 0 pulse (1 0 0 0.02N 0.02N 4N 8N) v4 d 0 pulse (1 0 0 0.02N 0.02N 8N 16N) 6. (5%) Layout da view abstract. Print screen da tela da view abstract e o arquivo LEF. 7. (5%) Geração do arquivo de caracterização elétrica adicionar a homepage gerada pela ferramenta (datasheet/index.html) no relatório 8. (10%) Síntese lógica apresentar o esquemático gerado pela ferramenta de síntese. Pseudocódigo que deve ir para VHDL: not_a <= INV(A); not_b <= INV(B); not_c <= INV(C); not_d <= INV(D); not_s <= FUNÇÃO(not_a, not_b, not_c, not_d); S <= INV(not_S) 9. (15%) Síntese física apresentar o layout para o circuito acima, e o relatório de DRC. No script de síntese física posicionar os pinos corretamente: # Step 4: Place place_design -no_pre_place_opt edit_pin -side Top -layer 2 -spread_type center -spacing 3 -pin {A B C D} edit_pin -side Left -layer 2 -spread_type center -spacing 3 -pin {F}
PASSOS PARA O DESENHO MODELO PARA CÉLULAS COM 4 ENTRADAS Desenhar a célula na mesma biblioteca do inversor do lab4, pois esta célula será integrada com o inversor previamente projeto, na etapa de síntese lógica e física. WN = 0.2 µm / WP = 0.4 µm Nos drenos/sources desenhar o maior número de contatos possível. As cabeças de contato devem ter um metal1 maior para a correta inserção dos pinos, como mostrado abaixo (0,15 µm x 0,3 µm), sobre as linhas polisilício. A posição exata das cabeças de contato sobre o polisilício vai depender das conexões necessárias em M1 (metal1) ou M2 (metal2). 1. Desenhar no editor de layout o modelo abaixo, usando os níveis de área ativa (OD), polisilício (PO), metal1 (M1), e contato (CO). Respeitar a altura de 3 µm, com largura múltipla de 0.2 µm. Alguns metais/contatos foram inseridos sobres os drenos/sources a título de exemplo. MEDIDA VERTICAL TOTAL: 0,56 + 0,25 + 0,2 + 0,78 + 0,4 + 0,25 + 0,56 = 3 MICRONS MEDIDAS NA DIFUSÃO (camada OD): (2 * 0,21) + (4 * 0,06) + (3 *0,35) = 1,71 MEDIDA HORIZONTAL TOTAL: 0,15 + 1,71 + 0,14 = 2 è observem o 0,15 (esq) e 0,14 (dir) 0.56 0.29 Medidas verticais Medidas horizontais 0.59 0.2 0,25 * (ver observação abaixo) 0. 0.06 0.21 0.35 0.21 0.35 0.35 0,4 0,78 0.15 0.3 0.11 0.3 0.11 0.3 0.11 0.3 0,2 0.15 1.71 0.14 0,25 * (ver observação abaixo) 0,56 2.0 Lembrar: conexão por justaposição (transistores em série) não precisa de contato. 0,255
Exemplo de medidas para o contato entre o dreno e source: Detalhe de uma conexão de metal1 abaixo da linha de difusão P: 0.27 0.35 0.13 0.13 0.11 poli poli 0.03 0.025 O template original é para as conexões entre as linhas de difusão. Em função da célula pode ser necessário conectar entre vdd/difusão ou gnd/difusão. Para isto mudar o espaçamento de 0,25 para 0,34 entre a difusão e a linha de alimentação, como abaixo. vdd! 0.34 0.16 0.16 gnd! Entre vdd/difusão P Entre gnd/difusão N 2. Colocar os implantes (NP e PP), o poço N (NW) e ao redor de todo o desenho indicar a fronteira da célula (prboundary + DCO). As figuras a seguir ilustram esta organização. AS CAMADAS prboundary/dco DEVEM TER O TAMANHO DA ÁREA DEFINIDA PELOS IMPLANTES NP/PP (2,6 µm x 2 µm). Conferir se estas camadas têm 2,6 µm de altura também no inversor. As camadas prboundary/dco devem sobreporem-se exatamente sobre o canto inferior esquerdo do PP (limite inferior) até o canto superior direiro do NN (limite superior)
0,2 2,6 2,6 0,2 Altura do prboundary + DCO: 2,6 microns Camada PP/NN envolvidas pelas camadas prboundary + DCO Distância mínima entre difusão (transistores) e os implantes (NN/PP): 0,16 µm DICAS IMPORTANTES 1. Lembrar que as celular do inversor e da porta lógica complexa serão utilizadas em conjunto, portanto algumas características em comum são necessárias para que isto ocorra, como a altura ser a mesma (3 µm), largura de vdd/gnd ser a mesma (0,56 µm), e a altura do DCO/prboundary deve se 2,6 µm. 0.56 0.56 0.2 0.2 Porta complexa (este trabalho) inversor
2. Para o passo 6 Geração da view Abstract, alterar o script para gerar a view da porta complexa, e a seguir: a) abrir um novo terminal b) carregar "module load ic/5.1.41" (não pode ser outra versão) c) abrir a shell "csh" na pasta.../<microx>/lab4 d) no csh executar "source.cshrc_cmos065" e) após executar "abstract -replay <nome_do_script_abstract.txt>" 3. É recomendado que sempre que for executar um novo comando dentro do csh utilizar uma nova shell (para não herdar variáveis de ambiente). 4. Lembrar de alterar os scripts cmd_genus, cmd_innovus e load.tcl para apontar para os caminhos desejados, já que os originais apontam para os arquivos correspondentes ao lab4 (no diretório synthesis). 5. No arquivo load.tcl adicionar a biblioteca do arquivo LEF/LIB gerado da porta complexa junto com o LEF/LIB do inversor já feito no lab4, nas suas respectivas regiões do script. set_db library "../characterization/tf.lib../characterization/inv.lib /soft64/design-kits/stm/65nm-cmos065_537/core65gpsvt/5.2/libs/ CORE65GPSVT_nom_1.00V_25C.lib" set_db lef_library "/.. /CORE65GPSVT.lef \ / /cmos065_7m4x0y2z_ap_worst.lef \ /soft64/design-kits/stm/65nm-cmos065_536/prhs65_7.0.a/cadence/lef/prhs65_soc.lef \../TF.lef \../inv.lef" Não esquecer de alterar o DESIGN_TOP (no load.tcl) para o chamar a entidade correta a ser executada, o VHDL deverá estar localizado em /<microx>/lab4/synthesis/src. 6. No arquivo cmd_genus alterar o VHDL a ser lido pelo script. 7. Comentar a linha edit_pin no passo 3 do script caso cmd_innovus e caso a síntese física venha a apresentar erros por sobreposição de metal alterar o layer do metal faça como descrito abaixo, altere o passo 4: # Step 3: Power Planning Comentar a linha, já que os pinos ali descritos pertenciam ao inversor #edit_pin # Step 4: Place place_design -no_pre_place_opt edit_pin -side Top -layer 2 -spread_type center -spacing 3 -pin {A B C D} edit_pin -side Left -layer 3 -spread_type center -spacing 3 -pin {S} gui_fit
ALGUMAS REGRAS DE DESENHO 1. Para as conexões feitas com metal 1, lembrar que a camada deve possuir uma largura mínima de µm e espaçamento de µm. O Metal 2 tem largura de 0,1 µm com espaçamento 0,1 µm. 2. Conexão Metal 1 Metal 2 3. Para as conexões entre M1 e outras camadas (poli e difusão) o metal1 deve ter enclosure (margem) de 0,025 µm. 4. Espaçamento entre contatos, deve ser no mínimo 0.11 µm. 5. Para as conexões entre poli e metal 1, o contato deve ter enclosure mínimo de acordo com a figura abaixo: 6. Para as conexões entre metal 1 e pinos de E/S, o pino deve ter enclosure mínimo de acordo com a figura abaixo: