Kako napisati skriptu za sintezu

T

tutx

Guest
Bok svima,

Sory!jer sam stavio glupo pitanje, ali u stvari ne znam kako početi sa sintezom alata.Netko mi je rekao da sam napisati skript datoteke za pokretanje systhesis ali ne znam kako to napisati?

Pls hepp meni ili dajte mi nešto!

 
Bok,

sinteza alat koji trebate.Ako koristite XST (Xilinx)
ili Leonardom / Precision (mentor) ili Synplify (Synplicity) oni
svi su grafičkog korisničkog sučelja ...Osim normaly
tcl korištenje skripti ako želite pokrenuti ih u batch modu ...možete
kreirati thos tcl skripti preko GUI.

Andi

 
Hi tutx:

Ako ste početnik, najbolji način je ne grafički skripte.Nakon što

familary sa grafičkim sučeljem, onda možete ići u skripti.

 
U redu gospodine, prvo razumjeti suštinu sinteze ...dobiti osnovno pravo ostalo će pasti u mjestu

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Osmjeh" border="0" />

...........Sljedeća odlučivati o tome hoće li u ur zovete kartice na FPGA ili ASIC sinteza alat ....ako u imati absoultely nema pojma o tome što je cijela stvar je ...Htjela predlažemo da u start sa Xilinx kit ... svojim slobodnim i to ne treba skriptiranje za sintezu, iako u nekim će trebati za constraining ur dizajn ali je dobar učitelj u sebi kit koji će pomoći ua lot ... onda možete početi obavljati ozbiljnijih stvari poput skripti da biste dobili posao ispunjavanja ur

 
Hvala za sve vaše savjete!
Međutim, problem je što ne bih trebao alati izabrao za početak.To je način kako da radim s alatima koje je moj kuhar popuštanje mene.

U mom labo,
koristimo samo kadenca alati za oblikovanje VSLI od modelsim za Synopsys alata.Svi oni radovi u UNIX.Tako je postalo veliki problem za mene jer ja nikada ne koriste UNIX i drugih alata u UNIX.

Pa što da radim sada?

 
Po mom mišljenju, najteže inženjerstvo projicirane su učinili u Unix baziran radnu.To je jednostavnije za vas sada, kupiti jeftino i starih računala, download jednostavna verzija Linux i početi učenje Linuxa.
Linux je jedna vrsta Unix.

 
možete pronaći neke od taped skripte iz projekta za naučiti ih

 
set verbose 1; # 1 za verbose izvor i change_names naredbi

set rtl_language Verilog; # Verilog ili vhdl izvor RTL

set rundc 1; # 1 da biste započeli s RTL, 0 za postojeće db
set rtl2pg 0; # 1 za RTL stavljen na vrata toka, 0 za RTL na vratima

set use_clock_gating 0; # korištenje RTL vratarenje sa satom Snaga kompajler
set integrated_cell 0; # kaže Power kompajler za korištenje integrirane CG cell

set scan_ready 1; # Test spreman prikupljati će se izvršiti
set scan_insertion 1; # uzrokovat će skeniranje lanci biti stitched
set numscanchains 4; # broj scan lanci biti implementiran

set ultra 0; # Enable DC-Ultra (zahtijeva licenca)
set use_physopt 0; # Enable PhysOpt naredbe
set use_boundary_opt 0; # Enable boundary optimizacije
set force_wireload 0; # Koristiti prilagođenu Žica učitati model
set spljeskati 0; # Uklonite sve hijerarhije od dizajna

set clk_period 5,5; # Ciljana sat razdoblju u ns
set io_clk_period 5,5; # Ciljana I / O sat razdoblju u ns
set clk_uncertainty 0,20; # Očekivani clock skew u ns
set min_latency 0; # Minimalna sat latentnost pod WCS
set max_latency 0; # Maximum clock latentnost pod WCS

set apply_name_rules 1; # Promjena imena prema imenima Verilog pravilu
set perled 0; # primjenjuje PERLED_MUX konstanta kad raščlanjivanjem RTL

# ---------------------------

# Pročitaj u specifične tehnologije skripte
ako je ($) (verbose
izvor-echo-verbose ./scripts/tsmc18.tcl
izvor-echo-verbose. / scripts / dont_use.tcl
) Else (
izvor-jeka ./scripts/tsmc18.tcl
izvor-jeka. / scripts / dont_use.tcl
)

