dcsh commandsby Heng Ding May.docx

上传人:b****7 文档编号:9028154 上传时间:2023-02-02 格式:DOCX 页数:14 大小:19.31KB
下载 相关 举报
dcsh commandsby Heng Ding May.docx_第1页
第1页 / 共14页
dcsh commandsby Heng Ding May.docx_第2页
第2页 / 共14页
dcsh commandsby Heng Ding May.docx_第3页
第3页 / 共14页
dcsh commandsby Heng Ding May.docx_第4页
第4页 / 共14页
dcsh commandsby Heng Ding May.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

dcsh commandsby Heng Ding May.docx

《dcsh commandsby Heng Ding May.docx》由会员分享,可在线阅读,更多相关《dcsh commandsby Heng Ding May.docx(14页珍藏版)》请在冰豆网上搜索。

dcsh commandsby Heng Ding May.docx

dcshcommandsbyHengDingMay

dc_shellcommandsummary

byHengDing,May2007

 

.synopsys_dc.setup

search_path=search_path+{“.”,synopsys_root+“/dw/sim_ver”}

search_path=search_path+{“~/risc32/synthesis/libraries”}

target_library={tcb773stc.db}

link_library={“*”,tcb773stc.db}

symbol_library={tcb773s.sdb}

aliasrt“report_timing”

designer=XXXXX

company=“ASICLab,FudanUniv.”

/*…*/注释

 

find

find

<实体类型>

<名称列表>

-hierarchy

●<实体类型>:

上节所述的8种类型

●<名称列表>:

用来匹配的关键词,其中可带“*”统配符

●-hierarchy:

指令DC搜索所有设计层次

例1-2(find命令的使用):

find(cell,*U*)

find(net,“*”)

find(design,{A_*,B_*}-hierarchy)

另外,使用all_inputs()和all_outputs()可以得到设计所有的输入端口和输出端口。

 

analyze

analyze

-library<库名称>

-format<文件类型>

<文件名列表>

●-library<库名称>:

指定中间结果所存放的库,即UNIX下的一个目录,缺省为当前目录(WORK)

●-format<文件类型>:

RTL源文件的类型,即Verilog或vhdl

●<文件名列表>:

所有需要分析的源文件名,若有多个文件,则用“{}”括起

例2-1(将直接数字频率合成器的所有设计源文件读入lib1库中):

hdlin_enable_presto=false/*禁止Presto编译器功能*/

define_design_liblib1-path“./lib1”/*将目录./lib1映射为一个设计库*/

analyze–librarylib1–formatverilog{croma.v,cromb.v,ddfs.v,froma.v,fromb.v}

 

elaborate

elaborate

<设计名>

-library<库名称>

-architecture<构造体名>

-parameters<参数列表>

-update

●<设计名>:

需要描述的设计

●-library<库名称>:

设计的分析结果所在的库

●-architecture<构造体名>:

需要分析的构造体,针对VHDL描述中同一个实体对应多个构造体的情况;对于Verilog描述,改选项可缺省或为verilog

●-parameters<参数列表>:

在这里给设计中的参数重新赋值,若省略则参数使用缺省值

●-update:

要求综合器自动更新所有过期的文件

例2-2(将先前读入的设计产生结构级描述,并设置相应的参数值):

elaborateddfs–librarylib1–architecture“verilog”–parameters“PAL_sub=32'h20098ACB,\NTSC_sub=32'h06F07BD6”–update

由于重置了参数值,顶层的设计名称变为“ddfs_20098acb_06f07bd6”,为方便起见,将顶层设计名改为“ddfs”:

rename_designddfs_20098acb_06f07bd6ddfs

 

read

read

-format<文件类型>

<文件列表>

●-format<文件类型>:

源文件的类型,如verilog,vhdl,edif,db等

●<文件列表>:

所有需要读入的源文件名,若有多个文件,则用“{}”括起

例2-3(利用read命令将读取直接数字频率合成器的所有设计源文件):

read-formatverilog{croma.v,cromb.v,ddfs.v,froma.v,fromb.v}

 

link

例2-4(链接直接数字频率合成器的顶层设计:

ddfs):

current_designddfs/*将ddfs设置为当前设计*/

link

一般有两种情况可能导致链接过程出错:

1)、设计中所调用子模块的描述文件没有读入;

2)、设计中使用了工艺库中的单元,但该工艺库没有加入链接库(link_library)或因为搜索路径(search_path)设置有误而导致DC无法正确定位链接库。

 

uniquify

例2-5(将ddfs设计进行实例唯一化):

current_designddfs

uniquify

 

report_lib

