作为 Synopsys FPGA 设计解决方案的一部分,Synplify FPGA 综合软件是实现高性能、高性价比的 FPGA 设计的行业标准。 其独特的行为提取综合技术 (Behavior Extracting Synthesis Technology, BEST) 在将 RTL 代码综合成特定的 FPGA 逻辑之前,先进行高层次优化。 此方法可以对整个 FPGA 进行高度优化,提供更快运行时间并支持超大型设计。

Synplify FPGA综合工具以其能对FPGA设计产生高性能和低成本而成为业界的标准工具。Synplify软件支持最新的VHDL和Verilog语言结构包括SystemVerilog和VHDL-2008. 该软件也支持多种不同的FPGA架构, 如Altera, Achronix, Lattice, Microsemi and Xilinx,使用时, 仅需输入单个RTL个约束文件即可。Synplify软件使用单一且易用的界面,它能做增量综合和直观的HDL代码分析。针对需要最快综合运行时间以及最高质量的时序、面积和功耗的大型设计的设计人员。 Synplify Premier 软件能够提供 Synplify Pro 的所有功能,以及其他一些组件用于高级 FPGA 设计。

synplify综合过程包括三方面内容:

1.对HDL源代码进行编译,synplify将输入的HDL源代码翻译成boolean表达式;

2.对编译的结果优化,通过逻辑优化消除冗余逻辑和复用模块,这种优化是针对逻辑关系的,与具体器件无关;

3.对优化的结果进行逻辑映射与结构层次上的优化,最后生成网表;synplify将编译生成的逻辑关系映射成FPGA的底层硬件模块和原语(primitive),生成网表并优化;

synplify 生成的网表文件

*.vm:Verilog Synthesized netlist for simulation. 此文件可作为modelsim等仿真工具进行综合后门级功能仿真的输入文件

*.edf:Netlist for P&R tools. edif 文件格式:标准电子设计互换格式文件(NETLIST FILE),独立于所采用的实现工艺。因而当用不同厂家的器件来实现已经验证的逻辑网表(EDIF文件)时,需要相应的基本单元库与布线延迟模型优化(optimization),映象(mapping)。

Implemention设置

选择器件,设置综合顶层,综合优化选项,选择输出的文件格式等。

synplify 批处理模式

设计者可以用批处理命令的形式执行一个综合,也可以一次执行同一设计的多个综合,尝试不同器件、不同延时目标、不同约束条件;工程文件prj、约束文件sdc本质上都是采用tcl脚本编写的;可采用如下命名运行批处理模式:

synplify_pro –batch project_file_name.prj

DesignWare IP

Synopsys公司的DesignWare IP产品包括各种控制器、物理层(PHY)和验证IP的完整的接口IP解决方案、模拟IP、各种嵌入式存储器、逻辑 库、可配置处理器内核和子系统。如USB,PCI Express的,SATA,以太网等。 DesignWare在DC综合的时候没有多少优化的余地,因为DC调用的已经是DesignWare的版图。仿真的时候都是调用synopsys提供的DesignWare仿真库,是没办法综合的。最后,如果应用于FPGA中的话,只有synplify_premier综合工具支持。其他工具是无法调用DesignWare的。

总结

让专业的工具干专业的事,Xilinx和Altera虽然都提供自家的FPGA开发工具,但综合速度和结果都比不上synplify,尤其是Xilinx的Vivado综合速度更加慢如牛,在平时的开发过程中,我自己对综合后的资源都不太关心,但综合速度一定要快。效率就是时间,时间就是生命。而且用FPGA做ASIC设计原型验证时,synplify还可以综合DesignWare中的IP核。synplify 所有有用的信息都可以在synplify的user guide和reference manual中找到。

参考文献:

[1] synplify使用. http://www.eetop.cn/blog/html/14/56214-21591.html

[2] FPGA 逻辑综合. https://www.synopsys.com/CN/Tools/Implementation/FPGAImplementation/FPGASynthesis/Pages/SynplifyPro.aspx

[3] http://blog.csdn.net/xiaoweige207/article/details/6211153

[4] http://blog.csdn.net/angelbosj/article/details/17605223

[5] Synopsys. synplify pro user guide and tutorial.

[6] DesignWare 元件库

http://www.synopsys.com/CN/IP/SOCINFRASTRUCTUREIP/DESIGNWARE/Pages/default.aspx

[7] 关于Designware的一些看法

http://www.eetop.cn/blog/html/46/553746-21633.html