# Definirajte knjižnice dizajn
define_design_lib radnog staza. / lib

ako je ($) (ultra
set_ultra_optimization true-force
)

ako je ($) (rundc
# Analizirati izvorni RTL

set verilog_files (A946ESConstants.v A946ESParams.v \
a9esClkBlk.v a9esWRegDecoder.v a9esREG.v a9esFwd.v a9esRegC.v a9esIMM.v \
a9esIPipe.v a9esISyncr.v a9esMASeq.v a9esMainSeq.v a9esMem.v a9esPSR.v \
a9esPipeCtl.v a9esRegFwd.v a9esShALUADec.v a9esShALUTDec.v \
a9esShALUSeq.v a9esShALUCtl.v a9esWRegDec.v a9esMulCtl.v a9esCoreCtl.v \
a9esLU.v a9esSat.v a9esAU.v a9esArmShifter.v a9esShifter.v \
a9esSatTimes2.v a9esCLZ.v a9esExecute.v a9esRam3r2wSDff.v a9esByteRot.v \a9esDAOut.v a9esIAOut.v a9esRegBank.v a9esMulDP.v a9esCoreDP.v \ a9esWptctl.v a9esDbgCommsctl.v a9esICEctl.v a9esTapScanctl.v \
a9esDbgctl.v a9esWptdp.v a9esDbgCommsdp.v a9esICEdp.v a9esTapScandp.v \
a9esDbgdp.v a9esDbg.v ARM9ES.v A946ESRegFile16x40.v A946ESFifo.v \
A946ESAHBBiuWb.v A946ESCPIntf.v A946ESCaRepl.v A946ESProtUnit.v \
A946ESClkGate.v A946ESETMBuf.v A946ESHitDet.v A946ESDaCntrl.v \
A946ESInsCntrl.v A946ESIntClken.v A946ESLdmStmTrk.v A946ESCp15.v \
A946ESCaTCMCntrl.v A946ESCore.v A946ESDValidMux.v A946ESIValidMux.v \
A946ESDValid.v A946ESIValid.v A946ESRBistShell.v A946ESDCache.v \
A946ESDTag.v A946ESDDirty.v A946ESICache.v A946ESITag.v A946ESRBistCtl.v \
ARM946ES.v)

set vhdl_files (a9esComponents.vhd a9esConstants.vhd a9esSat.vhd \
a9esArmShifter.vhd a9esDbgCommsctl.vhd a9esWptctl.vhd \
a9esDbgCommsdp.vhd a9esWptdp.vhd a9esISyncr.vhd a9esFwd.vhd \
a9esREG.vhd a9esRegC.vhd a9esShALUTDec.vhd a9esShALUSeq.vhd \
a9esShALUADec.vhd a9esWRegDecoder.vhd a9esAU.vhd a9esCLZ.vhd \
a9esLU.vhd a9esSatTimes2.vhd a9esShifter.vhd a9esRam3r2wSDff.vhd \
a9esICEctl.vhd a9esTapScanctl.vhd a9esICEdp.vhd a9esTapScandp.vhd \
a9esIMM.vhd a9esIPipe.vhd a9esMASeq.vhd a9esMainSeq.vhd \
a9esMem.vhd a9esMulCtl.vhd a9esPSR.vhd a9esPipeCtl.vhd \
a9esRegFwd.vhd a9esShALUCtl.vhd a9esWRegDec.vhd a9esByteRot.vhd \
a9esDAOut.vhd a9esExecute.vhd a9esIAOut.vhd a9esMulDP.vhd \
a9esRegBank.vhd a9esDbgctl.vhd a9esDbgdp.vhd a9esDbg.vhd \
a9esCoreDP.vhd a9esCoreCtl.vhd a9esClkBlk.vhd ARM9ES.vhd \
A946ESParams.vhd A946ESConstants.vhd A946ESFunctions.vhd \
A946ESComponents.vhd A946ESFifo.vhd A946ESAHBBiuWb.vhd \
A946ESHitDet.vhd A946ESCaRepl.vhd A946ESProtUnit.vhd \
A946ESDaCntrl.vhd A946ESInsCntrl.vhd A946ESIntClken.vhd \
A946ESLdmStmTrk.vhd A946ESCp15.vhd A946ESCaTCMCntrl.vhd \
A946ESCPIntf.vhd A946ESETMBuf.vhd A946ESClkGate.vhd \
A946ESCore.vhd A946ESRAMComponents.vhd A946ESICache.vhd \
A946ESITag.vhd A946ESDCache.vhd \
A946ESDTag.vhd A946ESDDirty.vhd A946ESDValidMux.vhd \
A946ESIValidMux.vhd A946ESDValid.vhd A946ESIValid.vhd \
A946ESRBistShell.vhd A946ESRBistCtl.vhd ARM946ES.vhd)

ako je ($ rtl_language == "Verilog") (
ako je ($) (perled
analyze-f-Verilog definirati PERLED_MUX $ verilog_files
) Else (
analyze-f $ verilog_files Verilog
)
) Else (
ako je ($) (perled
analyze-f vhdl-definirati PERLED_MUX $ vhdl_files
) Else (
analizirati vhdl-f $ vhdl_files
)
)

ako je ($) (use_clock_gating
ako je ($) (scan_ready
ako je ($) (integrated_cell
set_clock_gating_style-sequential_cell reza \
-positive_edge_logic (integriran: TLATNTSCAX8) \
-control_point pred-control_signal scan_enable \
max_fanout-8
) Else (
set_clock_gating_style-sequential_cell reza \
-control_point pred-control_signal scan_enable \
max_fanout-8
)
() Else
set_clock_gating_style-sequential_cell reza setup-0-držite 0
)
razra-update-gate_clock ARM946ES
) Else (
razra-update ARM946ES
)

# Uniquify link i dizajn
current_design ARM946ES
uniquify
veza

# Prepoznajte scan stila i spajanje na testports svih sat vratarenje elemenata
ako je ($) (scan_ready
set_scan_configuration-metodologija full_scan-style multiplexed_flip_flop
set_scan_signal test_scan_enable-port SCANEN
create_net SCANEN
connect_net SCANEN [pronaći luku SCANEN]
ako je ($) (use_clock_gating
hookup_testports
)
)

preusmjeravanje ./report/ARM946ES.check_design () check_design

create_clock perioda $ clk_period CLK
set_clock_uncertainty-setup $ clk_uncertainty CLK
set_clock_uncertainty-držite $ clk_uncertainty CLK
set_clock_transition 0 CLK

create_clock perioda $ clk_period UnGatedCLK
set_clock_uncertainty-setup $ clk_uncertainty UnGatedCLK
set_clock_uncertainty-držite $ clk_uncertainty UnGatedCLK
set_clock_transition 0 UnGatedCLK

# Prepoznajte visoke fanout mreže i podesite kontekst za dizajn
set high_fanout [Popis CLK UnGatedCLK SCANEN HRESETn DBGnTRST DBGTCKEN]
set_ideal_net $ high_fanout

set_load $ load_value [list [all_outputs]]
set_driving_cell-cell-pin driving_cell_name $ $ driving_cell_pin [\
lista [remove_from_collection [all_inputs] $ high_fanout]]

# Postavi IO vremena
ako je ($) (verbose
izvor-echo-verbose scripts/arm946es_constraints.tcl
) Else (
izvor-jeka scripts/arm946es_constraints.tcl
)

# Utvrditi žica load model i radnim uvjetima
ako je ($) (force_wireload
set_wire_load_model-name-knjižnica wireload_model $ $ wireload_library
set_wire_load_mode vrh
) Else (
set auto_wire_load_selection true
set_wire_load_mode vrh
)

# Postavi radnim uvjetima
set_operating_conditions sporo

# Set specifične opcije kompajlirati
set_max_area 0
set_max_transition 1 ARM946ES
set_resource_implementation use_fastest
foreach_in_collection design [get_designs "*"] (
current_design $ dizajn
set_fix_multiple_port_nets-svi-buffer_constants
echo "** Postavljanje set_fix_multiple_port_nets-svi-buffer_constants **"
)
current_design ARM946ES
set_critical_range 0,2 ARM946ES

# Propagiraju ograničenja ako koristite sat vratarenje
ako je ($) (use_clock_gating
propagate_constraints-gate_clock
)

# Napravi test lukama za skeniranje i skeniranje out
current_design ARM946ES
ako je ($) (scan_insertion
postavljen i za (1) ($ i <= $ numscanchains) (I) (incr
set port_name [format "% s% s" SCANIN $ i]
create_port $ port_name-smjer
set_scan_signal test_scan_in-port $ port_name
)
postavljen i za (1) ($ i <= $ numscanchains) (I) (incr
set port_name [format "% s% s" SCANOUT $ i]
create_port $ port_name smjer-out
set_scan_signal test_scan_out-port $ port_name
)
)

# Prevesti na ARM946E-S vrha prema dolje
current_design ARM946ES

preusmjeravanje ./report/ARM946ES.check_timing () check_timing

ako je ($) (spljeskati
razgrupiranje-svi-spljeskati
)

ako je ($) (rtl2pg
read_pdef ./floorplan/ARM946ES.pdef
ako je ($) (scan_ready
compile_physical-scan
) Else (
compile_physical
)
) Else (
ako je ($) (scan_ready
ako je ($) (use_boundary_opt
kompilirati-boundary_optimization-map_effort srednjoronih scan-area_effort none
) Else (
kompilirati-scan-map_effort srednja area_effort none
)
) Else (
ako je ($) (use_boundary_opt
kompilirati-boundary_optimization-map_effort srednjoronih area_effort none
) Else (
kompilirati-map_effort srednje area_effort none
)
)
)

) Else (

# Pročitaj postojeću DB
read_db ./db/ARM946ES-existing.db
current_design ARM946ES
veza
)

