ciel.xia的个人空间 https://blog.eetop.cn/1544698 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

综合脚本-fsm_moore.tcl

热度 1已有 1787 次阅读| 2018-8-20 17:47 |个人分类:代码带回家|系统分类:芯片设计


//step 1: read & elaborate the RTL file list
set TOP_MODULE top
analze -format verilog [list fsm_moore.v top.v counter.v]
elaborate $TOP_MODULE -architecture verilog
current_desin $TOP_MODULE
if {[link] ==0}{
 echo "link with error!";
 exit;
};
if {[check_design] ==0}{
 echo "check design with error!";
 exit;
};
//step 2 :reset design first
reset_design
//step 3:write the unmapped ddc file
uniquify
set uniquify_naming_style. "%s_%d"
write -f ddc -hierachy -output ${UNMAPPED_PATH}/{TOP_MODULE}.ddc
// step 4 :define clock
set  CLK_NAME  clk_i
set  CLk_PERIOD  10
set  CLk_SKEW  [expr $CLk_PERIOD*0.05]
set  CLk_TRAN  [expr $CLk_PERIOD*0.01]
set  CLk_SRC_LATENCY [expr $CLk_PERIOD*0.1]
set  CLk_LATENCY  [expr $CLk_PERIOD*0.1]

create_clock   -period $CLk_PERIOD  [get_ports $CLK_NAME]
set_ideal_network  [get_ports $CLK_NAME]
set_dont_touch_network [get_ports $CLK_NAME]
set_drive 0   [get_ports $CLK_NAME]   //驱动能力无穷大
set_clock_uncertainty -setup  $CLK_SKEW [get_clocks $CLK_NAME]
set_clock_transition -max  $CLK_tran [get_clocks $CLK_NAME]
set_clock_latency  -source -max $CLK_SRC_LATENCY [get_clocks $CLK_NAME] //PCB板子引脚到芯片延迟
set_clock_latency  -max  $CLK_SRC_LATENCY   [get_clocks $CLK_NAME] //芯片引脚到触发器延迟

//step 5 :set reset
set  RST_NAME   rst_l_i
set_ideal_network  [get_ports $RST_NAME]
set_dont_touch_network [get_ports $RST_NAME]
set drive 0   [get_ports $RST_NAME]
// set input delay(using timing budget)
set LIB_NAME   scx_csn_18ic_ss_125c
set WRITE_LOAD_MODEL csm18_wll0
set DRIVE_CELL   INVX1
set DRIVE_PIN   Y
set OPERA_CONDITIONAL ss_1p62v_125c
set ALL_IN_EXCEPT_CLK [remove_from_collection [all_inputs][get_ports $CLK_NAME]]
set INPUT_DELAY   [expr $CLk_PERIOD*0.6]
set_input_delay  $INPUT_DELAY -clock $CLK_NAME $ALL_IN_EXCEPT_CLK
set_drving_cell -lib_cell $(DRIVE_CELL) -pin ${DRIVE_PIN} $ALL_IN_EXCEPT_CLK
//set output delay
set OUTPUT_DELAY [expr $CLk_PERIOD*0.6]
set MAX_LOAD  [expr [load of $LIB_NAME/INVX8/A]*10]
set_output_delay $OUTPUT_DELAY -clock $CLK_NAME [all_outputs]
set_load   [expr $MAX_LOAD*3] [all_outputs]
set_isolate_ports -type buffer   [all_outputs]
//set max delay for comb logic
set_input_delay  [expr $CLk_PERIOD*0.1] -clock $CLK_NAME -add_delay [get_ports a_i]
set_output_delay [expr CLk_PERIOD*0.1] -clock $CLK_NAME -add_dealy [get_ports y_o]
//set operating condition &write load model
set_operating_conditions -max $OPERA_CONDITION \
      -max_library $LIB_NAME
set auto_wire_load_selection  false


点赞

全部作者的其他最新日志

发表评论 评论 (1 个评论)

回复 luosuhua2008 2021-6-30 16:44
RC脚本吗?

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 1

    评论
  • 访问数
关闭

站长推荐 上一条 /1 下一条

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

GMT+8, 2024-11-16 22:21 , Processed in 0.015710 second(s), 13 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部