sintesi logica- generalità - unirc.it · .sdc physical design.sdc .g encounter rtl compiler logic...

36
Sintesi logica- Generalità Alberto Scandurra Physical Layer & Back-End group, On Chip Communication Systems STMicroelectronics Catania, Italy

Upload: others

Post on 21-Mar-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Sintesi logica- Generalità

Alberto Scandurra

Physical Layer & Back-End group, On Chip Communication SystemsSTMicroelectronics

Catania, Italy

Page 2: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica2

Agenda

• Definizioni

• Flusso di sintesi

• Sintesi con Encounter RTL Compiler diCadence

Page 3: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica3

Definizioni

Page 4: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica4

Definizioni (1)

Sintesi = traduzione + ottimizzazione + mapping

Traduzione : trasformazione del codice HDL in equazionibooleane

Ottimizzazione : riduzione delle equazioni booleane in forma minima

Mapping : implementazione delle equazioni booleane con celle di tecnologia

Page 5: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica5

Definizioni (2)

Page 6: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica6

Flusso di sintesi

Page 7: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica7

Flusso di sintesi

Page 8: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica8

Sintesi con Encounter RTL Compiler di Cadence

Page 9: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica9

Optimized netlist

.lib

.lbr

RTLNetlist

.g.SDC

PhysicalDesign

.SDC .g

Encounter RTL

CompilerLogic

Verification

Input e Output per RTL Compiler

• Input– RTL: Verilog,

VHDL, direttive, pragma.– Constraints: .sdc o .g– Librerie: .lib o .lbr– Informazioni fisiche

(opzionali): LEF

• Output– Netlist ottimizzata– LEC .do file– ATPG, ScanDEF, e altro– Constraints: .sdc o .g– Input files per First

Encounter®

Page 10: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica10

Il file di configurazione• Il file .synth_initcontiene una serie di comandi che vengono eseguiti al

momento dell’invocazione del software.

• Il tool cerca il file .synth_initnel seguente ordine: – Nella directory di installazione del tool (file master.synth_init) – Nella home directory (file .cadence/.synth_init)– Nella current directory (file .synth_init)

• In caso di conflitto vengono usati i comandi letti più recentemente.

include load_etc.tclsource ~/my_file.tclset_attr information_level 9 /set_attr tns_opto 1 /suppress_messages { LBR-21 LBR-72 LBR-146 }

Esempio di file .synth_init

Questo file include utili procedure tclche implementano functionalità extra (ad esempio remove_buffer_tree)

Page 11: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica11

Avvio e uscita da RTL Compiler

• Encounter® RTL Compiler (RC) può essere invocato con le seguenti opzioni: rc [-E] [-files <string>]+ [-no_custom] [-cmdfile <string>] [-logfile <string>] [-overwrite ] [-use_license <string>] [-queue] [-version][-lsf_cpus <integer>] [{-32 | -64}] [-debug3264][-plat <platform>][-v3264] [-lsf_queue <string>][-execute <string>]+ [-post <string>]+

• Esempiorc –f <script_file_name> -logfile <results_file_nam e>

• Usarequit o exit per chiudere RC

• I dati di una sessione saranno persi se non salvati esplicitamente su disco

Page 12: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica12

Help dei comandi• Si possono avere informazioni sui comandi digitando:

man command_name

oppurehelp command_name

• Per vedere le pagine del manuale da una shell UNIX, settare la seguentevariabile ambientale: setenv MANPATH $CDN_SYNTH_ROOT/share/synth/man

• Quando si è incerti su un comando, digitando le prime lettere e premendo iltastoTab si ottiene una lista di comandi che iniziano con quelle lettere.

• Esempiopath_

Questo comando restituisce: ambiguous "path_": path_adjust path_delay path_disa ble

path_group

Page 13: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica13

Generazione di template script• Si può generate un template scriptcol comandowrite_template.• Sintassi

write_template -outfile <string> [-split] [-no_sdc][ -dft] [-power] [-msv] [-full] [-retime] [-n2n][-multimode ] [-simple] [-area] [-yield]