Synplify FPGA 逻辑综合的更多相关文章

  1. 硬件开发笔记(一):高速电路设计Cadence Aleego软件介绍和安装过程

    前言   红胖子软硬通吃的前提的使用AD,涉及到高速电路板,要配合高速硬件工程师,使用Aleegro更合适,遂开启了Aleegro设计电路板学习,过程保存为开发笔记,旨在普及和沟通技术,共同进步,学无 ...

  2. 浅谈用ModelSim+Synplify+Quartus来实现Altera FPGA的仿真

    浅谈用ModelSim+Synplify+Quartus来实现Altera FPGA的仿真 工作内容: Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业 ...

  3. FPGA综合工具--Synplify Pro的常用选项及命令

    最近要用到Synplify,但以前没使用过,无基础,找到一篇帖子,隧保存下来. 本文转自:http://blog.sina.com.cn/s/blog_65fe490d0100v8ax.html Sy ...

  4. 基于Lattice_CPLD/FPGA Diamond 开发流程

         本文主要介绍了Lattice CPLD/FPGA集成开发环境的使用方法,并通过点亮开发板(Mach XO2 Breakout Board)上位号为D2的LED这一实例来演示其开发流程. 1. ...

  5. 如何学习FPGA

    如何学习FPGA 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/k331922164/article/details/44626989 PS:笔者强 ...

  6. 如何学好FPGA

    http://bbs.elecfans.com/jishu_278578_1_1.html 掌握FPGA可以找到一份很好的工作,对于有经验的工作人员,使用FPGA可以让设计变得非常有灵活性.掌握了FP ...

  7. FPGA开发流程1(详述每一环节的物理含义和实现目标)

    要知道,要把一件事情做好,不管是做哪们技术还是办什么手续,明白这个事情的流程非常关键,它决定了这件事情的顺利进行与否.同样,我们学习FPGA开发数字系统这个技术,先撇开使用这个技术的基础编程语言的具体 ...

  8. FPGA大公司面试笔试数电部分,看看你会多少

    1:什么是同步逻辑和异步逻辑?(汉王) 同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系. 答案应该与上面问题一致 [补充]:同步时序逻辑电路的特点:各触发器的时钟端全部连接 ...

  9. FPGA开发流程

    需求说明:Verilog设计 内容       :FPGA开发基本流程及注意事项 来自       :时间的诗 原文来自:http://www.dzsc.com/data/2015-3-16/1080 ...

随机推荐

  1. 关于View转化成bitmap保存成图片

    产品今天说项目分享时要分享出一张  封面图片 + 几行文字 + 二维码图片 的图片. 思索了一下 封面图片和二维码图片让后台给接口得到地址, 主要还是找个方式得到一个包含这些内容的图片.于是就想能不能 ...

  2. python中PIL.Image和OpenCV图像格式相互转换

    PIL.Image转换成OpenCV格式: import cv2 from PIL import Image import numpy image = Image.open("plane.j ...

  3. Android 获取View宽度

    /***************************************************************************** * Android 获取View宽度 * ...

  4. UIWindow学习

    写在前面 本文内容绝大部分都参考唐巧大神的<iOS开发进阶>,只是结合不是特别长的开发经验加以补充:最后基于UIWindow自定义了一个类似于微信的ActionSheet. UIWindo ...

  5. BZOJ_1915_[Usaco2010 Open]奶牛的跳格子游戏_DP+单调队列

    BZOJ_1915_[Usaco2010 Open]奶牛的跳格子游戏_DP+单调队列 Description 奶牛们正在回味童年,玩一个类似跳格子的游戏,在这个游戏里,奶牛们在草地上画了一行N个格子, ...

  6. 虚拟机bridged, NAT and host-only网络区别

    In Linux, a network of each type is created when running vmware-config.pl. In Windows, they are auto ...

  7. node安装升级npm

    安装npm npm上有很多优秀的nodejs包,来解决常见的一些问题,比如用node-mysql,就可以方便通过nodejs链接到mysql,进行数据库的操作 在开发过程往往会需要用到其他的包,使用n ...

  8. mysql连接过多-报错

    有两种方法: 1,错误连接参数 max_connect_errors,在配置文件中调整增大. 比如:修改mysql配置文件,在[mysqld]字段下面添加 max_connect_errors=102 ...

  9. Unity网格合并_材质合并[转]

    http://blog.csdn.net/chenggong2dm/article/details/41699029

  10. 关于 GraPhlAn 的孤独自学

    最近需要用 GraPhlan 来绘制 taxo分类图,稍微研究了一下 一.简介 官网: http://huttenhower.sph.harvard.edu/GraPhlAn 主要有两个脚本: gra ...