在FB上看到的,感覺蠻實際的就backup一下~
[ 轉 ] 大學生出去的說話技巧
by Halu Kuan on Tuesday, February 8, 2011 at 2:42am
雖然我已經工作兩年了,並且在工作中一直都很上進,可是這篇文章對我現在依然很受用,希望大家用心閱讀,或許對你有幫助.。
2011年2月14日 星期一
2011年1月16日 星期日
[VLSI] Design Vision scripts 分享!
這學期終於結束了,在課堂上學了蠻多CAD TOOL的。在這邊就自己備份、分享一下。有興趣的人就看看吧!
Script for Design Vision:
#####################
#Synthesis part
#####################
read_file -format verilog {/home/raid2_2/user99/r99079/final/CPU_TOP.v}
#####################
#Set Constraints
#####################
current_design CPU_TOP
create_clock -name "clk" -period 20 -waveform {"0" "10"} {"clk"}
set_dont_touch_network [ find clock clk]
set_fix_hold clk
set_operating_conditions "typical" -library "typical"
set_wire_load_model -name "ForQA" -library "typical"
set_wire_load_mode "segmented"
####################
set_input_delay -clock clk 2 interrupt
set_input_delay -clock clk 2 rst
set_input_delay -clock clk 2 instr_IF[*]
set_input_delay -clock clk 2 MEMdata_MEM[*]
set_output_delay -clock clk 2 PCout[*]
set_output_delay -clock clk 2 memWrite
set_output_delay -clock clk 2 memRead
set_output_delay -clock clk 2 ALUresult_MEM[*]
set_output_delay -clock clk 2 data2_MEM[*]
####################
set_max_area 0
set_max_fanout 8 CPU_TOP
set_max_transition 1 CPU_TOP
set_load 0.05 [get_ports "interrupt"]
set_load 0.05 [get_ports "rst"]
set_load 0.05 [get_ports "instr_IF[*]"]
set_load 0.05 [all_outputs]
# Remove unconnecting wire
set sh_enable_line_editing true
set_fix_multiple_port_nets -all -buffer_constants [get_designs *]
#####################
# Compile Desin
#####################
uplevel #0 check_design
compile -map_effort high
#####################
# Report timing, area
# and power
#####################
uplevel #0 { report_clock -nosplit }
uplevel #0 { report_timing -path full -delay max -nworst 1 -max_paths 1 -significant_digits 2 -sort_by group }
uplevel #0 { report_power -analysis_effort low }
uplevel #0 { report_area -nosplit }
# Remove assign
remove_unconnected_ports -blast_buses [get_cells * -hier]
set bus_inference_style {%s[%d]}
set bus_naming_style {%s[%d]}
set hdlout_internal_busses true
change_names -hierarchy -rule verilog
define_name_rules name_rule -allowed "a-z A-Z 0-9 _" -max_length 255 -type cell
define_name_rules name_rule -allowed "a-z A-Z 0-9 _[]" -max_length 255 -type net
define_name_rules name_rule -map {{"\\*cell\\*" "cell"}}
change_names -hierarchy -rules name_rule
#####################
# Save gate level
# verilog file and sdf file
#####################
write -hierarchy -format ddc
write -hierarchy -format verilog -output /home/raid2_2/user99/r99079/final/CPU_syn.vg
write_sdf -version 2.1 /home/raid2_2/user99/r99079/final/CPU_syn.sdf
write_sdc CPU.sdc
######### End of Synthesis part ##########
Script for Design Vision:
#####################
#Synthesis part
#####################
read_file -format verilog {/home/raid2_2/user99/r99079/final/CPU_TOP.v}
#####################
#Set Constraints
#####################
current_design CPU_TOP
create_clock -name "clk" -period 20 -waveform {"0" "10"} {"clk"}
set_dont_touch_network [ find clock clk]
set_fix_hold clk
set_operating_conditions "typical" -library "typical"
set_wire_load_model -name "ForQA" -library "typical"
set_wire_load_mode "segmented"
####################
set_input_delay -clock clk 2 interrupt
set_input_delay -clock clk 2 rst
set_input_delay -clock clk 2 instr_IF[*]
set_input_delay -clock clk 2 MEMdata_MEM[*]
set_output_delay -clock clk 2 PCout[*]
set_output_delay -clock clk 2 memWrite
set_output_delay -clock clk 2 memRead
set_output_delay -clock clk 2 ALUresult_MEM[*]
set_output_delay -clock clk 2 data2_MEM[*]
####################
set_max_area 0
set_max_fanout 8 CPU_TOP
set_max_transition 1 CPU_TOP
set_load 0.05 [get_ports "interrupt"]
set_load 0.05 [get_ports "rst"]
set_load 0.05 [get_ports "instr_IF[*]"]
set_load 0.05 [all_outputs]
# Remove unconnecting wire
set sh_enable_line_editing true
set_fix_multiple_port_nets -all -buffer_constants [get_designs *]
#####################
# Compile Desin
#####################
uplevel #0 check_design
compile -map_effort high
#####################
# Report timing, area
# and power
#####################
uplevel #0 { report_clock -nosplit }
uplevel #0 { report_timing -path full -delay max -nworst 1 -max_paths 1 -significant_digits 2 -sort_by group }
uplevel #0 { report_power -analysis_effort low }
uplevel #0 { report_area -nosplit }
# Remove assign
remove_unconnected_ports -blast_buses [get_cells * -hier]
set bus_inference_style {%s[%d]}
set bus_naming_style {%s[%d]}
set hdlout_internal_busses true
change_names -hierarchy -rule verilog
define_name_rules name_rule -allowed "a-z A-Z 0-9 _" -max_length 255 -type cell
define_name_rules name_rule -allowed "a-z A-Z 0-9 _[]" -max_length 255 -type net
define_name_rules name_rule -map {{"\\*cell\\*" "cell"}}
change_names -hierarchy -rules name_rule
#####################
# Save gate level
# verilog file and sdf file
#####################
write -hierarchy -format ddc
write -hierarchy -format verilog -output /home/raid2_2/user99/r99079/final/CPU_syn.vg
write_sdf -version 2.1 /home/raid2_2/user99/r99079/final/CPU_syn.sdf
write_sdc CPU.sdc
######### End of Synthesis part ##########
訂閱:
文章 (Atom)