dc综合流程和tcl脚本实例

目录

1.tcl脚本实例

2.整个综合流程的原文如下:

3.另外一篇参考


1.tcl脚本实例

下面给出一个综合tcl脚本的实例,通过实例我们可以看到整个综合流程

set search_path "../lib/logic   ../src"   #设置搜索路径

set target_library " slow.db "     #设置标准元件库
set link_library   "* $target_library "
set symbol_library " smic18.sdb "  #设置标准元件图标库

set access_internal_pins true

set report_path "./reports"    #设置reports文件夹
set output_path "./outputs"    #设置outputs文件夹


read_file -format verilog cic_filter.v   #读取verilog设计文件
read_file -format verilog divider64.v


current_design cic_filter   #指明主程序
link   #工艺库链接
uniquify


set     design_name     [get_object_name [current_design]]

set_wire_load_model -name "smic18_wl10"    #设置线负载模型
set_wire_load_mode top

create_clock -period 156 -waveform {0 78} [get_ports clk]  -name clk    #设置时钟,周期156ns,脉宽0-78ns


create_generated_clock  [get_pins div/clk_div] -source [get_ports clk]  -divide_by 64 -name clk_div   #分频64后的时钟

set_clock_latency 2.5 clk    #延迟时间2.5ns
set_clock_transition 0.3 clk    #翻转时间0.3ns
set_clock_uncertainty 1.5 -setup clk   #建立时间1.5ns
set_clock_uncertainty 0.3 -hold clk    #保持时间0.3ns

set_drive 0 [list clk rst_n]      #设置输入驱动强度为0
set_driving_cell -lib_cell NAND2X1  in   #设置驱动单元


set_input_delay  35 -clock [get_clocks clk] {in rst_n}   #设置输入延时35ns
set_output_delay 35 -clock [get_clocks clk_div] [get_ports out]   #设置输出延时35ns
set_load          2        [all_outputs]    #设置输出负载为2pF

set_max_area 0



check_design > $report_path/check_design_before_compile.rpt
check_timing > $report_path/check_timing_before_compile.rpt


compile
compile -incremental_mapping -map_effort high


write_sdf -version 2.1         $output_path/${design_name}_post_dc.sdf   #时序描述
write -f ddc -hier -output     $output_path/${design_name}_post_dc.ddc
write -f verilog -hier -output $output_path/${design_name}_post_dc.v    #网表
write_sdc                      $output_path/${design_name}_post_dc.sdc  #约束

report_constraint -all_violators -verbose          > $report_path/constraint.rpt
report_qor                > $report_path/qor.rpt
report_power              > $report_path/power.rpt
report_area               > $report_path/area.rpt
report_cell               > $report_path/cell.rpt
report_clock              > $report_path/clk.rpt
report_hierarchy          > $report_path/hierarchy.rpt
report_design             > $report_path/design.rpt
report_reference          > $report_path/reference.rpt
report_timing             > $report_path/timing.rpt

check_design > $report_path/check_design_post_compile.rpt
check_timing > $report_path/check_timing_post_compile.rpt


#start_gui

其中在读取rtl的verilog文件时可以采用更好的方法:

read_verilog xxx.v
#或者
read_file -format verilog xxx.v
#或者
read_file file_list 
#这个filelist必须是tcl语法的list
#或者
analyze -format sverilog -vcs “-f $RTL_FILE/flist.f”

参考:
使用dc_shell读.v(rtl/netlist)看电路图,打开gui_cy413026的博客-CSDN博客_dc_shellread_verilog :可以读取网表文件或者.v文件https://blog.csdn.net/cy413026/article/details/109372557

2.整个综合流程的原文如下:

数字asic流程实验(四) DC综合_mb5fdb0ff6b2aaf的技术博客_51CTO博客

3.另外一篇参考

DC综合的流程以及分步骤讲解_little_ox的博客-CSDN博客_dc综合教程

  • 7
    点赞
  • 114
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
DC综合后端TCL文件是通过以下步骤生成的: 1. 首先,我们需要有一个设计的原始描述文件,通常是以硬件描述语言(如Verilog或VHDL)编写的。该文件描述了设计的功能和结构。 2. 将该原始描述文件导入到DC(Design Compiler)综合工具中。DC是由Synopsys开发的一款综合工具,它可以将高级抽象的硬件描述语言转换为底层的网表级表示。 3. 在综合过程中,DC会根据设计约束和综合设置,将原始描述文件转换为逻辑综合后的门级网表。这个网表表示了设计中的逻辑功能和连接关系。 4. 在生成门级网表之后,我们可以使用TCL(Tool Command Language)脚本来操作DC工具,执行一系列的综合和优化命令。TCL是一种脚本语言,常用于自动化工具的操作和控制。 5. 通过编写TCL脚本,我们可以指定综合和优化的目标、约束条件、技术库文件、时序分析设置等。还可以进行网表级的优化,例如电源电压缩小、面积减小和功耗优化等。 6. 当我们运行TCL脚本时,DC会根据脚本中的指令,自动执行相应的综合操作,并生成综合后的门级网表。这个网表将用于后续的物理设计阶段,例如布局布线等。 总之,DC综合后端TCL文件由原始设计描述文件经过DC工具的综合过程生成,通过编写TCL脚本并执行,可以实现自动化的综合和优化操作。这个TCL文件在后续的物理设计阶段中起到重要的作用,是设计流程中不可或缺的一部分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值