32
Síntese RTL 1 FEUP/DEEC Maio de 2010 Síntese RTL João Canas Ferreira Tópicos de Projecto de Circuitos VLSI

Logic Synthesys help

Embed Size (px)

Citation preview

VLSI Síntese RTL 1

FEUP/DEECMaio de 2010

Síntese RTL

João Canas Ferreira

Tópicos deProjecto de Circuitos VLSI

VLSI Síntese RTL 2

Conteúdo

Inclui figuras de:Douglas J. Smith, HDL Chip Design (secção 1)

Synopsys, Design Compiler User Guide (secção 2)

Observações gerais sobre o processo de síntese

O sistema Design Compiler

VLSI Síntese RTL 3

Desenvolvimento top-down

Abordagem: Refinamento hierárquico das descrições.

Os níveis inferiores contêm progressivamente mais detalhes.

VLSI Síntese RTL 4

Domínios de projecto para diferentes níveis de abstracção

VLSI Síntese RTL 5

Fluxo de projecto

Saída: desenho completoa nível lógico

Alternativa: continuar para síntese física

VLSI Síntese RTL 6

Síntese RTL (1)

Register transfer logic

 Descrição em termos de circuitos combinacionais e de registos

 Sistemas síncronos 

É importante formular a descrição explicitamente nestes termos.

R RCombinacional

clk

VLSI Síntese RTL 7

Síntese RTL (2)

[Tradução] HDL → representação interna do fluxo de dados e do sequenciamento (controlo) [Optimização genérica] Processamento:

 expansão de funções propagação de constantes desdobramento de ciclos

 [Optimização lógica] Síntese lógica  Optimização dos circuitos combinacionais 

VLSI Síntese RTL 8

Síntese RTL (3)

VLSI Síntese RTL 9

Modelo simplificado das etapas de síntese

VLSI Síntese RTL 10

Estrutura de alto nível (CDFG)

VLSI Síntese RTL 11

Optimização ao nível lógico

VLSI Síntese RTL 12

Selecção de células

VLSI Síntese RTL 13

Alternativas para funções-objectivo

VLSI Síntese RTL 14

Conteúdo

Observações gerais sobre o processo de síntese

O sistema Design Compiler

Inclui figuras de:Synopsys, Design Compiler User Guide

VLSI Síntese RTL 15

Tarefas de síntese

VLSI Síntese RTL 16

Resumo das etapas de síntese

Preparação da descrição do circuito (HDL/VHDL)

[Síntese] Tradução para componentes sintéticos

(DesignWare) e para tecnologia genérica (GTECH)

 GTECH: portas lógicas e flip­flops

 DesignWare: somadores, comparadores, ...

Optimização e mapeamento para biblioteca-alvo

 processo orientado por restrições

Síntese de infra-estrutura de teste (scan)

Re-síntese após síntese física

VLSI Síntese RTL 17

Termos

Síntese: processo de geração de uma descrição tipo

“netlist” (lista de componentes e suas interligações) a

partir de uma descrição HDL/VHDL.

Optimização: etapa do processo de síntese que tenta

determinar a combinação de células que melhor

satisfaz os requisitos

“compile”: comando DC que efectua a optimização.

VLSI Síntese RTL 18

Fluxo de projecto

VLSI Síntese RTL 19

Tarefas e comandos

VLSI Síntese RTL 20

Nomenclatura

VLSI Síntese RTL 21

Bibliotecas

target libraries: bibliotecas de células a usar no

netlist final

link libraries: bibliotecas de células e outros

módulos usados para satisfazer referências (inclui

target libraries)

symbol libraries: bibliotecas de símbolos para

esquemáticos gerados pelo DC

VLSI Síntese RTL 22

Exemplo MD4: .synopsys_dc.setup

• set datadir "/home/cdsmgr/cad/libs/amis/ads2002.4/cmos035/v1.9"

• lappend search_path $datadir/syn99.10 $datadir/syn99.10/3.3V

• set link_library {MTC45000_WL_TYP.db MTC45000.db MTC45005.db

MTC45100.db}

• set target_library $link_library

• set symbol_library { MTC45000.db MTC45005.sdb }

• set link_library [linsert $link_library 0 "*" ]

VLSI Síntese RTL 23

Exemplo MD4: synthesize-core.script

•analyze -f verilog md4.v•elaborate md4•current_design md4•link

•Análise: leitura de ficheiros, verificação de erros, criação de

bibliotecas

•Elaboração: tradução para GTECH e DesignWare

•Ligação: resolução de referências. Ordem: circuito corrente,

bibliotecas especificadas (incluindo search_path).

VLSI Síntese RTL 24

Comandos para obter informações

VLSI Síntese RTL 25

Especificação do “ambiente eléctrico”

set OPERATING_CONDITIONS "WCCOM"set REF_LOAD "MTC45000/ND2/A"

set OUTPUT_LOAD [ expr 1.2 * [load_of $REF_LOAD] ]set_load $OUTPUT_LOAD [all_outputs]

set_operating_conditions $OPERATING_CONDITIONS

VLSI Síntese RTL 26

Definição de “regras de projecto”

set DEFAULT_MAX_TRANSITION 2set REF_LOAD "MTC45000/ND2/A"

# maximum load for the input pinset_max_capacitance [ expr 316 * [ load_of $REF_LOAD ] ] $CLOCK_NAME

set CAP_LOAD [ expr 80 * [load_of $REF_LOAD] ]set_max_capacitance $CAP_LOAD ctrl\[0\]

# for all nets of designset_max_transition $DEFAULT_MAX_TRANSITION [find design "*"]

VLSI Síntese RTL 27

Mais conceitos...

Tempo de transição: tempo necessário para “driver”

mudar de estado.

Cada pino de entrada pode ter associado o valor

máximo da sua “carga” [max_capacitance]

As unidades estão definidas nas bibliotecas (usar o

comando report_libs)

VLSI Síntese RTL 28

Restrições de optimização

create_clock $CLOCK_NAME -period $CLOCK_PERIOD# define maximum allowed clock skew set_propagated_clock $CLOCK_NAMEset_clock_uncertainty 0.1 $CLOCK_NAME# input timing parametersset_input_delay $DEFAULT_INPUT_DELAY -clock $CLOCK_NAME [all_inputs]

# remove input delay attribute for clock:remove_input_delay $CLOCK_NAME -clock $CLOCK_NAME

VLSI Síntese RTL 29

Especificações temporais

create_clock: definir sinal de relógio set_propagated_clock: considerar atrasos da árvore de distribuição de sinal de relógio set_clock_uncertainty: definir margens de incerteza em torno do flanco activo de relógio set_input_delay: definir tempo de chegada do sinal de entrada em relação ao sinal de relógio (após flanco) set_output_delay: definir tempo que a saída deve estar estável antes do flanco de relógio

VLSI Síntese RTL 30

Atrasos de sinais

VLSI Síntese RTL 31

Optimização

Arquitectural (não mapeado) sub­expressões comuns, partilha de recursos, reordenação de operadores, selecção de módulos DesignWare (repetido após mapeamento) 

Nível lógico re­estruturação (variáveis intermédias) +  “flattening” (soma de produtos)

Nível estrutural (portas lógicas) mapeamento, optimização temporal, reparação (restrições de regras de projecto), optimização de área 

VLSI Síntese RTL 32

Função de custo

Regras de projecto

Classes de optimização

 atraso máximo

 atraso mínimo

 potência máxima

 área máxima

Objectivo: reduzir a função de custo a zero

Comando: compile