紫光同创国产FPGA学习之Design Editor

这一篇也是从紫光参考书里面拷贝出来的。这个design editor我很少用。你们凑合的看吧。

一、       功能介绍

该文档详细描述了Design Editor(下文简称DE)的各项功能,使用方法。Design Editor支持查看芯片结构、查看布局布线结果、手动修改布局布线结果以及输入命令来执行各种手动布局布线操作等功能。
Design Editor界面如图所示:

图 1- 1  Deign Editor 界面
下面将具体介绍DE的各个功能以及操作步骤。


 我毛华望QQ849886241,深圳工程师。博客http://blog.csdn.net/my_shar
二、       DE的打开方式介绍

打开Pango Design Suite(以下简称PDS)软件,新建工程。在新建工程时如果Synthesis Tool选择Synplify Pro(即使用综合工具),则选择添加后缀为.v的design;如果Synthesis Tool选择No Synthesis(即不使用综合工具),则选择添加后缀为.vm的design。新建工程完成后,可以采用以下三种方式启动DE,其中第三种方式不需要新建工程。
1.        通过点击PDS界面工具栏图标打开DE

由于DE启动时必须要加载pnr DB(后缀为_pnr.adf)或者plc DB(后缀为_plc.adf)文件,所以在PDS软件中打开DE,需要Flow中运行完Place&Route(以下简称pnr)产生前面描述的DB文件后才会进入DE的启动界面。
点击PDS界面工具栏中如图2-1所示图标,如果已经运行完pnr,则会立即打开如图2-2所示的DE启动界面;如果还未运行到pnr,则会等到pnr运行结束之后打开如图2-2所示的DE启动界面。

图 2- 1工具栏中DE的启动图标

图 2- 2 DE的启动界面
 
2.        通过点击菜单栏Tools下的Design Editor选项打开DE

另一种在PDS软件中打开DE的方式是点击菜单栏Tools下的Design Editor选项,如图2-3所示。

图 2- 3  Tools下的Design Editor
点击后也是需要在pnr运行完后才会打开如图2-2所示的启动界面。
若Place&Route的配置选项勾选Place Only,则DE仅载入布局结果(即plc DB文件);若不勾选Place Only,则DE载入布局布线结果(即pnr DB文件);若Report timing运行成功,则DE会同时载入布局布线结果和timing结果(即Timing DB文件)。
 
3.        双击design_editor.exe程序打开

相对于前两种必须在PDS软件内打开DE的方式,还有一种打开DE的方式则属于单独打开的方式,即不管PDS软件是否打开都可以启动DE。具体操作方法是进入PDS软件的安装目录下的bin文件夹,双击design_editor.exe程序,如图2-4所示。

图 2- 4  单独打开Design Editor
双击后就可以立即打开DE,如图2-5所示。不过由于此时的DE未加载任何的pnr DB或plc DB文件,所以是一个空的DE界面。

图 2- 5  单独打开的空白Design Editor界面
如果需要使用DE进行其他功能操作,则首先需要加载一个pnr DB或plc DB文件。加载方法是点击工具栏的Add Design按钮,打开Select DB File对话框,如图2-6所示。

图 2- 6  Select DB File对话框
在图2-6中,第一个输入框可以选择需要加载的pnr DB或plc DB文件,第二个输入框可以选择需要加载的Timing DB文件。其中第一个输入框不能为空,第二个输入框为可选项。
对于加载DB文件需要注意以下问题:
(1)如果pnr DB或plc DB文件中有error或者当前版本的DE程序不识别加载的DB文件(由于生成DB文件的PDS版本与该DE程序的PDS版本差别较大导致),则在DE加载DB文件的过程中会打印相应的报错信息,并且加载失败。
(2)如果需要同时加载pnr DB文件和Timing DB文件,那么这两个DB文件必须一致,即两个DB文件都是由同一个版本的DE程序使用同一个design得到的,否则也会加载失败,打印相应的报错信息。
 
 


 
三、       工具栏菜单介绍

以下详细介绍工具栏按钮及所有菜单的用途。
(一)   工具栏

        1.              文件操作及窗口启动按钮


图 3-1  文件操作及窗口启动按钮
【New Design】:新建DB文件。
【Add DB】:打开加载DB文件对话框。
【Save】:保存DB文件。
【Design Browser】:打开或关闭Design Browser窗口。
【Console】:打开或关闭Console窗口。
【PnR Mode Shift】:进入或退出手动布局布线模式。
【Non-Incremental Timing Analyse】:对Design进行一次完整时序分析。
【Incremental Timing Analyse】:对DE里的操作进行增量时序分析。
        2.              Zoom系列按钮

图 3-2  Zoom系列按钮
【View All】:显示全部视图。
【Zoom In】:放大视图。
【Zoom Out】:缩小视图。
        3.              History系列按钮

图 3-3 History系列按钮
【Previous View】:前一视图。
【Next View】:后一视图。
        4.              View系列按钮

