在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 9255|回复: 14

哪位有DC比较全的TCL脚本,可否发给我学习学习!多谢了!

[复制链接]
发表于 2005-1-17 11:37:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
哪位有DC比较全的TCL脚本,可否发给我学习学习!多谢了!我的邮箱是bjzhaoxh77@163.com
发表于 2005-1-30 13:15:26 | 显示全部楼层

哪位有DC比较全的TCL脚本,可否发给我学习学习!多谢了!

发个一般全地
hoho
/*-----------------------------------------------------------------------------
// Author   : S.Aravindhan
// File     : risc8_dc_compile.scr
// Version  : 1.0
// Abstract : design compiler script for risc8. To invoke:
//            dc_shell -f risc8_dc_compile.scr | tee dc.log
//           
// History:
// ============================================================================
// 02/06/00  arvind  1.0      Initial Release
// ==========================================================================*/
/* Main parameters */
/* --------------- */
power_clock_gating = 0  /* 1 - gating;  0 - no-gating, need power compiler */
scan_insertion     = 0  /* 1 - scan;    0 - no-scan,   need test compiler  */
flatten            = 0  /* 1-  flatten; 0 - no flatten                     */
/* Clock specification */
/* ------------------- */
clk_period         = 3.3
clk_uncertainty    = 0.0
clk_high           = 0.5 * clk_period
/* library information */
/* -------------------- */
target_library    = "xyz_wccomv.db"
symbol_library    = "xyz.sdb"
synthetic_library = {dw01.sldb, dw02.sldb, dw03.sldb, dw06.sldb}
link_library      = "*" + target_library + synthetic_library
search_path = search_path + "/libraries/syn"
nand_name = "ND2A"
nand_output_pin = "Z"
nand_input_pin  = "A"
min_op_condition = "NOM"
max_op_condition = "WCCOM"
min_library_name = "xyzlib"
max_library_name = "xyzlib"
/* create work directory */
/* --------------------- */
remove_design -all
sh "rm -rf ./work"
sh "mkdir ./work"
define_design_lib work -path ./work
/* Analyze and elaborate */
/* --------------------- */
module_list = { \
   risc8_alu \
   risc8_regb_biu \
   risc8_control \
   risc8  }
foreach (module_name, module_list) {
   analyze -format verilog { \
     ../src/risc8_constants.v \
     ../src/risc8_parameters.v \
     "../src/" + module_name + ".v" }
   }
if (power_clock_gating == 1) {
   set_clock_gating_style -sequential_cell latch -setup 0 -hold 0 \
      -control_point before -control_signal scan_en
   elaborate -update -architecture "verilog" -gate_clock risc8
} else {
     elaborate -update -architecture "verilog" risc8
}
/* Constraints */
/* ----------- */
current_design risc8
/* clock */
create_clock -period clk_period clk -wave {0 clk_high}
set_clock_uncertainty clk_uncertainty clk
set_fix_hold clk
/* input output load */
set_driving_cell -cell nand_name -library  min_library_name \
                  -pin nand_output_pin {all_inputs()}
set_drive 0 {clk, rst_n, scan_en}
load_cell = min_library_name + "/" + nand_name + "/" + nand_input_pin
load = 8 * load_of(load_cell)
set_load load {all_outputs()}
/* input/output timing */
set_input_delay  clk_uncertainty  -min -clock clk {all_inputs() - clk}
set_input_delay  0.85 * clk_period -max -clock clk {all_inputs() - clk}
set_input_delay  0.80 * clk_period -max -clock clk {ready data_in}
set_input_delay  0.20 * clk_period -max -clock clk {rst_n}
set_input_delay  0.10 * clk_period -max -clock clk {scan_in scan_mode scan_en}
set_output_delay 0 -min -clock clk {all_outputs()}
set_output_delay 0.85 * clk_period -max -clock clk {all_outputs()}
set_output_delay 0.15 * clk_period -max -clock clk {scan_out}
/* Operating condition and wireload */
set_operating_conditions -min min_op_condition -max max_op_condition \
    -min_library min_library_name -max_library max_library_name
set_wire_load_mode top
check_design >> check_report
set_fix_multiple_port_nets -feedthroughs -outputs
link
if (flatten == 1) {
      ungroup -all -flatten
}
set_max_area 0
propagate_constraints -all
set_scan_configuration -style multiplexed_flip_flop -methodology full_scan
set_critical_range 0.2 * clk_period  risc8
uniquify
/* first pass compile */
/* ------------------ */
if (scan_insertion == 1) {
    compile -boundary_optimization -map_effort medium -scan
} else {
     set_logic_zero {scan_mode}
     compile -boundary_optimization -map_effort medium
}
/* second pass incremental compile */
/* ------------------------------- */
compile -incremental -map_effort high
if (flatten) {
    ungroup -all -flatten
}
if (scan_insertion == 1) {
    set_scan_signal test_scan_in -port "scan_in"
    set_scan_signal test_scan_out -port "scan_out"
    set_scan_signal test_scan_enable -port "scan_en"
    create_test_clock clk -period 100 -waveform {45 55}
    check_test > risc8.rep
    insert_scan -map_effort high
    check_test >> risc8.rep
    create_test_patterns -output "risc8_scan.vdb"
    report_test -coverage  >> risc8.rep
}
/* save and report */
/* --------------- */
write -f db -hier -o risc8.db
write -f verilog -hier -o risc8.vg
report_constraint -all_violators >> risc8.rep
report_timing >> risc8.rep
report_area >> risc8.rep
report_timing -loops >> risc8.rep
all_registers -level_sensitive >> risc8.rep
quit
发表于 2005-2-11 10:43:00 | 显示全部楼层

哪位有DC比较全的TCL脚本,可否发给我学习学习!多谢了!

你这个script教本好老啊!好多过时的东西还在里面!误导广大人民群众啊!~
发表于 2005-2-17 10:26:56 | 显示全部楼层

哪位有DC比较全的TCL脚本,可否发给我学习学习!多谢了!

楼上大侠发个新得来看看
我手边没有啊
谢谢
发表于 2005-2-21 16:59:46 | 显示全部楼层

哪位有DC比较全的TCL脚本,可否发给我学习学习!多谢了!

有是有,可是涉及公司机密,不好给!
发表于 2005-7-21 14:08:43 | 显示全部楼层

哪位有DC比较全的TCL脚本,可否发给我学习学习!多谢了!

In fact, the report list needs further specification such as:
report_timing -path full -delay max max_paths 100 -nworst 10 >> vio.rpt
发表于 2005-8-9 22:24:43 | 显示全部楼层

哪位有DC比较全的TCL脚本,可否发给我学习学习!多谢了!

DC不是自带了很多嘛?
发表于 2006-8-21 10:53:29 | 显示全部楼层
多谢! 多谢!
发表于 2010-4-5 13:33:45 | 显示全部楼层
我也想知道~
发表于 2010-5-26 18:47:11 | 显示全部楼层
多谢! 多谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-6-5 13:41 , Processed in 0.137083 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表