ako je ($) (use_physopt
# Pobrinite imamo licencu PhysOpt
remove_license PhysOpt
set PhysOpt_status [get_license PhysOpt]
dok ($ PhysOpt_status == (0)
preusmjeriti / dev / null set (PhysOpt_status [get_license PhysOpt])
)
read_pdef ./floorplan/ARM946ES.pdef
set physopt_pnet_partial_blockage_layer_names (METAL1 METAL2)
physopt-timing_driven_congestion-area_recovery
# Remove PhysOpt licencu
remove_license PhysOpt
)

Umetni # ispitati u dizajnu
ako je ($) (scan_insertion

set_test_hold 1 TESTMODE
set_scan_configuration-metodologija full_scan-style multiplexed_flip_flop \
-chain_count $ numscanchains-dedicated_scan_ports vjerna add_lockup true \
-clock_mixing mix_clocks_not_edges-replace false

set test_default_delay 0
set test_default_bidir_delay 0
set test_default_strobe 90
set test_default_period 100

set test_stil_multiclock_capture_procedures true

set test_stil_netlist_format Verilog

create_test_clock [Popis UnGatedCLK CLK]-100-valnog perioda (45 55)

# Ponovo set_fix_multiple_port_nets
foreach_in_collection design [get_designs "*"] (
current_design $ dizajn
set_fix_multiple_port_nets-svi-buffer_constants
echo "** Postavljanje set_fix_multiple_port_nets-svi-buffer_constants **"
)
current_design ARM946ES

preusmjeravanje ./report/ARM946ES-preinsert.dft () check_dft

ako je ($) (use_physopt
# Pobrinite imamo licencu PhysOpt
remove_license PhysOpt
set PhysOpt_status [get_license PhysOpt]
dok ($ PhysOpt_status == (0)
preusmjeriti / dev / null set (PhysOpt_status [get_license PhysOpt])
)
insert_dft-fizičko-map_effort visok
physopt-eko-incr
# Remove PhysOpt licencu
remove_license PhysOpt
) Else (
insert_dft-map_effort visok
# obavljati inkrementalni kompajlirati za uklanjanje dodijeliti izvještaja
kompilirati-incremental_mapping-map_effort low-area_effort none
)preusmjeravanje ./report/ARM946ES-physical.dft () check_dft
preusmjeravanje ./report/ARM946ES.scanpath (report_test-scan_path)
)