图 3-4 View系列按钮
【Show Placement】:显示/隐藏布局结果。
【Show Routes】:显示/隐藏布线结果。
【Show Max Critical Paths】:显示/隐藏最大关键路径。
【Show Min Critical Paths】:显示/隐藏最小关键路径。
【Show Airline】:显示/隐藏飞线。
【Show Rats】:显示/隐藏unrouted net的最小生成树。
        5.              其它按钮

图 3-5 其它按钮
【Show Report Region】:显示报告区域。
【Search】:打开搜索框搜索device instance或者pin脚。pin脚搜索方法,例如:CLMA_29_139:Y0,搜索instance和pin脚都支持模糊匹配。
(二)   右键菜单
以下详细介绍所有右键菜单选项的用途。
        1.              工具栏右键菜单
右键点击工具栏,会出现右键菜单,如图3-6所示。

图 3-6 工具栏右键菜单
 
【Design Browser】:显示或隐藏Design Browser窗口,此时的勾选状态不可取消。
【Console】:显示或隐藏Console窗口。
【Mode】:显示或隐藏工具栏PnR Mode Shift按钮。
【Zoom】:显示或隐藏工具栏Zoom系列按钮。
【History】:显示或隐藏工具栏History系列按钮。
【View】:显示或隐藏工具栏View系列按钮。                           
【Show Report Region】:显示或隐藏工具栏Show Report Region按钮。
【File】:显示或隐藏工具栏中文件操作相关按钮。
【Search Device Inst】:显示或隐藏Search Device Inst按钮。
2.          Device窗口右键菜单
若想查看布线结果中各类布线资源的使用情况,点击工具栏Show Routing按钮后,在Device窗口内,右键点击,出现如图3-7所示菜单。

图 3-7  Device窗口右键菜单
 
【Show Device Routing Wires】:将鼠标放在该选项上,将显示以下菜单项。
【Show Clock Routing Wires】:显示布线中的Clock线。
【Show Global Routing Wires】:显示布线中的Global线。
【Show Long Routing Wires】:显示布线中的Long线。
【Show Quarter Routing Wires】:显示布线中的Quarter线。
【Show Double Routing Wires】:显示布线中的Double线。
【Show Local Routing Wires】:显示布线中的Local线。
【Show Logical Routing Wires】:显示布线中的Logical线。
【Show Short Routing Wires】:显示布线中的Short线。
【Get Path Delay】:打开get path delay的界面,在界面中输入相关参数,即可计算出path delay的值。
 
Mpnr模式下Device窗口的右键菜单还包含如下选项:
【Copy Instance Name】:复制instance的名字。
【UnRoute】:取消选中instance或net的布线。
【Delete Net】:删除选中的net。
【Create Net】:创建net。
【Increase Load】:创建分支。
【Decrease Load】:删除分支。
【Manual Route】:对选中的net进行手动布线。
【Auto Route】:对选中的net进行自动布线。
【Auto Route All】:对所有unroute net进行自动布线。
【Unplace Instance】:对选中的instance取消布局状态。
【Auto Place All】:对design中未布局的所有instance进行自动布局。
【Configure Timing】:打开timing相关属性的配置界面。
【Editor Parameter config】:修改配置值。
3.          其他右键菜单
右键点击Design Browser窗口中的net,弹出右键操作菜单,如图3-8所示。

图 3-8 点击net的右键菜单
 
【Copy Net Name】:复制net名字。
【UnRoute】:对选中的net进行unroute操作。
右键点击Design Browser窗口中的instance,弹出的右键菜单,如图3-9所示。

图 3-9 点击inst的右键菜单
 
【Copy Instance Name】:复制instance名字。
【Auto Place】:对选中的instance进行自动布局。
【Auto Place All】:对design中未布局的所有instance进行自动布局。
【Unplace】:对选中的instance进行取消布局操作。
【Delete】:删除选中的instance。
 
 
 

 
四、       窗口介绍
以下详细介绍各窗口的功能以及相关的操作方法。
(一)   Device View窗口
该窗口可显示芯片结构、所有资源、布局位置、布线路径、占用资源,可进行手动布局布线等操作,如图4-1所示。

图4-1  Device窗口
 
(二)   Design Browser窗口
此界面以树状形式分类显示当前所有的Design Instances、Design Nets、Critical Paths、Layer Colors和GOP。该窗口可查找instance、net、critical paths和GOP,也可以设置颜色。
 Instances主要有primitives、IO、CarryChain、group等分类。每个instance包含3列,分别为Name(Instance 名字)、Site(Instance布局位置)和Color(在Device界面上显示的颜色)。展开instance能够显示与其相关的所有design pin,并以输入输出分类。如图4-2所示。

图4-2  Design Browser窗口
 
(三)   Console窗口

该窗口可执行布局布线等命令,显示错误警告信息。选中device、instance、net等可显示其名字、布局位置等相关信息。如图4-3所示。

图4-3  Console窗口
(四)   Device Browser窗口
该窗口可控制device view界面的显示资源。如图4-4所示。

