作为 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. WebAssembly,可以作为任何编程语言的编译目标,使应用程序可以运行在浏览器或其它代理中——浏览器里运行其他语言的程序?

    Mozilla.谷歌.微软和苹果已经决定开发一种面向Web的二进制格式.该格式名为WebAssembly,可以作为任何编程语言的编译目标,使应用程序可以运行在浏览器或其它代理中. 几年前,我们在Inf ...

  2. codeforces 691A A. Fashion in Berland(水题)

    题目链接: A. Fashion in Berland 题意: 思路: AC代码: //#include <bits/stdc++.h> #include <iostream> ...

  3. codeforces 672D D. Robin Hood(二分)

    题目链接: D. Robin Hood time limit per test 1 second memory limit per test 256 megabytes input standard ...

  4. spring+mybatis 多数据源整合--temp

    <!-- 数据源配置 -->   <bean id="ds1" class="org.apache.commons.dbcp.BasicDataSour ...

  5. bzoj4566

    后缀自动机+dp 一个串在另一个串上跑. 先对A建出自动机,然后用B在上面跑,记录当前匹配的最大长度,每次经过一个节点记录经过次数,并加上(len-Max(par))*Right,是这个状态对答案的贡 ...

  6. centos7用lvm扩展xfs文件系统的根分区

    centos7中默认使用的是xfs文件系统,此文件系统的特点,可以另外查找资料,这里说一下对文件系统的扩容: 1.先看一下没扩容之前的分区大小 2.添加一块新磁盘,并进行分区.格式化(格式化的时候用m ...

  7. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道

    ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道 语雀: https://www.yuque.com/yuejiangliu/dotnet/ ...

  8. leetCode :103. Binary Tree Zigzag Level Order Traversal (swift) 二叉树Z字形层次遍历

    // 103. Binary Tree Zigzag Level Order Traversal // https://leetcode.com/problems/binary-tree-zigzag ...

  9. 【WIP】swift3的timer的用法

    创建: 2017/10/14   更新: 2017/10/14 标题加上[WIP],补充创建时间     回家再写

  10. Codeforces Round #364 (Div. 2)【A,C】

    啊啊啊啊啊啊啊啊啊,目睹A->CⅠA全过,最终fstwaA,C;23333333 A题: 题意: 就是分成相等的m堆,每堆有两个位置上的值相加. 思路: fst在sum可能不是偶数,先*2/n; ...