ako je ($) (use_physopt
# Pobrinite imamo licencu PhysOpt
remove_license PhysOpt
set PhysOpt_status [get_license PhysOpt]
dok ($ PhysOpt_status == (0)
preusmjeriti / dev / null set (PhysOpt_status [get_license PhysOpt])
)
check_legality
# Remove PhysOpt licencu
remove_license PhysOpt
)

ako je ($) (apply_name_rules
ako je ($) (verbose
change_names pravila Verilog hijerarhija-verbose-> ./report/ARM946ES.change-names
) Else (
change_names pravila Verilog-hijerarhija> ./report/ARM946ES.change-names
)
)

# Spremite dizajn
pisati-f-db-o hijerarhiji ./db/ARM946ES.db
pisati-f-Verilog hijerarhija-o ./db/ARM946ES.v
write_sdc verzije 1,2 ./db/ARM946ES.sdc

* Izvješće o dizajnu

# Generirajte područje izvješće za svaki modul
preusmjeravanje ./report/ARM946ES.area (echo "")
foreach_in_collection design [get_designs "*"] (
current_design $ dizajn
preusmjeravanje-./report/ARM946ES.area dodajte (report_area)
)
current_design ARM946ES

# Generirajte Opći izvješća
preusmjeravanje ./report/ARM946ES.hier () report_hierarchy
preusmjeravanje ./report/ARM946ES.qor () report_qor
preusmjeravanje ./report/ARM946ES.path-group () report_path_group
preusmjeravanje ./report/ARM946ES.detail () report_design
preusmjeravanje-./report/ARM946ES.detail dodajte (report_clock-atributi-ukošenje)
preusmjeravanje ./report/ARM946ES.port (report_port verbose-)