图4-4  Device Browser窗口
【Site】:显示/隐藏指定的device资源。
【Bounding Box】:显示/隐藏device资源外框。
【Clock Wire】:显示/隐藏Clock Wire。
【Global Wire】:显示/隐藏Global Wires。
【Long Wire】:显示/隐藏Long Wires。
【Quarter Wire】:显示/隐藏Quarter Wires。
【Double Wire】:显示/隐藏Double Wires。
【Local Wire】:显示/隐藏Local Wires。
【Logical Wire】:显示/隐藏Logical Wires。
【Short Wire】:显示/隐藏Short Wires。
【I/O Bank】:显示/隐藏指定的IO Bank。
 
(五)   View All窗口
该窗口可以实时显示device view界面所在芯片的位置以及选中design net。
如图4-5所示。

图4-5  View All窗口
 
五、       详细操作
(一)   在DE中进行与DB文件相关操作
        1.              新建网表

点击DE工具栏中的【New Design】按钮可以创建一个新的design网表(即DB文件),后续可以在新建的网表中创建删除instance和net,如图5-1所示。

图 5- 1  新建design网表
 
        2.              加载DB文件

点击工具栏的【Add DB】按钮打开Select DB File对话框,用户可以选择要加载的DB(PnR DB或PLC DB以及timing DB)文件,如图5-2所示。

图 5- 2选择需要加载的DB文件
 
        3.              切换DB文件

用户选择PnR/PLC DB并且加载完成以后,想要切换查看其它的DB,可以点击Add DB按钮,重新选中一个DB,切换到新的DB,如图5-3所示。

图 5- 3切换DB文件
        4.              Reload DB文件

当加载到DE的PLC、PNR或timing DB在外部发生变化时,DE界面会弹出是否reload提示框,如图5-4所示。

图 5- 4 reload DB文件
 
对于选择的DB文件以及DB文件所在的文件夹,需要注意以下内容:
DB文件名:只允许字母、数字、下划线(_)、短横线(-)、点(.);
DB所在文件夹名:只允许包含字母、数字、下划线(_)、短横线(-)、点(.)、@和空格( ),但空格不能出现在路径名首尾;
 
(二)   搜索查看
1.          进行搜索操作
以下介绍如何搜索instance、net、critical paths等。
1)  选择搜索类型

在Design Browser窗口首先选择需要搜索的类型,包括All Instance、All nets、Critical Paths、Layer Colors和All GOP,如图所示。

图 5- 5  Design Browser窗口可以选择的搜索类型
2)  设置搜索条件

搜索支持“*”(匹配0至多个字符)和“?”(仅匹配一个字符)进行模糊匹配搜索,不区分大小写,按Enter键开始搜索。
举例1:搜索条件输入I*F,如图所示。

图 5- 6  使用“*”进行模糊搜索
举例2:搜索条件输入I?F,如图所示。

图 5- 7  使用一个“?”进行模糊搜索
举例3:搜索条件输入I??F,如图所示。

图 5- 8  使用多个“?”进行模糊搜索
3)  改变显示顺序

单击列名Name、Site、Color可改变排序方式,如图5-9所示。

图 5- 9  改变排序方式
2.          进行查看操作
下面详细介绍如何查看device、instance、net、critical paths等。
1)  查看instance的布局布线结果

在Design Browser中选中某instance,可在右边device界面默认用黄色突出显示其布局和布线信息,如图5-10所示。

图 5- 10  选中instance查看其布局布线结果
双击grid device能够查看其内部的连线结构,如果该device上有布局instance则高亮显示布局信息。鼠标放在有布局信息的device上,能查看其相关的配置信息,如图5-11所示。

图 5- 11  查看有布局device的配置信息
如果该device无布局instance则全部高亮显示, 如图5-12所示。

图 5- 12  查看无布局instance的device
点击Device窗口中的一个或多个instance,左侧Design Browser会相应高亮显示,下方Console窗口显示相关信息,如图5-13所示。

图 5- 13  Design Browser中高亮显示选中的instance
2)  查看net的布线结果

在Design Browser中选择All Nets,点击任意net,在Device界面该net会高亮显示,如图5-14所示。

图 5- 14  点击任意net
把鼠标放在黄线(即选中的net)附近,会显示相关信息,如图5-15所示。

图 5- 15  鼠标显示相关信息
点击黄线,在Console窗口显示相关信息,如图所示。

图 5- 16  Console窗口显示信息
点击net前面的“+”,可以查找net所经过的pin脚。点击当前选中的net可以定位net,点击net下的pin脚可以定位当前选中的pin脚,如下图所示。

图 5- 17  从net查找pin
点击Device窗口中的一个或多个net,左侧Design Browser会相应高亮,下方Console窗口显示相关信息,如图所示。

图 5- 18  Device窗口与Design Browser选中net
 
3)  查看critical paths

选择Critical Paths进入关键路径界面,只有在UCE中进行了Timing约束或者加载了sdc约束文件才会有关键路径,点击单个critical paths可以在Device界面中高亮显示该条path和timing number,如图所示。

