最近要用到Synplify,但以前没使用过,无基础,找到一篇帖子,隧保存下来。

本文转自:http://blog.sina.com.cn/s/blog_65fe490d0100v8ax.html

Synplify 使用过程中最常用的选项及命令的介绍。
一、 状态机相关
(1)FSM Compiler Option
  FSM Compiler是一个全局选项。勾选此选项之后Synplify Pro会自动检测代码中的状态机,根据状态数量的不同选择不同的编码方式。状态数量在0~4之间采用顺序编码(Sequential),状态数量在5~40之间采用独热码(One hot),状态数量在40以上采用格雷码(Gray)。对状态机状态进行“可到达分析”,优化掉无法到达的状态和无法执行到的语句。
(2)FSM Explorer Option
  它是FSM Compiler的一个子选项,勾选FSM Explorer则FSM Compiler也会被自动选中。勾选FSM Explorer会影响状态机的编码方式,它对每一个检测到的状态机尝试三种不同的编码方式之后选择最优的编码方式。
(3)Syn_state_machine Directive
  与FSM Compiler的不同之处在于FSM Compiler是全局选项,而syn_state_machine Directive是局部指令,使用方法如下:
  reg   [7:0]    curr_state    /* synthesis syn_state_machine=1 */;
  如果我们希望某一部分代码按状态机综合但是我们没有勾选FSM Compiler选项或者FSM Compiler没有将它视为状态机,则可以使用上述代码描述将其指定为状态机。同样,也可以将其指定为“非状态机”。
(4)Syn_encoding Attribute
  BTW:Attribute和Directive的区别在于Attribute是“综合时作用”,而Directive是“编译时作用”;Attribute和工艺(如ALTERA或XILINX,或同一厂家不同系列)相关,而Directive和工艺无关。
  Syn_encoding Attribute的使用方法如下:
    reg   [7:0]    curr_state    /* synthesis syn_encoding=”safe,gray” */;
  Syn_encoding Attribute可选的值有“onehot”,“gray”,“sequential”,“safe”,“original”。强烈建议对每一个状态机使用“safe”,它可以在状态机受到扰动进入非法状态时自动将其复位到一个有效的状态,避免状态机“死机”。
二、 面积和速度优化
(1)Resource Sharing Option
  是一个全局选项,勾选此选项则允许编译器共用互相排斥语句中的算术单元,常用于加法器、减法器等,有时对Reg/LUT也会略有减少。
(2)Pipelining Option & Retiming Option
  它们都是全局选项。若选中Retiming则Pipelining会自动被选中。Pipelining只改变寄存器的位置,通过移动寄存器的位置优化寄存器之间的组合逻辑级数,达到优化时序的目的。而Retiming不仅改变寄存器的位置还可能改变寄存器的数量。值得注意的是,它在改变寄存器数量时不会改变寄存器的级数,确保设计者预期的逻辑功能不被改变。
(3)Fanout Guide – one of the Device Mapping Options
  Fanout Guide是全局选项,默认一般为10000,如果设计中有较多单元fanout太大导致最终实现时序难收敛,可以视情况设置。减小扇出则Synplify Pro会自动使用更多的逻辑资源来进行逻辑复制。
(4)Syn_maxfan Attribute
  Syn_maxfan是局部属性。它可以用来改变特定单元的扇出,优先级高于全局Fanout Guide选项。下面是一个使用Syn_maxfan attribut的例子:
  reg   [31:0]    data_out    /* synthesis syn_maxfan=10 */;