# Generirajte fanout izvješća za visoke fanout mrežama
preusmjeravanje ./report/ARM946ES.fanout (report_transitive_fanout-nosplit iz CLK-)
preusmjeravanje-./report/ARM946ES.fanout dodajte (report_transitive_fanout-nosplit-from UnGatedCLK)
preusmjeravanje-./report/ARM946ES.fanout dodajte (report_transitive_fanout-nosplit-from HRESETn)
preusmjeravanje-./report/ARM946ES.fanout dodajte (report_transitive_fanout-nosplit-from DBGnTRST)
preusmjeravanje-./report/ARM946ES.fanout dodajte (report_transitive_fanout-nosplit-from DBGTCKEN)
preusmjeravanje-./report/ARM946ES.fanout dodajte (report_transitive_fanout-nosplit-from SCANEN)

# Potražite latches i combinational petlje
preusmjeravanje ./report/ARM946ES.latches (all_registers-level_sensitive)
preusmjeravanje ./report/ARM946ES.loops (report_timing-petlje)

# Generirajte Vrijeme izvještaja
preusmjeravanje ./report/ARM946ES.input-max-timing (report_timing kašnjenjem max_paths max-500-s [all_inputs])
preusmjeravanje ./report/ARM946ES.output-max-timing (report_timing kašnjenje-max-500-do max_paths [all_outputs])
preusmjeravanje ./report/ARM946ES.reg2reg-max-timing (report_timing kašnjenjem max_paths max-500-s [all_registers-clock_pins]-u [all_registers-data_pins])
preusmjeravanje ./report/ARM946ES.vio (report_constraint-all_violators)

ako je ($) (use_physopt
# Pobrinite imamo licencu PhysOpt
remove_license PhysOpt
set PhysOpt_status [get_license PhysOpt]
dok ($ PhysOpt_status == (0)
preusmjeriti / dev / null set (PhysOpt_status [get_license PhysOpt])
)
preusmjeravanje ./report/ARM946ES.congestion (report_congestion-congestion_effort srednje)
# Remove PhysOpt licencu
remove_license PhysOpt
)

ako je ($) (use_physopt
# Pobrinite imamo licencu PhysOpt
remove_license PhysOpt
set PhysOpt_status [get_license PhysOpt]
dok ($ PhysOpt_status == (0)
preusmjeriti / dev / null set (PhysOpt_status [get_license PhysOpt])
)
set pdefin_use_nameprefix false
write_pdef-v3.0-output ./db/ARM946ES.pdef
# Remove PhysOpt licencu
remove_license PhysOpt
)

zatvoriti

 
set_output_delay 0-min-sat CLK [remove_from_collection [all_outputs] GateTheCLK]
set_output_delay [expr ($ () clk_period * 0,1 - $ min_latency)]-max-sat CLK [remove_from_collection [all_outputs] GateTheCLK]

# SAT vratarenje

set_output_delay 0-min-sat UnGatedCLK [Popis GateTheCLK]
set_output_delay [expr ($ (clk_period) - ((1 - 0,80) * $ (io_clk_period)) - $ min_latency)]-max-sat UnGatedCLK [Popis GateTheCLK]

# AHB sučelje

set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis HADDR]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis HTRANS]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis HBURST]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis HWRITE]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis HSIZE]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis HPROT]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis HWDATA]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis HBUSREQ]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis HLOCK]