图 5- 19  关键路径
其中Slack是期望到达时间与实际到达时间之差。其设置颜色、选中查看与右键操作拷贝功能与Instance类似。
4)  查看Routing Arc

对于MUX中的Routing Arcs,先点击选中pin,然后按住Ctrl可以选择Routing Arc,如图所示。

图 5- 20  选中Routing Arc
对于Routing Arc、Unrouted Net、Design Net共存的情况下,若要选择距离鼠标位置最近的Routing Arc,则需要按住Ctrl;其它2种net的选择不需要按住Ctrl,如图所示。

图 5- 21  其它net的选择
对于Device Net、Unrouted Net、Design Net共存的情况下,点击鼠标左键,则选择离鼠标位置最近距离的那根net,如图所示。

图 5- 22  鼠标左键选择最近距离的net
以上均可以按住Ctrl实现多选。
(三)   设置颜色
鼠标单击Color弹出颜色列表,选择颜色可为相应的instance或group设置颜色。如图所示:

图 5- 23  颜色列表
选中Layer Colors选项进入设置默认颜色界面,其中可设置选中颜色、布局颜色、route线颜色、飞线颜色、各种器件连线资源的颜色以及背景色等。如图所示。

图 5- 24  Layer Colors选项
右键单击某item,弹出对应的操作菜单。其中“Restore Default Color”能够恢复当前选中的默认颜色。“Restore All Default Color”能够恢复所有的默认颜色,如图所示。

图 5- 25  右键操作菜单
(四)   新建instance
在进入手动布局布线模式后,可以在左侧design browser中选择ALL GOP选项,然后可以拖放指定类型的instance到右侧视图中,从而完成instance的创建,如图所示。

图 5- 26  创建 Instance
(五)   布局
布局的功能包括取消instance布局、自动布局和手动布局三种。
1.          取消Instance布局
取消instance布局是通过执行Unplace Instance操作,可以在Design Browser或Device界面执行Unplace Instance操作
选中一个或多个Instance后,在右键菜单中选择“Unplace Instance”,会将选中的Instance取消布局,如下图所示。

图 5- 27  Unplace Instance
 
在Design Browser中可以观察到布局状态的改变,如下图所示。

图 5- 28  Unplace后Design Browser状态
    需要注意以下两点:
1、在执行取消instance布局操作之前必须先执行Unroute操作。
2、放置在与时钟相关的Device:USCM、RCLKBUF、PLL、DQS等上的Instance不能Unplace,执行Unplace时报如下的warring:“W: UiWgt 1078: Can't unplace this instance.”。
 
2.          自动布局
自动布局有两种操作Auto Place和Auto Place All。在Design browser中可以执行Auto Place和Auto Place All两种操作,在Device界面中只可以执行Auto place All一种操作。
1)自动布局选中的未布局instance

在Design Browser中选中想要布局的Instance,右键菜单中选择“Auto Place”,如下图所示。

图 5- 29 Auto Place
 
则会将选中的未布局的Instance自动布局,如下图所示。

图 5- 30  选中的Instance自动布局成功
2)自动布局所有未布局Instance

在Design Browser中任意非空白处单击右键,选择“Auto Place All”,如图5-31,则可以将所有未布局的Instance进行自动布局,如图5-32所示。

图 5- 31  Auto Place All

图 5- 32  所有未布局Instance均被布局
3.          手动布局
手动布局有以下两种方式:修改位置和鼠标拖动。需要注意一点,与时钟相关的Instance:USCM、PLL、DQS等不能进行手动布局。
1)  修改位置

切换到mpnr模式,单击对应已布局instance的Site列可进行编辑,通过填入新位置进行手动布局,例如修改:CLMA_118_118,如图所示。

图 5- 33  手动编辑布局位置
2)  鼠标拖动

鼠标拖动分为拖动已布局的Instance和拖动未布局的Instance。
拖动已布局的Instance是在device窗口通过鼠标拖放对象到需要布局的位置来完成。如果在对应位置可布局并且能布线成功,则被布局到此位置并自动完成布线,否则布局失败,还原其布局信息。支持一次布局单个instance、一次布局某个Grid Device中所有instance、一次布局选中的多个device或instance三种手动布局方式。
手动布局在mpnr模式下可用,且需要在工具栏选中show  placement标志。
2.1)      一个instance

拖动鼠标按压位置的Instance进行布局,如果未指定某个Instance,则会在鼠标按压位置的 Grid Device中随机选择其中一个Instance进行布局,如图所示。

图 5- 34  一个instance布局前

图 5- 35  一个instance布局后
2.2)      一个Device

鼠标按压位置必须在Grid Device中,选中以后拖动到需要布局的位置上,松开鼠标即可完成布局,如图所示。

图 5- 36  一个device布局前

图 5- 37  一个device布局后
2.3)      多个device或instance

通过ctrl键选中或者右键圈选多个device或Instance进行布局,保持其相对位置不变,如图所示。也可以取消选择某个instance(按住ctrl点击已经选择的Instance即可取消选择该Instance)。

图 5- 38  多个instance布局前

