DCDesignCompiler综合脚本命令及参考模板.docx
- 文档编号:8688349
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:26
- 大小:20.46KB
DCDesignCompiler综合脚本命令及参考模板.docx
《DCDesignCompiler综合脚本命令及参考模板.docx》由会员分享,可在线阅读,更多相关《DCDesignCompiler综合脚本命令及参考模板.docx(26页珍藏版)》请在冰豆网上搜索。
DCDesignCompiler综合脚本命令及参考模板
DCDesignCompiler综合脚本命令及参考模板
DesignCompiler综合脚本
常用命令和模板
参照自己的设计,以及自己的工艺信息,适当修改下面的
Constraints和RunScript等的脚本,添加一些相关的约束语句,
就可以运行了
详细的命令请参照DC的官方UserGuide等相关资料。
InvokingDesignCompiler
Unix%design_vision#InteractiveGUI,WLMmodeUnix%
design_vision–topographical#InteractiveGUI,Topographicalmode
Unix%dc_shell-t#Interactiveshell,WLMmodeUnix%dc_shell-t–topographical#Interactiveshell,Topographicalmode
Unix%dc_shell-t
–fRUN.tcl|tee
–imy.log#Batchmode
.synopsys_dc.setup
setsearch_path“$search_pathlibsconsunmappedrtlsetsynthetic_librarydw_foundation.sldbsettarget_library65nm.db
”
setlink_library“*$target_library$synthetic_libraryIP.db
”
setsymbol_library65nm.sdb
define_design_libWORK–path./work
set_svf
set_vsdc
historykeep200
setsh_enable_page_modefalse
setcache_write.
setcache_read$cache_write
suppress_message{LINT-28LINT-32LINT-33UID-401}set
alib_library_analysis_path[get_unix_variableHOME]aliashhistory
aliasrc“report_constraint
-all_violators
”
TCLCommandsandConstructs
setPER2.0#Defineavariableanditsvalueecho$PER#Variablesubstitution,2.0
setMARG0.95
expr$PER*$MARG#expr:
*,/,+,-,>,<,=,<=,>=
setpci_ports[get_portsA]#Imbeddedcommandsetpci_ports
[get_ports“Y?
?
MZ*”]#Wildcards
echo“EffctvP=\#Softquotes,1.9
[expr$PERIOD*$MARGIN]”
echo{EffctvP=\#Hardquotes
[expr$PERIOD*$MARGIN]}#,EffctvP=[expr$PER*$MARG]#Commentline
setCOMMENTin_line;#In-linecommentsetMY_DESIGNS{B1.v...
B26.v}#foreachloopforeachDESIGN$MY_DESIGNS{read_verilog$DESIGN
}
for{seti1}{$i<27}{incri}{#forloop
read_verilogBLOCK_$i.v
}
HelpfulUNIX-likeDC-shellcommands
pwd
cd
ls
history
!
!
!
7
!
report
sh
printenv
get_unix_variableARCH
Constraints
reset_design
set_max_area0
create_clock-period2
–nameMain_Clk[get_portsClk1]
create_clock
–period2.5
–waveform{23.5}[get_portsClk2]
create_clock
–period3.5
–nameV_Clk;#VIRTUALclock
set_clock_uncertainty
–setup0.14[get_clocks*]
set_clock_uncertainty
–setup0.21
–from[get_clocksMain_Clk]
–to
[get_clocksClk2]set_clock_latency
–max0.6[get_clocksMain_Clk]
set_clock_latency–source–max0.3[get_clocksMain_Clk]
set_clock_transition0.08[get_clocksMain_Clk]set_input_delay-max0.6
-clockMain_Clk[all_inputs]set_input_delay
–max0.3
–clockClk2
–
clock_fall
–add_delay[get_ports
“BE”]
set_input_delay-max0.5-clock
–network_latency_includedV_Clk
[get_ports
“ACF”]
set_output_delay-max0.8-clock
–source_latency_includedMain_Clk
[all_outputs]
set_output_delay-max1.1-clockV_Clk[get_ports“OUT2OUT7]
set_max_capacitance1.2[all_inputs]
set_load0.080[all_outputs]
set_load[expr[load_ofslow_proc/NAND2_3/A]*4][get_portsOUT3]
set_load0.12[all_inputs]
set_input_transition0.12[remove_from_collection
[all_inputs][get_portsB]]
set_driving_cell
–lib_cellFD1
–pinQ[get_portsB]
set_operating_conditions–maxWCCOM
setauto_wire_load_selectionfalse
set_wire_load_model–name1.6MGates
set_wire_load_modeenclosed
set_wire_load_model
–name200KGates[get_designs
“SUB1SUB2”]
set_wire_load_model–name3.2MGates[get_portsIN_A]set_port_fanout_number8[get_portsIN_A]set_false_path-from[get_clocksAsynch_CLKA]-to[get_clocksAsynch_CLKB]
set_multicycle_path–setup4–from–fromA_reg-through
U_Mult/Out–toB_reg
set_multicycle_path–hold3–from–fromA_reg-through
U_Mult/Out–toB_reg
set_isolate_ports–typeinverter[all_outputs]
set_ideal_network[get_portsreset*select*]set_ideal_network
[get_pinsFF_SET_reg/Q]set_ideal_network–no_propagate[get_netsCTRL]
set_ideal_latency1.4[get_portsreset*select*]
set_ideal_transition0.5[get_pinsFF_SET_reg/Q]set_scan_configuration
-style
report_design
report_port–verbose
report_wire_load
report_path_groups
report_timing_requirements(
–ignored)report_auto_ungroup
report_isolate_portswrite_scriptcheck_timing
–output
reset_path–fromFF1_reg
remove_clock
remove_clock_transitionremove_clock_uncertaintyremove_input_delayremove_output_delayremove_driving_cellremove_wire_load_modelSyntaxChecking
Unix%dcprocheckconstr_file.con
PhysicalConstraints–TopographicalMode
set_aspect_ratio
set_utilization
set_placement_area
set_rectilinear_outlineset_port_side
set_port_location
set_cell_location
create_placement_keepout
Misc.Reports
#GenerateAlibraryreportfile
read_dblibrary_file.db
list_libs
redirect–filereports/lib.rpt{report_lib
report_hierarchy[-noleaf]
#Arithmeticimplementationand
#resource-sharinginforeport_resources
#Listareaforallcellsinthedesignreport_cell[get_cells
hier*]
RunScript
read_verilog{A.vB.vTOP.v}or
read_vhdl{A.vhdB.vhdTOP.vhd}or
read_ddcMY_TOP.ddcor
acs_read_hdlMY_TOPor
–
analyze
–formatverilog{A.vB.vTOP.v}
elaborateMY_TOP
–parameters
“A_WIDTH=8,B_WIDTH=16”
current_designMY_TOP
link
if{[check_design]==0}{
echo“CheckDesignError”
exit#ExitsDCifacheck-designerrorisencountered}#ContinueifNOproblemsencountered
write–fddc–hier–outunmappedd/TOP.ddc
redirect–tee–filereports/precompile.rpt{source–echo-verbose
TOP.con}redirect–append–tee–filereports/precompile.rpt{check_timing}source
extract_physical_constraints
#DEFfloorplanfile
group_path-nameCLK1-critical_range<10%ofCLK1Period>–weight
5
group_path-nameCLK2-critical_range<10%ofCLK2Period>–weight
2
group_path
–nameINPUTS–from[all_inputs]
group_path
–nameOUTPUTS–to[all_outputs]
group_path
–nameCOMBO–from[all_inputs]
–to[all_outputs]
set_fix_multiple_port_nets–all–buffer_constants
***********************************************************
*InsertExpert,UltraorACScompileflowhere***
*********************************************************
check_design
report_constraint–all_violators
report_timing–delay–to–from–through–input_pins–max_paths
\
–nworst–nets–cap–sig–groupreport_area
report_qor
setverilogout_no_tritrue
change_names–ruleverilog
–hier
write
–fverilog
–hier
–outmapped/TOP.v
write–fddc–hier–outmapped/TOP.ddc
write_sdcTOP.sdc
write_scan_def–outTOP_scan.def
write_physical_constraints–outputTOP_PhysConstr.tclexit
ObjectRetrievalandManipulation(CollectionCommands)
get_ports,get_pins,get_designs
get_cells,get_nets,get_clocks
get_nets–of_objects[get_pinsFF1_reg/Q]get_libs
all_fanin,all_fanout
all_ideal_nets
setpci_ports[get_portspci_*]
echo$pci_ports#,_sel184
query_objects$pci_ports#,{pci_1pci_2...}get_object_name
$pci_ports#,pci_1pci_2...
sizeof_collection$pci_ports#,37
setpci_ports[add_to_collection$pci_ports\
[get_portsCTRL*]]
setall_inputs_except_clk[remove_from_collection\
[all_inputs][get_portsCLK]]
compare_collections
index_collection
sort_collection
foreach_in_collectionmy_cells[get_cells-hier*\
-filter
“is_hierarchical==true
”]{
echo
“Instance[get_object_name$cell]ishierarchical
”
}
#Filteringoperators:
==,!
=,>,<,>=,<=,=~,!
~
filter_collection[get_cells*]
“ref_name=~AN*”
get_cells*-
filter
“dont_touch==true
”
get_clocks*-filter“period<10”
#Listallcellattributesandredirectoutputtoafileredirect–filecell_attr\
{list_attributes–application–classcell}
#Grepthefileforcellattributesstartingwithdont_
UNIX%grepdont_cell_attr|more
#Listthevalueoftheattributedont_touchget_attribute
UltraCompileFlow-TopographicalorWLMModeUltra+DesignWareandDFTClicensesavailable
#In
“topo”
mode(dc_shell
-t
–topo)specifyMilkywayreference
anddesignlibrariescreate_mw_lib–tech
mw_reference_library
open_mw_lib
set_tlu_plus_files-max_tluplus
setcompile_auto_ungroup_count_leaf_cellstrue
setcompile_auto_ungroup_override_wlmtrue
set_ungroup
#OPTIONAL:
Disableunconditionalauto-ungrouping
#ofDesignWarehierarchy(notusuallyrecommended)setcompile_ultra_ungroup_dwfalse
#Ifdesigncontainspipelinedsub-designsandthepipelineregisters
#aregroupedtogetherattheinputoroutput,relaxtiming
set_multicycle_path
–setup<#_stages>-fromU_Pipeline/R3_reg*
–to
U_Pipeline/R7_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DCDesignCompiler 综合 脚本 命令 参考 模板