# TCM Interface
set_output_delay [expr ($ (clk_period) - ((1 - 0,10) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ITCMWData]
set_output_delay [expr ($ (clk_period) - ((1 - 0,10) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ITCMWEn]
set_output_delay [expr ($ (clk_period) - ((1 - 0,10) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ITCMEn]
set_output_delay [expr ($ (clk_period) - ((1 - 0,10) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ITCMAdrs]
set_output_delay [expr ($ (clk_period) - ((1 - 0,10) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DTCMWData]
set_output_delay [expr ($ (clk_period) - ((1 - 0,10) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DTCMWEn]
set_output_delay [expr ($ (clk_period) - ((1 - 0,10) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DTCMEn]
set_output_delay [expr ($ (clk_period) - ((1 - 0,10) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DTCMAdrs]

# Koprocesor sučelje

set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis CPCLKEN]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis CPINSTR]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis CPDOUT]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis CPPASS]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis CPLATECANCEL]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis CPTBIT]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis nCPMREQ]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis nCPTRANS]

# Debug sučelje

set_output_delay [expr ($ (clk_period) - ((1 - 0,40) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis COMMRX]
set_output_delay [expr ($ (clk_period) - ((1 - 0,40) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis COMMTX]
set_output_delay [expr ($ (clk_period) - ((1 - 0,40) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DBGACK]
set_output_delay [expr ($ (clk_period) - ((1 - 0,55) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DBGRQI]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DBGINSTREXEC]
set_output_delay [expr ($ (clk_period) - ((1 - 0,20) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DBGRNG]
set_output_delay [expr ($ (clk_period) - ((1 - 0,35) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DBGTDO]
set_output_delay [expr ($ (clk_period) - ((1 - 0,75) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DBGIR]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DBGSCREG]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DBGTAPSM]
set_output_delay [expr ($ (clk_period) - ((1 - 0,60) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DBGnTDOEN]
set_output_delay [expr ($ (clk_period) - ((1 - 0,80) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis DBGSDIN]

# ETM sučelje

set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMBIGEND]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMHIVECS]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMnWAIT]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMIA]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMInMREQ]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMISEQ]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMITBIT]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMIABORT]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMID31To25]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMID15To11]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMDA]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMWDATA]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMDMAS]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMDMORE]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMDnMREQ]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMDnRW]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMDSEQ]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMRDATA]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMDABORT]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMCHSD]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMCHSE]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMLATECANCEL]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMPASS]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMDBGACK]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMINSTREXEC]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMRNGOUT]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMINSTRVALID]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMPROCID]
set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis ETMPROCIDWR]

# Ostalo Signali

set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [Popis BIGENDOUT]

# Scan Interface

set_output_delay [expr ($ (clk_period) - ((1 - 0,70) * $ (io_clk_period)) - $ min_latency)]-max-sat CLK [TAKO list]

# Sve min delay

set_input_delay 0-min-sat CLK [remove_from_collection [all_inputs] UnGatedCLK]