图 5- 39  多个instance布局后
 
鼠标拖动未布局的Instance是在Design Browser中选中Unplace Instance到Device窗口里。如果在对应位置可布局,则被布局到此位置,否则禁止拖动。
2.4)      布局Unplace Instance

在Design Browser中选中Unplace Instance,拖动instance到Device中,布局成功后,instance的状态由unplace变为placed。布局Unplace Instance之前的结果如下图所示:

图 5- 40  布局Unplace Instance之前
布局Unplace的instance之后的结果如下图所示。

图 5- 41 布局Unplace Instance之后
点击save按钮保存结果,或退出手动布局布线模式后,再次进入手动布局布线模式时,出现是否保存提示框,此时,选择YES保存布局结果,选择NO放弃保存。
 
(六)   删除unplaced instance
对于已经unplaced的instance,可以在design browser中右键delete删除该instance,如图:

图 5- 42  删除place Instance
 
(七)   布线
布线功能包括:自动布线、手动布线、新建net、拆线。
1.          自动布线
与拆线一样,支持将整个net自动布线,或者只针对某个分支自动布线。选中需要自动布线的net或分支后,右键选择“Auto Route”即可自动布线,如图所示。
选中分支的方式为按住“Shift”键,再单击该分支。

图 5- 43  选中分支进行自动布线

图 5- 44  分支布线成功
 
若想对界面上所有拆掉的线进行自动布线,则不需要选中任何线,直接在右键菜单中选择“Auto Route All”即可,如图所示。

图 5- 45  Auto Route All

图 5- 46  Auto Route All成功
2.          手动布线
对于未布线的net,用户可以根据自己的需要选择的pin脚,构成一条路线,布线时会保留用户创造的路线,其余部分由软件进行自动布线。
一次只能对net的一个分支进行此操作,先按住“Shift”键再选中想要布线的分支,右键选择“Manual Route”,如图所示。

图 5- 47  选择分支进行手动布线
 
点击“Manual Route”后会弹出第一个pin脚的选取窗口,这个窗口需要用户选择一个pin脚,作为用户指定路线的第一个点。如图所示。

图 5- 48  选择第一个pin脚
 
第一个pin脚的选取可以采取手动输入pin脚名以及所属Instance名的方法,也可以直接用鼠标点击界面上的pin脚图标,pin脚的信息将会自动读取到对话框中,如图所示。

图 5- 49  点击界面选择pin脚
 
点击“OK”,出现手动布线窗口,从上到下依次为当前操作的分支、net的driver、选取的第一个pin脚。同时界面中net的路径也会根据选取的pin脚进行变化。如图所示。

图 5- 50 手动布线窗口
 
手动指定的路径至少由2个pin脚组成,根据上述过程选择了第一个pin脚后,右键单击该pin脚,选择“Add Child Pin Item”可以增加下一个pin脚,或者“Delete Child Pin Item”来删除当前pin脚,但是无法删除第一个pin脚。如图所示。

图 5- 51  增加下一个pin脚
 
“Add Child Pin Item”由系统自动为上一个pin脚选取一个与其连通的pin脚,如果有多个选择,系统会默认选择第一个,可以通过双击该pin脚来更改。如图所示。

图 5- 52  更换pin脚
选择了2个或多个pin脚以后,点击“Manual Route”,即可完成该分支的布线,手动指定的路径被保留,剩余部分由系统自动绕线,如图所示。

图 5- 53  指定路径完成,点击“Manual Route”
 
布线成功,如图所示。

图 5- 54  手动布线分支成功
 
若是选择的pins不能够布线成功,则会给出失败的提醒。如图所示。

图 5- 55 布线失败提示
 
3.          新建net
在进入手动布局布线模式后,在device view界面选中instance后,鼠标右键可以创建新的net,如图:

图 5- 56  new net
 
4.          拆线
1)  拆除整个net

在Design Browser中单击某net,或者device view中点击net靠近driver的一段,可以选中整条net,单击右键选择“UnRoute”,如图所示。

图 5- 57  选中net进行unroute
拆线后效果如图所示。

图 5- 58  拆掉整个net
 
2)  拆除net的分支

在布好线的状态下,鼠标单击某个分支,即可选中该分支,进行“Unroute”,如图所示。

图 5- 59  选中分支进行拆线
拆掉分支的连线后效果如图所示。

图 5- 60  拆掉net某个分支
 
 
(八)   删除unroute net
对于已经unroute的net,可以在DE界面右键delete net删除该net,如图:

图 5- 61  delete net
 
 
(九)   修改device配置值
进入mpnr模式后,右键placed的instance,可以通过Edit parameter pin查看修改该device instance的配置值,如图:

图 5- 62  修改配置值
 
