《synplify_pro使用手册》由会员分享,可在线阅读,更多相关《synplify_pro使用手册(8页珍藏版)》请在金锄头文库上搜索。
1、4.5.1 Synplify Pro 软件的使用 在 FPGA 设计中,许多设计人员都习惯于使用综合工具 Synplify Pro。虽然 ISE 软件可以不依赖于任何第三方 EDA 软件完成整个设计,但 Synplify Pro 软件有综合性能高以及综合速度快等特点,无论在物理面积上还是工作频率都能达到较理想的效果。因此如何在 ISE 中调用 Synplify Pro 综合工具,并进行无缝的设计连接仍然是设计人员需要解决的一个设计流程问题。 1. Synplify Pro 综合软件的安装 下面介绍 Synplify Pro 的安装步骤。运行安装程序,欢迎界面过后,将出现如图 4-89 所示的安
2、装选择界面,可以根据自己的需要选择相应的组件。然后按照默认选项继续即可完成安装图 4-89 Synplify 的安装选择界面 在 Synplify 安装完后,还需要安装 Identify。在开始 程序 Synplify 菜单栏中会出现“Identify 211 Installation”,双击即开始安装,一般来讲,可以按照默认选项继续,直至安装完毕。安装完之后需要添加授权的 License 文件,才能正常使用。 2. 关联 ISE 和 Synplify Pro 完成了 Synplify Pro 安装后,需要将其和 ISE 软件关联后才能使用 Synplify Pro 进行综合。运行 ISE 软
3、件,在主界面中选择“Edit|Preference”菜单项,进行“Reference”设定如图 4-90 所示。在弹出的 Preference 对话框中选择“Integrated Tools”选项卡。该选项卡用于设定与 ISE 集成的软件的路径,第三项的 Synplify Pro 就用于设定 Synplify Pro 仿真软件的路径,如图 4-91 所示。图 4-90 选择 Preference 菜单项 图 4-91 ISE 集成工具设定页面单击 Synplify Pro 文本框后面的按钮,会弹出一个文件选择对话框,选择 Synplify Pro 安装路径下 bin 目录下的“synplify
4、_pro.exe”文件即可。 注意:在“Integrated Tools”选项卡中还可以看到其他几个可以和 ISE 进行无缝链接的第三方软件,如 ModelSim、synplifyLeonardoSpectrum、Chip Scope Analyzer 等软件。 3. Synplify Pro 的使用方法简介 Synthesis 将 HDL 代码转化为门级网表的过程,其对电路的综合包括以下 3 个步骤:首先,HDL compilation 把 HDL 的描述编译成已知的结构元素;其次,运用一些算法,对设计进行面积优化和减小时延。在没有目标库的情况下,Synplify 只能执行一些最基本的优化措
5、施;最后,将设计映射到指定厂家的特定器件上,并执行一些附加的优化措施,包括根据由器件供应商提供的专用约束进行优化。工程文件以*.prj 作为扩展名,以 tcl 的格式保留了以下信息:设计文件、约束文件、综合时开关选项的设置情况等。 1)Synplify Pro 用户界面介绍 Synplify Pro 是标准的 windows 应用程序,所有功能均可以通过菜单选择来实现。下面按照图 4-92 中数字所标示的次序,对其界面作简要介绍。图中 1 表示 Synplify 的主要工作窗口,在这个窗口中可以详细显示设计者所创建工程的详细信息,包括工程的源文件,综合后的各种结果文件。同时如果综合完成后,每个
6、源文件有多少错误或者警告都会在这个窗口显示出来。图中 2 表示 TCL 窗口,在这个窗口中设计者可以通过 TCL命令而不是菜单来完成相应的功能。图中 3 表示观察窗口,在这里可以观察设计被综合后的一些特性,比如最高工作频率等。图中 4 是状态窗口,它表示现在 Synplify 所处的状态,比如下图表示 Synplify 处于闲置状态,在综合过程中会显示编译状态、映射状态等等。图中 5 所示的一些复选框,可以对将要综合的设计的一些特性进行设置。Synplify 可以根据这些设置对设计进行相应的优化工作。图中 6 是运行按钮,当一个工程加入之后,按这个 RUN 按钮,Synplify 就会对工程进
7、行综合。图中 7 所示的是 Synplify 的工具栏。图 4-92 Synplify Pro 综合工具示意图2)建立工程、添加源文件 建立工程首先需要打开 Synplicity Pro。点击“开始” 菜单,依次选择 “程序 Synplicity Synplify Pro”,启动 Synplify Pro。在工程窗口中包含了以下内容:源文件信息、结果文件信息和目标器件信息。 缺省情况下,当 Synplify 启动时将自动建立一个新工程。这时,可以选择将工程,以新名字保存。如果结束了一个工程的操作,想新建一个工程,则可以选择“FILE NEW”;然后选择工程文件,就可以建立一个新的工程。这项操作
8、也可以通过工具条来进行,单击工具条的 P 图标,则在弹出对话框选择工程文件即可。 新建工程之后,需要将源文件添加进来。点击“ADD FILE”按钮。添加源文件和约束文件。Synplify Pro 把最后编译的“module/entity and the architecture”作为顶层设计,所以需要把顶层设计文件用左键拖拉到源文件菜单的末尾处或者点击“Impl Options”按钮,在 Verilog 属性页中设置顶层模块的名称。 3)工程属性设置 添加完源文件后需要设置工程属性,点击“Impl option”按钮出现属性页对话框,如图 4-51 所示。下面介绍常用的芯片设置、综合选项、约束
9、设置以及实现结果选项等参数的配置图 4-93 设置器件属性页1. 首先,设置 FPGA 芯片信息。打开“Device”属性页,分别设置器件厂家器件型号、速度级别和封装信息。根据设计的速度和面积要求。可以设置最大扇出系数,缺省是 10000。根据该工程所属模块是否和片外有信号联系,选中或者不选中“Disable I/O insert”,如果选中该选项,则 Synplify Pro 不会为输入输出信号加缓冲,缺省为不选。 2. 设置通用综合选项。点击“options”属性页,选中“Symbolic FSM Compiler”,Synplify Pro 会在综合过程中启动有限状态机编译器,对设计中的
10、状态机进行优化。选中“Resource Sharing”选项,则启动资源共享;设置了资源共享后,设计的最高工作频率会低于不选中的情况,但是资源会节约很多,因此在设计能够满足时钟频率要求的情况下,一般选中以节省资源。选中“Use FSM Explorer”选项,即可以用 synplify 内置的状态机浏览器观察状态机的各种属性。选中“Pipelining”选项,即启动流水,在高速时钟设计中,如果其他措施都不能达到目标频率则最好选中此项。 3. 设置约束选项。点击“Constraints” 属性页,设置模块最高工作频率以及添加约束文件( .sdc)。过严或是过松的约束都达不到最佳的效果。一般可先尝
11、试通用的约束,如时钟扇出限制等;如果没有达到要求,可加入一些严格的具体约束,同时注意放松一些可以放松的约束。需要注意的是,综合约束的结果是估计值,应该以布局布线的结果为准。 4. 设置实现结果。点击“Implementation Results”属性页,设置综合结果放置的目录,综合结果的文件名称。同时一定要将“Write Vendor Constraint File”和“Write Verification Interface Format”选项选中。 4)时序约束 定义时间约束是为了让综合结果满足预期的时序要求,时间约束通常分为两类:一是通用时间约束,用于目标结构的时序要求;二是黑盒时间约束
12、,用于在设计中指定为黑盒的模块时间约束。在 Synplify Pro 中,可通过 SCOPE、约束文件以及综合属性和指示等 3 种方法添加时序。本节主要介绍利用约束文件添加约束的方法。 约束文件采用 Tcl 语言,以*.sdc 保存,用来提供设计者定义的时序约束、综合属性以及 FPGA 生产商定义的属性等。约束文件既可以通过 SCOPE 创建编辑也可以使用正文编辑器创建编辑可被添加到在工程窗口的代码菜单中也可以被 Tcl 脚本文件调用。 5)综合属性和指示 (1)综合属性和指示简介 综合指示用于控制综合中编译阶段的设计分析,因而必须加入到源代码中。属性是在编译后读入的,因而既可以在源程序中说明
13、,也可以在约束文件中说明。约束文件提供了较大的灵活性,使得可以仅修改约束而不用重新编译源程序,因而是强烈推荐采用的方法。 在 Verilog 源程序中,说明指示或属性采用注释的方法语法如下:/ synthesis directive|attribute = value 或 /* synthesis directive |attribute = value */ (2)综合指示 综合指示用于通知 Synplify Pro 软件某些用户定制的设置,常以注释的形式出现在源代码后面,Synplify 软件会自动识别相应的说明,按照用户指令完成综合。常用的综合只是如下: black_box_pad_pi
14、n 声明用户定义的黑盒管脚作为外部环境可见的 I/O pad。如果有不止一个端口列在双引号内,则以逗号分开。由于 Synplify 提供了预定义的 I/Os,一般不需要这一属性。其语法如下: object /* synthesis syn_black_box black_box_pad_pin = port_list */ ; 例如: module BS(D,IN,PAD,Q) /*synthesis syn_black_box black_box_pad_pin=PAD */; block_box_tri_pins 声明黑盒的一个输出端口是三态,如不止一个列在双引号内,则以逗号分开。其语法如
15、下: object /* synthesis syn_black_box black_box_tri_pins = port_list */ ; 例如: module BBDLHS(D,E,GIN,GOUT,PAD,Q) /* synthesis syn_black_box black_box_tri_pins=PAD */ ; full_case 仅用于 Verilog 的 case 语句,表明所有可能的状态都已经给出,不需要其他逻辑保持信号的值,其语法如下:object /* synthesis full_case */ 其中 object 可以是 case、casex、casez、sta
16、tements 和 declaration。 parallel_case 仅用于 Verilog 中 case 语句,表明生成一个并行的多路选择结构而不是一个优先译码结构。其语法如下: object /* synthesis parallel_case */ 其中 object 可以是 case、casex、casez、statements 和 declaration。 syn_block_box 说明一个模块或组件为黑盒,仅利用其界面进行综合,而不管内部是否为空,也不进行优化。一般应用于厂家原语或宏或 IP 等用户定义的宏。其语法如下: object /* synthesis syn_black_box */ ; 其中 object 可以是 module 和 declaration。 syn_encoding 强制选择自动机实现的方式,其可选值(va