set_input_delay [expr ($ (clk_period) - ((1 - 0,05) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis DCacheSize]
set_input_delay [expr ($ (clk_period) - ((1 - 0,05) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis ICacheSize]

# AHB sučelje

# Sljedeće su za CLK HCLK omjer 1:1
set_input_delay [expr ($ (clk_period) - ((1 - 0,50) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis HREADY]
set_input_delay [expr ($ (clk_period) - ((1 - 0,50) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis HRESP]
set_input_delay [expr ($ (clk_period) - ((1 - 0,60) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis HRDATA]
set_input_delay [expr ($ (clk_period) - ((1 - 0,50) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis HGRANT]
set_input_delay [expr ($ (clk_period) - ((1 - 0,10) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis HRESETn]
set_input_delay [expr ($ (clk_period) - ((1 - 0,15) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis HCLKEN]

# Ostalo Signali

set_input_delay [expr ($ (clk_period) - ((1 - 0,85) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis nFIQ]
set_input_delay [expr ($ (clk_period) - ((1 - 0,85) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis nIRQ]

# Initialisation Control

set_input_delay [expr ($ (clk_period) - ((1 - 0,10) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis VINITHI]
set_input_delay [expr ($ (clk_period) - ((1 - 0,10) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis INITRAM]

# Koprocesor sučelje signali

set_input_delay [expr ($ (clk_period) - ((1 - 0,50) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis CPDIN]
set_input_delay [expr ($ (clk_period) - ((1 - 0,50) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis CHSDE]
set_input_delay [expr ($ (clk_period) - ((1 - 0,50) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis CHSEX]

# TCM Interface
set_input_delay [expr ($ (clk_period) - ((1 - 0,70) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis ITCMRData]
set_input_delay [expr ($ (clk_period) - ((1 - 0,70) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis DTCMRData]
set_input_delay [expr ($ (clk_period) - ((1 - 0,10) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis PhyITCMSize]
set_input_delay [expr ($ (clk_period) - ((1 - 0,10) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis PhyDTCMSize]

# Debug sučelje

set_input_delay [expr ($ (clk_period) - ((1 - 0,65) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis DBGEN]
set_input_delay [expr ($ (clk_period) - ((1 - 0,80) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis EDBGRQ]
set_input_delay [expr ($ (clk_period) - ((1 - 0,85) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis DBGEXT]
set_input_delay [expr ($ (clk_period) - ((1 - 0,50) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis DBGIEBKPT]
set_input_delay [expr ($ (clk_period) - ((1 - 0,50) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis DBGDEWPT]
set_input_delay [expr ($ (clk_period) - ((1 - 0,75) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis DBGnTRST]
set_input_delay [expr ($ (clk_period) - ((1 - 0,50) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis DBGTCKEN]
set_input_delay [expr ($ (clk_period) - ((1 - 0,75) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis DBGTDI]
set_input_delay [expr ($ (clk_period) - ((1 - 0,75) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis DBGTMS]
set_input_delay [expr ($ (clk_period) - ((1 - 0,10) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis DBGSDOUT]

set_input_delay [expr ($ (clk_period) - ((1 - 0,65) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis TAPID]

# ETM sučelje

set_input_delay [expr ($ (clk_period) - ((1 - 0,50) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis ETMEN]
set_input_delay [expr ($ (clk_period) - ((1 - 0,50) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis ETMFIFOFULL]

# Scan Interface

set_input_delay [expr ($ (clk_period) - ((1 - 0,05) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis SI]
set_input_delay [expr ($ (clk_period) - ((1 - 0,05) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis SCANEN]
set_input_delay [expr ($ (clk_period) - ((1 - 0,05) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis TESTMODE]
set_input_delay [expr ($ (clk_period) - ((1 - 0,05) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis SERIALEN]
set_input_delay [expr ($ (clk_period) - ((1 - 0,05) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis Testen]
set_input_delay [expr ($ (clk_period) - ((1 - 0,05) * $ () io_clk_period) $ max_latency)]-max-sat CLK [Popis INnotEXTEST]

remove_input_delay CLK
remove_input_delay UnGatedCLK

 
r ovom papiru koji dolaze baviti skriptiranje za EDA tools
thnaks
Žao nam je, ali morate prijaviti da biste vidjeli u ovom prilogu

 
goto synopsys solvnet čitati njihove

1.bijele knjige.
2.primjere.
3.tutoriali.

 
Ako radite u poduzeću, CD-a u bazu podataka poduzeća i pregledavanje prošlosti dizajnira, to je za lov goldmine up drugima i naučite tvrtke kodiranje stilova.

 
wadaye wrote:
Hi tutx:

If you are a beginner, the best way is graphic not scripts. After you

familary with the graphic interface, then you can go with the scripts.
 
Just my two cents on synthesis...

Sorry, but in my opinion SOLD is the WORST way to learn synthesis. The amount of info is huge for a beginner. People that recommned reading SOLD to a beginner make a major mistake in my opinion. The beginner is faced with a lot of info that's overwhelming, may start on the wrong foot, get scarried with it and think of synthesis as something he/she will never be able to learn. This is what happened to me.
SOLD is a comprehensive document. Any manual has to cover all the details, regardles of how important of unimportant they are. Writers of manuals have the obligation to cover any aspect of the problem so that user won't complain. Manuals are generally made for experienced users that already know what they are doing
As a beginner one is not able to know whether things explained in chapter x will be very useful in practice or completely unuseful. And he/she could focus too much on something unimportant and just browse through important stuff. After all, there are thousands of pages only for the Design Compiler documentation. One can't remember thousands of pages, especially if it is completelky new stuff.
But this is just my opinion. Learning synthesis may be vary painful sometimes.

And a few comments:

dumeHCM wrote:
There is not much graphic in synthesis tool !
 

Welcome to EDABoard.com

Sponsor

Back
Top