(十)   时序分析
1.          增量式时序分析、非增量式时序分析
点击非增量式时序分析【Non-Incremental Timing Analyse】则对整个网表进行一次时序分析,时序分析的结果会生成报告保存在工程目录下面,报告的名字比PDS流程的时序报告名字多了个“_de”后缀,同时会自动刷新关键路径,用户可以点击显示关键路径按钮查看。
   点击增量式时序分析【Incremental Timing Analyse】,则相当于打开了一个开关,用户每次操作一步都会进行增量式时序分析,如unplace或unroute一次都会进行时序分析,相比非增量式时序分析,增量式时序分析只对变化的部分进行更新,这样可以减少时序分析的时间,增量式时序分析同样也会生成报告和刷新关键路径。
   当用户点击关闭DE时,会弹出窗口提示是否保存db,如果选择是,则除了保存pnr db,如果有时序分析路径还会保存timing db。
如图所示,xxx_rtp.adf是timing db,xxx_de.rtr是timing报告。

图 5- 63  时序分析结果
   在进入MPNR之后,右键可以进行timing配置,这个配置对增量式时序分析和非增量式时序分析同时有效,如图所示。

图 5- 64  时序分析配置
点击进去可以进行配置,如图所示:

图 5- 65  时序分析配置
     这里面的配置选项和PDS界面上是类似的,只是多了一个配置“Enable Print Timing Report”,这个选上之后则做完时序分析会生成时序报告,如果不选则只刷新关键路径。另外几个选项和PDS上的timing配置是同样的,具体可以详见PDS的用户手册。这里面只做简单介绍:
(1)“Enable multi-corner timing report” 是选择是否使能multi-corner,如果选择会进行fast和slow两个corner的分析,不选则只进行slow corner的分析。
(2)“Path Delay Type(-delay_type)” 是选择分析是min,max还是min_max。
(3)“Number of Paths per Endpoint(-nworst)” 是选择每个endpoint报多少条路径。
(4)“Total Number of Paths(-max_path)” 是选择整个时序报告最多多少条路径。
(5)“Show Input Pins(-input_pins)” 是选择时序报告是否打印input pin。
(6)“Report Async Timing(-enable_present_clear_arcs)”是否报告async路径。
(7)“Show Net(-nets)” 默认不能勾选。
(8)“Report Paths with Slack >” 选择报告时序路径slack最小值。
(9)“Report Paths with Slack <” 选择报告时序路径slack最大值。
2.    计算Path Delay
进入DE之后,鼠标右键点击Get Path Delay,即会弹出计算Get Path Delay的参数输入窗口。如图:

图 5- 66 get path delay
 
在该窗口,可以通过点击device界面中的pin脚或者单个device来添加From /To到相应的参数栏中。点击对应的add through按钮可以增加一个或者多个Through参数。点击OK以后,对应的path delay 值的计算结果会在下面的command 窗口中显示。
 
(十一)        输入命令
所有Gui上支持的手动布局布线操作都可以用命令行来执行。需满足以下两个条件:
(1)必须进入Design Editor界面。
(2)必须切换到Mpnr Mode。
 
1.          auto_route
用户可以用该指令完成对指定design net和分支进行自动布线操作,具体需要在如下环境中使用:
指定的design net需处于unrouted状态。
可以指定多个design net和分支。
命令格式:
auto_route  -design_net  {net}  -branch  { net:load: dev_instance }
参数解析:
-design_net指定布线design net对象,可选,若有多个以分号隔开。
-branch指定布线的分支,格式为 net_name:load_name:dev_instance_name,可选,若有多个以分号隔开。
-all 对device view中所有unoute的net进行自动布线。
实例:
auto_route -design_net {inst_361/inst_87/inst_45/count_temp_s [6]; } -branch {ad_read_tpram_c[1]:B1:CLMA_181_4; }
将名为inst_361/inst_87/inst_45/count_temp_s [6]的design_net和名为ad_read_tpram_c[1]的design net上的某一分支进行自动布线,该分支连到CLMA_181_4上的B1端口。
 
auto_route –all
device view中所有net自动布线。
 
2.          unroute
用户可以用该指令完成对指定design net和分支进行拆除布线操作,具体需要在如下环境中使用:
指定的design net需处于routed状态。
可以指定一个或多个design net或者net分支。
命令格式:
unroute  -design_net  {net} –branch{ net:load:dev_instance }
参数解析:
-design_net指定拆线design net对象,可选,若有多个以分号隔开。
-branch指定拆线的分支,格式为 net_name:load_name:dev_instance_name,可选,若有多个以分号隔开。
实例:
auto_route -design_net {inst_361/inst_87/inst_45/count_temp_s [6]; } -branch {ad_read_tpram_c[1]:B1:CLMA_181_4; }
将名为inst_361/inst_87/inst_45/count_temp_s [6]的design_net和名为ad_read_tpram_c[1]的design net上的某一分支进行拆线,该分支连到CLMA_181_4上的B1端口。
 