• Opzioni– -outfile <string>: specifica il nome del file di uscita (necessario)– [-simple]: crea un semplice template – [-power]: crea un template con gli attributi di clock gating e low power

design – [-dft]: crea un template con gli attributi e i comandi per la DFT – [-full]: crea un template con tutti i comandi di base e gli attributi per DFT

e low power design– [-n2n]: crea un template per l’ottimizzazionenetlist to netlist– [-split]: crea un template con file separati per setup, DFT e low power

design

Page 14: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica14

Esecuzione di file script• Una volta avviato RC, si può eseguire uno script usando uno dei seguenti

metodi:

– Usare il comandosource: source <path>/<script_file_name>

– Settare ilsearch path così che il software possa localizzare I file dausare.

• Per settare lo script search path, digitare:set_attribute script_search_path <{ path1 path2 …

}> /

• Qundi usare:include script_file_name

oppure

source script_file_name

Page 15: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica15

Struttura di directory virtuali

La strutture di directory si mappa sulla gerarchia del design.

libraries

myliba

messagesdesigns

/

hdl_libraries

DW*GTECH

AND2XL OR2XL

libcells

MUX2X1

A B Y

. . .

timingportsinstances_hier instances_cmbinstances_seq dft

my_reg[1] g101mem256x8

top_mod

. . . . . .. . .

object_types

Le directory virtuali contengono oggetti e i loro attributi. Gli oggettiappartengono a tipi come design, istanze, clock e porte.

Molti attributi influenzano la sintesi e l’ottimizzazione di questi oggetti.

Page 16: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica16

Definizione di attributi• In RC esistono attributi predefiniti associati con ogetti nel

database. Il seguente comando assegna un valore ad un attributo: set_attribute <attribute_name> <value> <object>

– Alcuni attributi sonoread-onlymentre altri sonoread-write.– Alcuni attributi dipendono dallo step del flusso di sintesi. In alcuni casi,

il tipo di un attribut determina lo step del flusso di sintesi nel qualol’attributo può essere definito.

• EsempioAttibuto di root ( / ):set_attribute lp_insert_clock_gating true /

Attributo di design ( /designs/top_mod ):set_attr lp_clock_gating_exclude true

/designs/top_mod

Page 17: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica17

Lettura di attributi• Per leggere il valore di un attributo, usare:

get_attribute <attribute_name> <object>

• Questo comando lavora su un singolo attributo. Per ottenere ilvalore di un attributo di ogetti multipli, si può inglobare ilcomando in un ciclo tclforeach.

• Esempioget_attr propagated_clocks $pin

get_attr load /libraries/slow/INVX1/A

• Per ottenere informazioni su un attributo, digitare:get_attribute -h <attribute_name> [<object_type>]

• Esempioget_attribute –h *clock* *

get_attribute –h *clock* clock

Page 18: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica18

Flusso di sintesi di base con RCSet target library

set_attr library name /

Read HDL filesread_hdl ${FILE_LIST}

Elaborate the designelaborate

Set timing and design constraints

Apply optimization directives

synthesize -to_generic,synthesize -to_mapped, and

synthesize -incremental

Interface to place and route

Place and Route

Yes

Modify optimization directiv es

Meet constraints? No

Netlist, SDC

Analyze and Report

Page 19: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica19

Settaggio delle librerie di tecnologia• L’attributo library specifica latarget technologyper la sintesi.

– Per caricare una singola libreria digitareset_attr library lsi500k.lib /

L’attributo library è un attributo della root.

– Per caricare multiple librerie digitareset lib_list1 “01_wc3.lib mylib1.lib x1.lib“

set_attr library $lib_list

Settando l’attribut library vengono caricate le librerie specificatenell’ambiente di sintesi (e viene popolata la directory virtuale/libraries).

– Per appendere librerie a un data base già esistente, digitareset_attr library {{a.lib b.lib} c.lib {x.lib y.lib} } /

In quetso esempio, RC caricaa.lib e appendeb.lib a a.lib. Quindi caricac.lib. Quindi caricax.lib e appendey.lib a x.lib.

Page 20: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica20

Gerarchia di informazioni di libreria

/ = root

/hdl_libraries

operating_conditions