例3-1(列出工艺库tcb773stc中的各项参数):

report_libtcb773stc

 

set_operating_condition

set_operating_conditions

-library<库名称>

<工作环境名>

●-library<库名称>:

定义工作环境的库,若当前仅读入唯一的目标库,则改选项可省略

●<工作环境名>:

设置的工作环境

例3-2(将ddfs设计的工作环境设为“WCCOM”):

current_designddfs

set_operating_conditions-librarytcb773stcWCCOM

 

set_wire_load_model

set_wire_load_model

-name<连线负载名>

-library<库名称>

<对象列表>

●-name<连线负载名>:

设定的连线负载

●-library<库名称>:

定义工作环境的库,若当前尽读入唯一的目标库,则改选项可省略

●<对象列表>:

设定连线负载的对象

例3-3(将ddfs的连线负载设为TSMC8K_Conservative):

set_wire_load_model–nameTSMC8K_Conservative-librarytcb773stcddfs

 

set_wire_load_mode

set_wire_load_mode

<模式名>

●<模式名>:

连线负载模式的名称,为“top”、“enclosed”、“segmented”中的一项

例3-4(将ddfs的连线负载模式设为top):

current_designddfs

set_wire_load_modetop

 

set_load

set_load

<负载电容值>

<对象列表>

●<负载电容值>:

设定的负载电容值,必须为非负数,其单位在库文件中定义

●<对象列表>:

设定负载电容的对象,可以是输出口、输出管脚、互连线等

例3-5(将ddfs的所有输出口的输出负载设为0.1pF)

current_designddfs

set_load0.1all_ouputs()

 

set_driving_cell

set_driving_cell

-lib_cell<库单元名>

-library<库名称>

-pin<管脚名>

-no_design_rule

<端口名列表>

●-lib_cell<库单元名>:

用于驱动设计输入端的外部单元名称

●-library<库名称>:

上述单元所在库的名称,若当前仅读入唯一的目标库且驱动单元就在该库中,则改选项可省略

●-pin<管脚名>:

用于驱动设计输入端的外部单元管脚的名称

●-no_design_rule:

改选项要求DC忽略外部驱动单元管脚上的设计规则

●<端口名列表>:

设置驱动的设计端口

例3-6(将ddfs的所有输入端的驱动单元设置为DFF1的管脚Q,并忽略该管脚上的设计规则):

current_designddfs

set_driving_cell–lib_cellDFF1–pinQ–no_design_ruleall_inputs()

 

set_drive

set_drive

<阻抗>

<端口名列表>

●<阻抗>:

非负的驱动阻抗,该值越小表示驱动能力越大

●<端口名列表>:

设置驱动能力的端口名

例3-7(将ddfs的时钟和复位端的驱动设为无穷大,即驱动阻抗设为零):

current_designddfs

set_drive0{clk,reset}

如果你没有声明-rise或者–fall选项,两个同时都被设定

 

create_clock

create_clock

<端口名>

-period<周期>

-waveform<边沿列表>

●<端口名>:

设计的时钟端口

●-period<周期>:

时钟周期,单位一般为ns

●-waveform<边沿列表>:

时钟上升沿和下降沿的时刻,从而决定时钟信号的占空比。

一般上升沿的时刻设为0

例4-1(为ddfs设计创建一个5ns的时钟,时钟端口为clk,占空比为1:

1)

current_designddfs

create_clockclk–period5–waveform{02.5}

 

set_dont_touch_networkclk

set_dont_touch_networkclk

 

set_input_delay

set_input_delay

-clock<时钟名>

-max

-min

<延时值>

<端口名列表>

●-clock<时钟名>:

输入延时所参考(关联)的时钟

●-max:

指定输入延时的最大值

●-min:

指定输入延时的最小值

●<延时值>:

输入延时的大小,单位一般为ns

●<端口名列表>:

设定输入延时的端口

例4-2(将ddfs设计的mode输入端的输入延时最大值设为1ns,最小值设为0,参考(关联)时钟为clk):

current_designddfs

set_input_delay–clockclk–max1find(port,“mode”)

set_input_delay–clockclk–min0find(port,“mode”)

 

set_output_delay

set_output_delay

-clock<时钟名>

-max

-min

<延时值>

<端口名列表>

●所有参数、开关含义均与set_input_delay命令相同

例4-3(将ddfs设计所有输出端的输出延时最大、最小值设为4ns,参考时钟为clk):

current_designddfs

set_output_delay–clockclk4all_outputs()

 

set_max_delay

set_max_delay

<延时值>

-from<起点列表>

-to<终点列表>

●<延时值>:

延时的大小,单位一般为ns

●-from<起点列表>:

延时约束的起点

●-to<终点列表>:

延时约束的终点

例4-4(将16位加法器设计所有输入端到所有输出端的最大延时设为2ns):

readadder_16.v/*读入16位加法器的设计源文件*/

set_max_delay2–fromall_inputs()–toall_outputs()

 

set_max_area

set_max_area

-ignore_tns

<面积值>

●-ignore_tns:

忽略负时延裕量总和(TNS)来优化面积。

DC的缺省优化算法是先使TNS最小,在此基础上优化面积。

使用该开关将使得DC忽略TNS而优先考虑面积优化

●<面积值>:

约束面积的大小,其单位由不同的工艺库决定

例4-5(将ddfs设计的面积约束设为0,这将指示DC尽可能的优化面积):

current_designddfs

set_max_area0

 

compile

compile

-map_effortlow|medium|high

-area_effortnone|low|medium|high

-incremental_mapping

●-map_effort:

综合器映射的努力程度,有low,medium,high三个选项,缺省为medium

●-area_effort:

综合器面积优化的努力程度,有low,medium,high三个选项,缺省为同map_effort的值

●-incremental_mapping:

值是综合器在前一次综合结果的基础上进行进一步优化,不改变电路结构

例5-1(综合ddfs设计,各选项均使用缺省值):

current_designddfs

compile

例5-2(在刚才总和结果的基础上用高映射努力程度进行进一步优化):

current_designddfs

compile–map_efforthigh–incremental_mapping

 

report_timing

report_timing

-to<路径终点列表>

-from<路径起点列表>

-nworst<路径数>

●-to<路径终点列表>:

需要计算时延的路径的终点

●-from<路径起点列表>:

需要计算时延的路径的起点

●-nworst<路径数>:

报告的路径数(缺省为1,由时延裕量最小的路径开始报起)

注意:

缺省情况下,报告向屏幕输出,若要将报告写入文件,可在命令行后用“>”或“>>”引出文件名。

其中,“>”将新建一个文件,获将原文件覆盖;“>>”用于在原文件末尾填加。

例5-3(将ddfs设计中的时延信息输出到文件“./report/report1.rpt”中,共输出5条路径):

current_designddfs

report_timing–nworst5>“./report/report1.rpt”

 

report_area

例5-4(将ddfs设计中的面积信息添加到文件“./report/report1.rpt”中):

current_designddfs

report_area>>“./report/report1.rpt”

 

write

write

-format

-hierarchy

-output

<设计列表>

●-format:

指定保存的格式,可选的格式有:

db,edif,equation,lsi,mentor,pla,st,tdl,verilog,vhdl,xnf,缺省为db

●-hierarchy:

指令DC保存所有设计层次

●-output:

指定保存的文件名

●<设计列表>:

需要保存的设计

例6-1(将ddfs设计以db形式保存到“./mapped/ddfs.db”文件中,要求保存所有设计层次):

write–formatdb–hierarchy–output./mapped/ddfs.dbddfs

例6-2(将ddfs设计的门级网表以verilog形式保存到“./export/ddfs.v”文件中,要求保存所有设计层次):

write–formatverilog–hierarchy–output./export/ddfs.vddfs

 

write_sdf

write_sdf

-version<文件版本>

-instance<实例名>

<时序描述文件名>

●-version<文件版本>:

指定导出的SDF文件的版本,可选项有1.0和2.1,缺省为2.1版

●-instance<实例名>:

指定导出当前设计中某个实例的时序描述文件

●<时序描述文件名>:

导出的时序描述文件的文件名

例6-3(导出ddfs设计的时序描述到“./export/ddfs.sdf”中,版本为2.1):

current_designddfs

write_sdf./export/ddfs.sdf

 

write_constraints

write_constraints

-output<文件名>

-format

-max_paths<路径数>

-max_path_timing

-from<起点列表>

-to<终点列表>

●-output<文件名>:

导出的时序约束文件名

●-format:

时序约束文件的格式,可选项有:

synopsys,sdf,sdf-v2.1

●-max_paths<路径数>:

时序约束文件所包含的路径数,缺省为1

●-max_path_timing:

指令DC导出示延最大的路径

●-from<起点列表>:

路径的起点列表

●-to<终点列表>:

路径的终点列表

例6-4(导出ddfs设计的时序约束到“./export/ddfs_constraint.sdf”中,版本为sdf2.1版,要求导出5条时延最大的路径):

current_designddfs

write_constraints–output./export/ddfs_contraint.sdf–formatsdf-v2.1–max_paths5\

–max_path_timing

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1