3.          manual_route
用户可以用该指令完成对指定design net分支进行手动布线操作,具体需要在如下环境中使用:
每次只能指定一个net的某个分支进行手动布线,该分支处于unroute状态。
命令格式:
manual_route -net {net} -branch {load} -pins {pin1;pin2;…pinx }
参数解析:
- net指定手动布线分支所属的design net对象。
-branch 指定对net的哪个分支进行手动布线。
-pins 指定起点与终点之间的某段路径,由至少两个device pin组成。
实例:
manual_route -net {AAL5_CRC_NEXT_114[12]} -branch {B4:CLMS_382_265} -pins {IDE[1]:SRB_429_264; LH0:SRB_429_264; }
对名为AAL5_CRC_NEXT_114[12]的net上的分支B4:CLMS_382_265(该分支连到CLMS_382_265的B4端口)进行手动布线,IDE[1]:SRB_429_264到 LH0:SRB_429_264为用户自主设计的路径,其余部分由系统自动完成。
4.          place
用户可以用该指令完成对指定已布局的design instance或指定grid device上的design instance布局到指定device instance上的操作,具体需要在如下环境中使用:
命令格式:
place  -design_instance  {instances}  -dev_instance  {device inst}
place  -grid_dev_instance  {dev_inst}  -dev_instance  {device inst}
参数解析:
-design_instance指定手动布局的design instance对象,可以指定一个或多个design instance。
-grid_dev_instance指定手动布局的design instance所在的grid device,只能指定单一对象。
-dev_instance指定手动布局指定的design instances中首个instance将会布局的device instance。
实例:
place  -design_inst  {inst_01;inst_02}  -dev_inst  {CLMA_X}
将名为inst_01 design inst手动布局到名为CLMA_X的device instance上,将名为inst_02的design inst根据原本与inst_01的相对位置布局到对应的device instance上。
place  -grid_dev_inst  { CLMA_X }  -dev_inst  { CLMA_Y }
将名为CLMA_X的device instance上的所有design inst手动布局到名为CLMA_Y 的device instance上。
5.          place_only
将指定未布局的design instance放置到指定grid device的指定prim device上(某些instance不需要指定prim device),但不进行布线。具体需要在如下环境中使用:
指定的instance必须处于unplace状态。
命令格式:
place_only -instance {instances; } -grid_device {grid_devices; } -prim_device { prim_devices; }
参数解析:
-instance指定place的instance对象,可以指定一个或多个。
-grid_device 指定需要放置的位置是哪个grid device,若instance指定了多个,此项也必须对应指定多个。
-prim_device 指定需要放置到上述grid device上的哪个prim device上,若grid device指定了多个,此项也必须对应指定多个。
某些instance不需要指定prim device,此类instance不能与需要指定prim device的instance同时指定到同一条place_only命令中。
实例:
place_only -instance {T_GTP_LUT4/gateop_perm;} -grid_device {CLMS_74_166; } -prim_device {FGD; }
将名为T_GTP_LUT4/gateop_perm的instance放置到CLMS_74_166上的FGD位置。
6.          place_group
将指定未布局的design instance放置到指定grid device的指定prim device上, 并将其所在group的其他所有instance放置到附近的grid device上。具体需要在如下环境中使用:
指定的instance必须处于unplace状态,并且属于某个group。
只能指定一个instance。
命令格式:
place_group -instance {instance; } -grid_device {grid_device; }
参数解析:
-instance指定place的instance对象。
-grid_device 指定需要放置的位置是哪个grid device。
实例:
place_group -instance {T_GTP_MUX2LUT8_muxf8_perm} -grid_device {CLMA_61_166}
将名为T_GTP_MUX2LUT8_muxf8_perm的instance放置到CLMA_61_166上,,并自动放置其group内其他所有成员instance。
7.          unplace
用户可以用该指令完成对指定design instance或指定grid device上的design instance取消布局结果的操作,具体需要在如下环境中使用:
执行Unplace的inst上所有的net都已经Unroute。
命令格式:
unplace -instance {instances; }
参数解析:
-instance指定Unplace的instance对象,可以指定一个或多个。
实例:
unplace -instance {GTP_DFF_LUTMUX2LUT7_1_Z/opit_5; }
将instance GTP_DFF_LUTMUX2LUT7_1_Z/opit_5的instance进行Unplace
 
8.          auto_place
用户可以用该指令完成对指定design instance或指定grid device上的design instance进行自动布局的操作,具体需要在如下环境中使用:
执行AutoPlace的所有inst都已经Unplace
命令格式:
auto_place -instance {instances; }
参数解析:
-instance指定需要自动布局的instance对象,可以指定一个或多个。
-all 指定所有unplace的instance为对象。
实例:
auto_place -instance {GTP_DFF_LUTMUX2LUT7_0_Z/opit_5; }
将instance GTP_DFF_LUTMUX2LUT7_0_Z/opit_5的inst进行自动布局。
 
auto_place –all
自动布局所有unplace状态下的instance。
9.          mpnr
用户可以用该指令切换Design Editor模式。
命令格式:
mpnr  [-exit]
参数解析:
-exit         退出Mpnr Mode
实例:
mpnr切换到Mpnr Mode
mpnr  -exit   退出Mpnr Mode,进入Vpnr Mode
 