三、 其他常用选项及命令
(1)Translate_off/translate_on Directive
  Translate_off/translate_on必须成对出现。Translate_off之后的语句将在综合过程中被跳过,直到translate_on出现。
  Translate_off/translate_on常用于在综合时自动屏蔽仿真需要的语句。以下是一个使用translate_off/translate_on的例子:
    //synthesis translate_off
      `define SIM_ON
    //synthesis translate_on
(2)Syn_black_box Directive
  Syn_black_box指令用来将特定模块当成黑盒综合。不论该模块内容是否为空,但要求模块接口已经定义好。
(3)Syn_keep/syn_preserve/syn_noprune Directive
  Syn_preserve用来保留寄存器,综合工具可能优化掉同样输入或扇出为0的寄存器,使用syn_preserve可以保留它们。
  Syn_keep用来保留连线或组合逻辑。
  Syn_noprune用来保留一个black box,如果一个black box的输出扇出为0,则该黑盒可能会被优化掉,使用syn_noprune可以保护它不被优化掉。
(4)Syn_useioff Attribute (Technology related)
  Syn_useioff attribute用来将输入输出寄存器置入FPGA的IO寄存器。它可以对输入输出管脚、输出寄存器或工程的顶层设置。
  Syn_useioff attribute和工艺相关性较大,使用时需确认所用FPGA器件是否支持该属性。同时,该属性只是“尽力而为”,并不能保证最终结果一定符合设计者意图,强烈建议最终实现后在ISE/Quartus II中检查确认。
(5)Syn_probe Attribute
  Syn_probe attribute 可以用来方便测试。对一个内部寄存器使用syn_probe后,它在综合出的网表中成为顶层端口。若不使用该属性,则可能需要逐级修改设计文件(HDL代码)将内部寄存器连接到顶层。

FPGA综合工具--Synplify Pro的常用选项及命令的更多相关文章

  1. Linux centos7 rsync工具介绍、rsync常用选项、rsync通过ssh同步

    一.rsync工具介绍 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync.rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync ...

  2. rsync工具介绍 rsync常用选项 rsync通过ssh同步

    linux文件同步工具-rsync [root@centos7 tmp]# yum install -y rsync rsync可以增量的同步,只同步变更的文件 把/etc/passwd 同步到/tm ...

  3. rsync工具、rsync常用选项、以及rsync通过ssh同步 使用介绍

    第8周5月14日任务 课程内容: 10.28 rsync工具介绍10.29/10.30 rsync常用选项10.31 rsync通过ssh同步 10.28 rsync工具介绍 rsync是一个同步的工 ...

  4. curl常用选项详解

    curl常用选项详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 又是下班的时间了,让我们一起来学习一下今天的Linux命令吧~我一半只把自己常用的参数列出来,其他的有但是我们几 ...

  5. FPGA综合优化

    1 速度和面积 在全面优化水平将达到速度和面积RTL要利用逻辑拓扑的优势. 供FPGA由于在后端而言缺乏知识,门级优化.普通情况下更高的速度要求更高的并行性以及更大的面积,可是在某些特殊情况下并非这样 ...

  6. FPGA开发工具套餐搭配推荐及软件链接 (更新于2020.03.16)

    一.Xilinx(全球FPGA市场份额最大的公司,其发展动态往往也代表着整个FPGA行业的动态) (1) Xilinx官方软件下载地址链接: https://china.xilinx.com/supp ...

  7. zip命令的常用选项

    zip命令的常用选项 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 大家都知道,在linux上一切皆文件,在实际生产环境中,如果我们需要部署一些系统的服务,我们会将一些软件包提前下 ...

  8. MySQL Backup mysqldump 常用选项与主要用法

    The mysqldump client utility performs logical backups, producing a set of SQL statements that can be ...

  9. Hotspot JVM的常用选项

    Hotspot JVM的常用选项 选项的分类 Hotspot JVM提供以下三大类选项: 1. 标准选项:这类选项的功能是很稳定的,在后续版本中也不太会发生变化.运行java或者java -help可 ...

随机推荐

  1. web安全之sqlload_file()和into outfile()

    load_file() 条件:要有file_priv权限 知道文件的绝对路径 能使用union 对web目录有读权限 如果过滤啦单引号,则可以将函数中的字符进行hex编码 步骤: 1.读/etc/in ...

  2. PHPMyAdmin弱口令猜解【Python脚本】

    PHPMyAdmin弱口令猜解 测试截图: 代码片段 #! /usr/bin/env python # _*_ coding:utf-8 _*_ import requests import time ...

  3. iOS分析UI利器——Reveal及简单破解方法

    Reveal作为分析APP UI的利器确实非常好用,用来查看任意UI布局也很方便 一.模拟器进行分析 1.打开Reveal(http://revealapp.com下载) 2.打开Xcode 3.Re ...

  4. java常用IO流数据流小结

      类名 常用方法 说明 输入流 InputStream int read(); 只能读字节流,虽然返回值是int,但只有低8位起作用. DataInputStream Type readType() ...

  5. 数据获取以及处理Beta版本展示

    产品描述 这个产品的目的是为了学霸网站提供后台数据获取以及处理操作.在alpha阶段基本调通的基础至上,我们希望在bate版本中加入对于问答对的处理,图片的获取等功能. 预期目标 在alpha阶段,我 ...

  6. alpha 发布评论

    1.飞天小女警:礼物挑选小工具. 这一组的项目是个人最为感兴趣的,核心功能的实现比较有实际意义,希望所能挑选的礼物范围尽量足够大,界面期待完善后的效果. 2.nice!:约跑app.这一款面向喜爱运动 ...

  7. tomcat7 Could not load the Tomcat server configuration at /Servers/Tomcat v7.0 Server at localhost-config. The configuration may be corrupt or incomplete

    参考连接: http://lucasterdev.altervista.org/wordpress/2012/05/12/could-not-load-the-tomcat-server-config ...

  8. 学C日志

    学C历程 这里记录的都是笔记 忘记了好回头看看~ 提示 :如果在双击自己编译的程序运行时一下就消失不见了 可以在程序代码末尾加上 system("pause"); 程序就会等待到输 ...

  9. 闪回恢复区大小不够。报ORA-19809、ORA-19804

    问题: 闪回恢复区大小不够,rman默认备份路径报错.RMAN> backup database;Starting backup at 01-DEC-14using target databas ...

  10. cxxnet在windows下配置遇到的问题

    I compiled the dmlc-core and rabbit. When I compile the new version of CXXNET, there are compile err ...