AND2XL OR2XLslow

/libraries /messages /designs

libcells wireload_models

myliba mylibxmylibc

MUX2X1

/

_nominal_

A B Y

Page 21: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica21

Evitare l’uso di specifiche celle

• Il comandoavoid(equivalente a dont_usedi Design Compiler) informa il mapper di non usare particolari celle della tecnologia.

• Sintassiset_attr avoid <true(1)/false(0)> <cell name(s)>

• Esempioset_attr avoid 1 { mylib/snl_mux21_prx*}set_attr avoid 1 { /mylib/*nsdel}

set_attr avoid 1 [find /lib* -libcell *nsdel]

• Il comando tclset_dont_usein Design Compiler (DC) èsupportato in Encounter® RTL Compiler (RC), purchè sia usatoall’interno del file SDC.

Page 22: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica22

Stima dei ritardi di propagazione

• Physical Layout Estimation (PLE)– PLE usa informazioni reali di

librerie fisiche

– Calcola dinamicamente I ritardi dei wire per differentistrutture logiche nel design

– Si correla meglio colplace & route.

set_attr lef_library <lef header>

set_attr cap_table_file <cap table>set_attr interconnect_mode ple /

• Wire-load Models– I wire load models sono modelli

statistici

– La selezione di un wire-load model appropriato per un design non è banale.

– La correlazione è difficile persino con wire-load model custom.

set_attr interconnect_mode wireload /set_attr wireload_mode top /

set_attr force_wireload [find /mylib -wireload S160K] /top

Page 23: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica23

Wire load model

Page 24: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica24

Lettura del design

• I comandiread_hdle read_netlistprocessano un codice rtl.

• Sintassiread_hdl [-h][-vhdl|-sv][-v1995|-v2001][-netlist]

[-define macro=name] file(s)<.gz>

• -vhdl per default RC leffe VHDL-1993• -sv legge file System Verilog®• -v1995 (Boolean) forza il modo Verilog 1995• -v2001 (Boolean) forza il modo Verilog 2001• -define definisce macro Verilog

• EsempioPer leggere un design RTL o un design misto (RTL/gate):

read_hdl {design1.v subdes1.v subdes2.v}

Per leggere una gate-level netlist (strutturale): read_netlist design_struc1.v

Page 25: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica25

Elaborazione del design• Il comando elaborate

– Crea le strutture di dati e inferenzia i registri nel design

– Esegue un’ottimizzazione ad alto livello dell’rtl,come la rimozione dicoduce inutile

– Identifica candidati per il clock gating e l’operand isolation

• Il comando è richiesto solo per il top-level di un design, tutti i subdesign sonoelaborati automaticamente

elaborate [-h] [-parameter {} ] [<top_module_name>]

• Esempio

parameter data_width1 = 12;parameter averg_period = 8;parameter data_width2 = 16;

module TOP ( data_in , data_out , averg_per_sel ) ;

input [data_width1-1:0] data_in ;…

elaborate -parameter {12 8 16} TOP Durante la compilazione, i parametrisono modificati come segue:

data_width1 = 12 averg_period = 8 data_width2 = 16

parameter data_width1 = 3;parameter averg_period = 2;parameter data_width2 = 4;

Page 26: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica26

Gerarchia di informazioni di design

. . . timingportsinstances_hier instances_cmbinstances_seq dft

libraries messagesdesigns

/

hdl_libraries

/ = root

my_reg[1] g101mem256x8

Top Level

. . .

Page 27: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica27

Verifica del design• Usare il comandocheck_designper controllare eventuali problemi come

porte e/o pin non pilotati o con driver multipli, elementi sequenziali e portesenza carico, riferimenti non risolti, porte e/o pin connessi a costanti.

• Sintassicheck_design [-undriven] [-unloaded] [-multidriven]

[-unresolved] [-constant] [-assigns] [-all] [<desig n>] [> file]

– Se non si specifica alcuna opzione, il comandocheck_designriporta un riassunto in formato tabulare.

– Se si riscontrano riferimenti non risolti, occorre analizzare e fissare ilproblema prima di procedere con la sintesi

Riferimenti non risolti rappresentano unità funzionali mancanti nelcodice rtl on nelle librerie, il che determina una sintesi non funzionale e una conseguente perdita di tempo.

Page 28: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica28

Specifica delle constraint

• Le constraint si possono specificare in uno dei seguenti due modi:

– SDC FileSi può leggere un file SDC direttamente in RC dopo l’elaborazionedel deisgn di top-level. read_sdc <sdcFileName><.gz>

• Controllare sempre errori e comandi falliti quando si legge un file SDC

• Analizzare il log file e la tabella riassuntiva alla fine del processo

– RC tcl constraint (vedremo in seguito)

• Eseguire sempre il comandoreport timing –lintdopo aver letto le constraint per verificarne la consistenza.

Page 29: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica29

Sintesi del design

• L’obiettivo della sintesi è l’implementazione più piccola possibile del design, purchè si soddisfino le constraint di timing e power. La sintesi vieneeseguita col comandosynthesize.

• Sintassisynthesize [–to_generic] [–to_mapped] [- effort <level>]

[-incremental] [design|sub-design]

-to_generic— Ottimizza i MUX e i datapath si ferma prima del mapping. -to_mapped— Mappa il/i design specificati in celle descritte nellelibrerie di

tecnologia fornite ed esegue l’ottimizzazione della logica. -effort <level>— Può essere low, medium (default) o high. -incremental/-no_incremental— Abilita/disabilita la sintesi incrementale-csa_effort <level>- carry-save effort level — gestisce evenatuali limitazioni di

equivalency checking.

• Per default, il comandosynthesize –to_mappedeseguirà un’ottimizzazionegenerica, un mapping ed un’ottimizzazione incrementale.

Page 30: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica30

Reporting

Genera un report di area, timing, e design rule. report summary

Genera un report di timing. report timing

Genera un report diquality of results(QoR). report qor

Genera un report di power.report power

Genera un sommario dei messaggi di errore riportati. report messages

Genera un report sull’utilizzo di memoria. report memory

Genera un report delle istanze. report instance

Genera un report sulla gerarchia. report hierarchy

Riporta le celle di libreria usate, l’area totale e un riassunto del numero di istanze

report gates

Riporta eventuali violazioni di design rule. report design_rules

Genera un report sulle risorse di tipo datapath. report datapath

Genera un report gerarchico di area esaustivo. report area

Page 31: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica31

Generazione di report di timing• puts " WNS path/timing among all in2out paths" • report timing -from [all::all_inps] -to [all::all_ outs]

• puts “WNS path/timing among all reg2reg paths"• report timing -from [all::all_seqs] -to

[ all:: all_seqs]

• puts "WNS path/timing among CLK to outputs in domain $clk "• report timing -from $clk -to [all::all_outs]

• puts "WNS path/timing among CLK to D paths in domain $clk"• report timing -from $clk -to [all::all_seqs]

• puts "WNS path/timing among paths that cross from $clk to $clk2 domains"• report timing -from $clk -to $clk2

I comandi all:: sono procedure tcl chefanno parte del file load_etc.tcl , a sua volta parte della gerarchia diinstallazione. Ricordarsi di includereload_etc.tcl prima di usare questicomandi. Il file .synth_init è un buonposto per fare ciò

Page 32: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica32

Reading Timing Reports=================================================== ========= Generated by: Encounter(r) RTL Compiler v07.10-p004_1 Generated on: Jul 23 2007 03:16:40 AM Module: dtmf_chip Technology libraries: slow_normal 1.0 slow_hvt 1.1 tpz973gtc 230 ram_128x16A 0.0ram_256x16A 0.0 rom_512x16A 0.0 pllclk 4.3 Operating conditions: slow (balanced_tree) Wireload mode: enclosed=================================================== ========= Pin Type Fano ut Load Slew Delay Arrival (fF) (ps) (ps) (ps) --------------------------------------------------- -------------------------------(clock m_clk) launch 0 R latency +4000 4000 R DTMF_INST TDSP_CORE_INST DATA_BUS_MACH_INST data_out_reg[0]/clk 0 4000 R data_out_reg[0]/q (u) unmapped_d_flop 19 155.1 0 +258 4258 R DATA_BUS_MACH_INST/data_out[0] TDSP_CORE_GLUE_INST/data_out[0] TDSP_CORE_GLUE_INST/port_data_in[0] PORT_BUS_MACH_INST/data_in[0] PORT_BUS_MACH_INST/pad_data_out[0] TDSP_CORE_INST/port_pad_data_out[0] DTMF_INST/port_pad_data_out[0] IOPADS_INST/tdsp_portO[0] Ptdspop00/I +0 4258 Ptdspop00/PAD PDO04CDG 1 6719.0 2038 +1648 5906 R IOPADS_INST/tdsp_port_out[0] port_pad_data_out[0] out port +0 5906 R (ou_del_1) ext delay +500 6406 R - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (clock refclk) capture 6000 R uncertainty -250 5750 R --------------------------------------------------- -------------------------------Timing slack : -656ps (TIMING VIOLATION)Start-point : DTMF_INST/TDSP_CORE_INST/DATA_BUS_MA CH_INST/data_out_reg[0]/clkEnd-point : port_pad_data_out[0]

L’header include informazioni sulibrerie e modulo.

Il body include ilcalcolo del tempo di arrivo.

Il footer include ilcalcolo dello slack.

Esempio di report di timing

Page 33: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica33

Generazione degli output

• Comandi per la generazione degli output – Il comandowrite_hdl genera una gate-level netlist.

write_hdl > | >> filename

– Il comandowrite_scriptgenera il file di constraint RC.write_script > | >> constraints.g

– Il comandowrite_sdcgenera il file di constraint SDC. write_sdc [design] > | >> [filename]

Usare il simbolo > per redirezionare l’output in un file, oppure>> per accodarlo al file.

write_hdl > <path to the output dir>/design.v

Page 34: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica34

Navigazione nella struttura dati• RC usa comandi UNIX-like per navigare nella gerarchia del design in memoria.

� cd — Setta la current directorynella gerarchia di design.

� ls <-l > < -a> — Lista gli ogetti nellacurrent directory.

� mv— Muove (rinomina) un design nella gerarchia.

mv test2 test3 Rinomina il designtest2come test3.

� popd — Rimuove l’elemento superiore dello stack di directory, definendo un nuovoelemento superiore e cambiando la directory nel nuovo elemento.

� pushd — Aggiunge la nuova directory specificata nello stack didirectory e cambia la current directory in quella nuova.

� rm — Rimuove un ogetto (come una definizione di clock) in una gerarchia.

rm /des*/test3/timing/clock_domains/domain_1/clock rimuovel’ogettoclock.

� find — Trova un ogetto e lo passa ad un altro comando.

ls –l –a [find / –wireload *] Riporta i wire load model.

Page 35: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica35

Filtraggio di oggetti per nome e per tipo

set inst_list [ find /des* -instance *]echo $inst_list

Trova tutte le istanzegerarchiche del design

find /des* -clock * Trova tutti i clock del design

find /LibraryName –wireload *Trova tutti i wire-load model disponibili in una libreria

find /des* -subd * Trova tutti i subdesign.

find /des* -pin inst*hier/v1/*

find /des* -pin v1/*

Trova tutti i pin dell’istanza v1 nella gerarchia

find /des* -port ports_out/*Trova tutte le porte di uscita

find /des* -port ports_in/*Trova tutte le porte di ingresso

find /des* -instance inst*seq*/*Trova tutti i FFs e i latch

ComandoObiettivo

Page 36: Sintesi logica- Generalità - unirc.it · .SDC Physical Design.SDC .g Encounter RTL Compiler Logic Verification Input e Output per RTL Compiler ... • Si può generate un template

Facoltà di Ingegneria di Reggio Calabria - Corso di Laurea in Ingegneria Elettronica36

Filtraggio di oggetti basato suattributi

ls -la [ filter -invert count 0 [find / -message *]]

Lista tutti i messaggi con un conteggio superiore o uguale a 1

filter preserve true [find / -inst *]Trova tutte le istanze preservate

filter latch true [find / -instance *]Trova tutti i latch del design

ComandoObiettivo