10.          select
用户可以用指令查找并选中指定的对象。
命令格式:
select [-design_instance] [-design_net] [-dev_instance] [-nogroup]
参数解析:
-design_instance指定选中的design instance,如果该design inst存在于某一group中,则goup中的其他instance也选中
-dev_instance指定选中的dev_instance以及在其上面分布的design instance
-nogroup此参数需与前面的参数配合使用,如果前面参数是-design_instance则表明只选中design instance而不选中它所在的group中其他instance;如果前面参数是-dev_instance则表明如果指定的device instance上布局的design instance存在于某一个group中,只选中指定的device instance而不选中group中其他instance所在的device instance
-design_net指定选中的design_net
Note:  -design_net和-design_instance可以同时使用,但-design_net/inst不能与-dev_inst同时使用
实例:
select  -design_net  {net_01;net_02}
选中名为net_01和net_02的design net
select  -design_instance   {inst_01;inst_02}
选中名为inst_01和inst_02的design instance以及他们所在group中其它所有design instance
select  -design_inst  {inst_01;inst_02}   -nogroup
选中名为inst_01和inst_02的design instance而不选中他们所在group中其它所有design instance
select  -dev_instance    { CLMA_X; CLMA_Y }
选中名为CLMA_X和CLMA_Y的device instance以及在其上面布局的design instance所在group中其他design instance
select  -dev_instance    { CLMA_X; CLMA_Y }  –nogroup
选中名为CLMA_X和CLMA_Y的device instance以及在其上面布局的design instance,但不会选中这些inst所在group的其他inst。
 
11.          show
用户可以用指令显示指定的design net的布线结果以及device instance 的布局结果。
命令格式:
show  [-design_net]  [-dev_instance]
参数解析:
-design_net显示指定的design net的布线结果,输出其经过的所有支路及其pin脚。
-dev_instance显示指定的dev_instance的布局结果,输出其上面布局的所有instance信息
实例:
show  -design_net  {net_01;net_02}
在command console输出经过net_01和net_02的所有支路及其pin脚
show  -dev_instance   { CLMA_X; CLMA_Y }
在command console输出CLMA_X和CLMA_Y上所有instance信息
12.          save_adif
将在Design Editor中对design所做的修改保存至当前PnR DB文件中。
参数解析:
-file_name目前该参数忽略,尚未支持另存为DB文件功能;
实例:
save_adif
13.          next
用户可以用该指令显示当前给定device pin的下一个可以使用的所有备选pins,具体需要在如下环境中使用:
只能指定单一device pin
命令格式:
next  -dev_pin:instance  {pin_name:inst_name}
参数解析:
-dev_pin:instance指定当前pin对象,以及当前pin所在的inst,从而唯一确定此pin
实例:
next -dev_pin:instance  Q1:CLMA_117_115
显示MUX名为CLMA_117_115上,名为Q1的pin的下一个可以使用的所有备选pins
14.          non_incremental_timing_analyse
用户可以使用该命令运行一次非增量式时序分析。
命令格式:
non_incremental_timing_analyse
参数解析
-print_timing_report 选择是否打印报告
-enable_multicorner 是否使能multiconrer
-delay_type 选择时序报告路径是min,max还是min_max
-nworst 1 对应选择每个endpoint报多少条路径
-max_path 1 选择整个时序报告最多多少条路径
-slack_greater_than -100000选择报告时序路径slack最小值
-slack_less_than 100000选择报告时序路径slack最大值
-input_pins 选择时序报告是否打印input pin
-nets目前不会生效
-enable_preset_clear_arcs是否报告async路径
15.          incremental_timing_analyse
用户可以使用该命令运行一次增量式时序分析。
命令格式:
incremental_timing_analyse
参数解析
-on 是打开增量式时序分析
-off  是关闭增量式时序分析
-print_timing_report 选择是否打印报告
-enable_multicorner 是否使能multiconrer
-delay_type 选择时序报告路径是min,max还是min_max
-nworst 1 对应选择每个endpoint报多少条路径
-max_path 1 选择整个时序报告最多多少条路径
-slack_greater_than -100000选择报告时序路径slack最小值
-slack_less_than 100000选择报告时序路径slack最大值
-input_pins 选择时序报告是否打印input pin
-nets目前不会生效
-enable_preset_clear_arcs是否报告async路径
16.          get_path_delay
用户可以使用该命令计算出path delay。
命令格式:
get_path_delay
参数解析
-from 是path的startpoint,取值可以是若干pin脚名称或者device名称;
-though 是path必须经过的中间点,取值可以是若干pin脚名称或者device名称;
-to 是path的endpoint,取值可以是若干pin脚名称或者device名称;
-max_pax 是最大路径值,只能为整数。
 
 
(十二)        报告信息
点击工具栏按钮Show Report Region,在Device窗口用右键拉出一个矩形框后。如图所示。

图 5- 67  按钮Show Report Region
选择report,显示该区域相关信息,如图所示。

鉴于本人能力有限,没能进入高端行业,所以,这个东东,我没用过,也不影响我的开发。

惭愧啊。你们就看看吧。

猜你喜欢

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