紫光同创国产FPGA学习之Timing Analyzer

紫光同创的文档拷贝过来的。我怎么看都发现,怎么这么关键的东西,咋不够详细呢???分析是一方面,修改是另一方面了

一、TA总体介绍

Timing Analyzer是一款用于时序分析的软件,用户可以通过导入PnR DB和SDC文件来进行时序分析,通过查看时序结果来让用户根据自己的目的修改时序约束,导出SDC文件,然后通过新的SDC文件和PnR DB得到在此PnR基础上根据新的约束所报告的时序信息,最终得到一个符合用户预期目标的时序约束文件。
在通常的PDS流程中,时序约束在translate阶段被读入,所以在PnR阶段后如果约束文件被修改,那么需要重新从translate开始运行,耗费了大量的时间。但在Timing Analyzer中,用户通过给定的PnR DB文件和约束文件就可以直接进行时序分析,即使此时修改了约束文件,也可以直接重新开始时序分析,节省了大量的时间成本。
 
 我毛华望QQ849886241,深圳工程师。博客http://blog.csdn.net/my_shar                                                                                            

二、功能描述

TA中的功能主要有:
l  时序分析
l  修改保存时序约束信息
l  图形化界面添加约束
l  Device view中显示时序路径
l  报告指定路径的时序信息
 
(一)    时序分析

用户指定PnR DB文件和SDC文件,TA调用时序分析过程进行时序分析。在这个过程中,用户必须指定PnR DB,此时存在以下两种情况:
 
1.        指定PnR DB但没有指定SDC文件
如果用户只指定了PnR DB但没有指定SDC文件,那么TA会读取PnR DB中的约束信息,并将其显示到约束界面中。
此时,生效的约束为PnR DB中的约束信息。
2.        指定PnR DB和SDC文件
如果用户指定了PnR DB和SDC文件,那么SDC文件中的约束信息会将PnR DB中的约束信息覆盖,即最后生效的是SDC文件中的约束信息。
 
(二)    修改保存时序约束信息

    用户在时序分析结束后有可能发现原来的时序约束存在一些问题,导致最后的时序结果不满足最初目的,此时TA提供了一个可以编辑保存时序约束的界面,用户通过在这个界面上对原来的时序约束信息进行修改,得到一个新的时序约束文件,然后再次通过TA提供的接口进行时序分析,直到得到一个符合用户最初目标的约束文件。
 
(三)    图形化界面添加约束

TA提供两种方式去添加约束命令,一种是直接在约束界面上双击进行编辑,另一种是在一个对话框中添加约束信息。相较于在约束表格中进行添加,界面直接编辑更加可视化,并且对于一些option互斥的情况能够显式的提示用户。
(四)    Device View中显示时序路径

Device view的操作方式和DE的功能相同,可以查看《Design Editor User Guide.doc》来了解。
TA支持通过双击时序报告中的某一条时序路径后定位到这条时序路径在Device view中位置的功能。
(五)    报告指定路径的时序信息

在某些情况下,用户可能希望报告指定路径的时序信息,而不是将所有的时序路径都报告出来。所以,TA支持由用户指定一条路径的From,Through,To位置后单独报告关于该路径的时序信息。
 
 

 
三、用户界面  

(一)    主界面

启动Timing Analyzer后,可以看到如下图所示的主界面:

图 1  软件主界面
此时由于还没有进行时序分析,所以界面中的内容是不可编辑的。
(二)    菜单栏

TA中的菜单栏五个,分别介绍如下:

图 2  File菜单栏
【Import DB and SDC】:导入一个PnR DB和SDC文件进行时序分析。
【Export Constraint File】:将当前的约束信息导出为一个新的sdc文件。
【Exit】:退出Timing Analyzer。

图 3  Timing菜单栏
【Report timing】:依据当前界面的约束信息进行时序分析,不需要导出导入sdc文件和PnR DB。
【Report path】:根据指定路径的From,through,to信息来报告该路径的时序信息。

图 4  Constraint菜单栏
【Check Constraint】:检查当前约束信息是否正确。
【Add Constraint】:这个二级菜单下有很所有的约束命令,功能就是图形化添加对应的约束信息。

图 5  Windows菜单栏
【Full Screen】:将Timing Analyzer全屏。

图 6  Help菜单栏
【Help Topic】:打开help助手。
【About】:Timing Analyzer的版本信息。
 
 

四、操作流程

(一)  时序分析

菜单栏点击【Import DB and SDC】按钮来导入DB和SDC文件:

图 7  导入PnR DB和SDC文件
点击后弹出如下配置向导界面:

图 8  导入界面
       在对话框中,首先用户需要选择要导入的PnR DB和SDC文件的路径(PnR DB是必选的);其次,Timing Analyzer可以导出文本形式的时序报告文件,用户可以在第三个文本框中选择导出文件路径。在时序分析之后,会在该目录下自动生成一个名为timing.rtr的文件(如果没有选择路径,会在TA.exe的目录下生成timing.rtr),该文件内容为时序报告的文本形式。当从PDS中打开TA进行时序分析时,会在当前PDS工程下保存时序分析后的文本报告timing.rtr。
添加完成后,点击Next按钮进入配置界面。

图 9  配置时序分析界面
在这里用户可以对时序分析进行配置,每个option的介绍如下:
【Mulit-Corner】:选择不同情况进行时序分析。分为fast和slow两种情况,不同的器件两种情况对应的温度和电压也不一样。具体情况如下表:

【Path Delay Type (-delay_type)】设置时序分析的类型,可选项有 max", "min", "min_max“。选择max将对时序路径只进行setup分析,选择min将对时序路径只进行hold分析,选择min_max则会对时序路径进行setup和hold分析。
【Number of Paths per Endpoint (-nworst)】设置每个时序路径终点报告的最大路径数目。
【Total Number of Paths (-max_path)】 设置时序报告的最大路径数目。时序分析工具按照slack对时序路径进行排序,最大路径数目不会超过该项设置数目。
【Show Input Pins (-input_pins)】显示输入 Pins。选择该项,则timing path中会显示输入端口的信息。不选择该项,则timing path中不显示输入端口的信息。目前程序不支持该项设置,默认显示输入端口的信息。
【Report Async Timing (-enable_preset_clear_arcs)】该项设置用来选择是否对异步时序路径进行分析,异步时序路径分析指的是remove、recovery分析。
【Show Net Delay (-nets)】该项设置用来选择是否在时序路径中显示net的delay。目前程序不支持该项设置,默认不显示net的delay。
【Report Paths with Slack >】设置报告的slack最小范围。slack小于该项设置的时序路径将不予显示。
【Report Paths with Slack <】设置报告的slack最大范围。slack大于该项设置的时序路径将不予显示。
点击【Finish】按钮即可进行时序分析,结束后用户可以在Report Timing界面查看时序报告,如图5所示,这里可以看到通过setting界面筛选后的时序信息。

图 10  Report Timing界面
       对于表格中的所有report信息解释,下边将进行介绍:
Generate Information表:

图 11  Generate Information表格
【Report】:内容标题。
【Design】:当前分析DB的Top module名
【Date】:生成本次解析报告的时间
 
Clock Summary表:
       该表用来显示基本的时钟信息。

图 12  Clock Summary表格
【Name】:时钟名
【Waveform】:对应时钟的波形
【Period】:对应时钟的周期
 
Intra-Clock Paths表:
       Intra-Clock Paths表示源时钟和目的时钟相同的时序路径。其中包含俩个部分的内容,一为clock的信息,另一个为包含path的信息,该信息通过clock进行分类,并将每个clock下的path分为setup和hold两来显示,但表格格式是相同的。
Clock 表:

图 13  Intra-Clock 表格
【Clock】:时钟信息
【WNS】:Worst Negative Slack即最差setup slack值
【TNS】:Total Negative Slack即所有终点最差setup slack中所有负的slack之和
【Failing Endpoints(TNS)】:终点中为负的slack的个数
【Total Endpoints(TNS)】:所有终点个数
【WHS】:Worst Hold Slack即最差的hold slack
【THS】:Total Hold Slack 即所有终点最差hold slack中所有负的slack之和
【Failing Endpoints(THS)】:终点中为负的slack的个数
【Total Endpoints(THS)】:所有终点个数
时序路径表:

图 14  Intra-Clock Paths表格
【Name】:通过排序对该条path所起的名
【Slack】:该条path的slack值
【Start Point】:路径起始点
【End Point】:路径结束点
【Source Clock】:路径的源时钟
【Destination Clock】:路径的目的时钟
 
Inter-Clock  Paths表:
Inter-Clock Paths表示源时钟和目的时钟不同的时序路径。和Intra-Clock paths相同,其中包含俩个部分的内容,一为clock的信息,另一个为包含path的信息,path的显示格式和Intra-Clock Paths相同,在此就不赘述了。
Clock 表:

图 15  Inter-Clock 表格
       每个option的信息和Intra-Clock Paths相同。
Combinational  Paths表:
       这张表用来显示组合路径,也分为setup和hold两种类型。

图 16  Combinational 表格
【Start Point】:路径起始点
【End Point】:路径的结束点。
(二)  Device view中显示时序信息

如果想看到某一条时序路径在Device view中的状态,双击此路径,即可跳转到Device view中的该路径,如图6所示:

图 17  Device view界面
       Device view中的操作和Design Editor中的操作相同,可以通过查看《Design Editor User Guide.doc》来进行操作。
(三)  修改保存时序约束信息

时序分析结束后,可以在TA中的Constraint Editor中看到生效的时序约束信息,如图7所示:

图 18  Constraint Editor界面
       界面左边为对应的每一条时序约束命令,点击即可跳转到对应的约束表格界面。最上方有一个summary,点击会以文本形式显示当前所有约束信息。如图所示:

图 19  summary界面
在约束表格界面中右键将会弹出如图8所示的菜单:

图 20  右键菜单界面
【Insert Row】:插入一行约束;
【Remove Row】:删除当前选中的约束;
【Clear Constraint】:清空当前选中的约束信息;
【Clear All Constraint】:清空所有的约束信息。
       如果用户需要编辑某一栏约束的值,双击该栏即可进行编辑。但是对于object类型的数据而言比较特殊,双击以后,在栏内会出现一个【view】按钮,如图9所示:

图 21  view按钮
       点击【view】按钮后,将会弹出一个列出当前design中的object对象的Netlist view对话框,如图10所示:

图 22  Netlist View
       该界面列出了当前网表中的所有对象,分为Instance,Pin,Port,Net四个tab页。界面正中央分为三个部分,左边的是当前网表中的内容,右边是选择区域,中间有四个按钮【à】【ß】【All à】【All ß】,作用如下
【à】:将左边的选中的内容添加到右边区域。
【ß】:将右边选中的内容删除,恢复到左边列表。
【All à】:将左边的所有内容添加到右边。
【All ß】:将右边的所有内容删除,恢复到左边。
       点击【OK】按钮后,将会把右边的内容添加到约束界面进行编辑的区域。
 
注:由于create_generate_clock的master_clock是依赖于create_clock的,所以当create_clock中的某个clock被删除后,对应的create_generate_clock即会被检查为非法的约束。
(四)  图形化界面添加约束

       约束内容不光可以在约束界面右键添加,也可以直接在约束命令中双击打开一个添加对应约束命令的GUI界面,如图11,图12所示:

图 23  双击约束命令

图 24  添加约束GUI界面
       在这个界面中,用户直接可以编辑一条约束命令,编辑结束后,点击【OK】按钮,即可将当前编辑的约束内容添加到约束表格中去。这个功能提供了一种显示的方式来提示用户option之间的关系,比如上图中的setup和hold是互斥的,那么在勾选的时候就只能选择一个。
以上是对约束信息进行增删改操作,完成后需要对当前约束信息进行检查,检查没有错误后才能导出为一个sdc文件或者直接进行时序分析。
(五)  报告指定路径的时序信息

       在主界面的【File】菜单按钮中有一个子菜单【Report  path】。这个功能支持了报告指定路径的时序信息,点击该菜单后将会弹出如图13所示的对话框:

图 25  指定路径界面
       这个对话框中主要分为三个部分,指定Froms经过点部分,指定Throughs经过点部分,和指定To经过点部分,通过这三个部分可以确定一条或者一组路径,然后点击下方的【OK】按钮后将会报告指定时序路径的信息。
对于Froms和To而言,后边有一个空白的输入框,双击进行编辑,输入框中可以输入多个位置,中间用空格分割。
对于Throughs部分,由于这个option在一条命令中可能存在多组,所以增加了一个【Add】按钮和一个【Delete】按钮,用户可以通过【Add】按钮添加一组Through,【Delete】用来删除一组,点击后【Add】后如图14所示:

图 26  点击Add按钮后
用户可以添加多行Through,每一行through和from、to是一样的,双击进行编辑,可以输入多个位置,中间用空格分割。
此功能共有两种输入方式,一种是直接手动输入,另一种是在Device view界面点击输入。手动输入上边已经介绍,下边主要说一下如何通过Device view界面点击输入:
首先用户打开这个对话框之后,可以看到Froms、Throughs、To三个内容中都含有一个radio button,这个控件用来标识接下来要对哪个部分进行编辑(手动输入不需要关注),然后切换TA到Device view界面,找到目的位置,点击后即可自动输入到对话框中。
由于Through的特殊性,用户在选择radio  button后需要点击【Add】按钮添加一行,然后在添加行中选中前边的checkbox,由于Through可能有很多组,所以需要用checkbox来区分当前对哪一组进行编辑,如图15所示:

图 27  选择checkbox来进行编辑
 
       当指定From、Through、To结束后,点击【OK】按钮即可对指定的路径进行时序分析了,分析结果将在report timing界面显示出来。

猜你喜欢

转载自blog.csdn.net/my_share/article/details/84594617
今日推荐