回复 4# bestyanjun
我写的是一个ADC芯片的SPI接口,用用来配置的芯片的。要求是100MHZ。
下面是我的脚本文件,只是顶层(SPI_ADC)的脚本文件,不知道底层的模块用不用设置约束。################# #set search_path set target_library {/project/DAC_Project/library/chartered/arm-lib-frontend/aci/sc-x/synopsys/scx_csm_18ic_ss_1p62v_125c.db} set link_library {* /project/DAC_Project/library/chartered/arm-lib-frontend/aci/sc-x/synopsys/scx_csm_18ic_ss_1p62v_125c.db} set symbol_library {/project/DAC_Project/library/chartered/arm-lib-frontend/aci/sc-x/symbols/synopsys/scm18ic.sdb} ################# read_file -format verilog {/export/home/2011/wangx/wangx_spi_CODE/CODE/SPI_ADC.v} read_file -format verilog {/export/home/2011/wangx/wangx_spi_CODE/CODE/ADDR_GEN.v /export/home/2011/wangx/wangx_spi_CODE/CODE/DATA_IN.v /export/home/2011/wangx/wangx_spi_CODE/CODE/DATA_OUT.v /export/home/2011/wangx/wangx_spi_CODE/CODE/MAIN_CONTROL.v /export/home/2011/wangx/wangx_spi_CODE/CODE/MEM.v} ################# current_design SPI_ADC link reset_design ################# #set_operating_conditions -max_library scx_csm_18ic_ss_1p62v_125c -max worst \ #-min_library *** -min best set_operating_conditions -library scx_csm_18ic_ss_1p62v_125c ss_1p62v_125c #set_wire_load_model -name csm18_wl50
-library #scx_csm_18ic_ss_1p62v_125c set auto_wire_load_selection true set_wire_load_mode enclosed set_driving_cell -lib_cell INVX2 -pin Y -library scx_csm_18ic_ss_1p62v_125c [remove_from_collection [all_inputs] [get_ports {SCLK rst}]] set_load 0.3 [all_outputs] set_fanout_load 8 [get_ports SDIO] ################# create_clock -name "clock" -period 10 -waveform { 0 5 } { SCLK } set_dont_touch_network [ find clock clock ] set_clock_latency -source 1 [get_clocks clock] set_clock_latency 1 [get_clocks clock] set_clock_uncertainty 0.5 [get_clocks clock] set_clock_transition 0.3 [get_clocks clock] ################# set_dont_touch [get_nets rst] set_drive 0 [list SCLK rst] #set_drive 0 [get_ports SCLK] #set_drive 0 [get_ports rst] set_max_capacitance 6 [remove_from_collection [all_inputs] [get_ports {SCLK rst}]] set_max_fanout 6 [remove_from_collection [all_inputs] [get_ports {SCLK rst}]] set_max_transition 2 SPI_ADC ################# set ain_ports [remove_from_collection [all_inputs] [get_ports SCLK]] set_input_transition 0.3 $ain_ports set_input_delay -clock clock -max 4 $ain_ports set_input_delay -clock clock -min 0 $ain_ports set_output_delay -clock clock -max 4 [all_outputs] set_output_delay -clock clock -min 1 [all_outputs] ################# set_max_area 0 ################# #recommend for reduce area set_structure -boolean true -boolean_effort high #fix the multiple port nets set_fix_multiple_port_nets -all -buffer ################# check_design > check_design.rpt check_timing > check_timing.rpt ################# uniquify compile compile -map_effort high -incremental_mapping ##################reports report_timing -delay max -max_paths 1 > timing_setup.rpt report_timing -delay min -max_paths 1 > timing_hold.rpt report_constraint -all_violators > con_violators.rpt report_timing -path full -delay max -max_paths 1 -nworst 1 > timing.rpt report_area > area.rpt ##################write the database change_names -rule verilog -h write -format verilog -hier -output SPI_ADC.sv write_sdf SPI_ADC.sdf write_constraints -format sdf -cover_design -output constraints.sdf write_sdc SPI_ADC.sdc #################
不知道参数设置有没有问题,要怎么修改?我用的是最坏情况的库,建立和保持时间的SCLAK都为-0.26。 |