前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >synplify | 基础操作

synplify | 基础操作

作者头像
数字芯片社区
发布2021-10-11 17:07:31
1.6K0
发布2021-10-11 17:07:31
举报
文章被收录于专栏:数字芯片数字芯片

基本介绍

Synplify 和 Synplify Pro 是 synopsys提供的专门针对FPGA和CPLD实现的逻辑综合工具;

  • 该软件提供的Symbolic FSM Compiler 是专门支持有效状态机优化的内嵌工具
  • SCOPE是管理设计约束与属性
  • 图形化的分析和cross_probe工具HDL Analyst
  • Synplify Pro还增加提供了FSM Explorer 可以在尝试不同的状态机优化方案后选定最佳结果,以及FSM viewer 用于查看状态机的详细迁移状况;

Synplify 对电路的综合包括三个步骤 表示如下:

  • 1 HDL compilation 把HDL的描述编译成已知的结构元素;
  • 2 Optimization 运用一些算法进行面积优化和性能优化,使设计在满足给定性能约束的前提下,面积尽可能的小,这里 Synplify进行的是基本的优化 与具体的目标器件技术无关;
  • 3 Technology mapping 将设计映射到指定厂家的特定器件上,针对目标器件结构优化生成作为布局布线工具输入的网表;

主要文件包括:

  • 工程文件.prj 以tcl 的格式保存 设计文件、约束文件、综合选项的设置情况等;
  • Tcl 脚本:Synplify 的script 文件以 .tcl 保存;
  • 约束文件:约束文件采用Tcl 以 .fdc 保存 用来提供设计者定义的时间约束,综合属性,供应商定义的属性等;

操作指南

打开GUI界面操作

代码语言:javascript
复制
synplify &

添加源代码文件 约束文件等,Synplify把最后编译的module作为顶层设计,故把你所要的顶层设 计文件拉到源文件末尾处:

点击Impl option, 出现属性页对话框 打开 Device 属性页,分别设置器件厂家、器件型号、 速度级别和封装信息;

点击 options 属性页作进一步设置:
  • 选中Symbolic FSM Compiler 即告诉synplify在综合过程中启动有限状态机编译器,对设计中的状态机进行优化;
  • 选中Resource Sharing 选项,则启动资源共享 一般说来,设置了这个选项之后,设计的最高工作频率会低于不选中的情况,但是资源则比不选中要节约好多,在设计能够满足时钟频率要求的情况下,一般选中以节省资源;
  • 选中 Use FSM Explorer Data 选项即可以用synplify内置的状态机浏览器观察状态机的各种属性;
  • 选中 Pipelining 即启动流水,在高速时钟设计中 如果其他措施都不能达到目标频率 则最好选中此项;

点击 Implementation Results 属性页,设置综合结果放置的目录,综合结果的文件名称, 同时一定要将 Write Vendor Constraint File选项选中

做完所有设置之后 回到主窗口 点击 RUN 按钮 开始综合即可;

工程文件运行操作

以Synplify Pro为例,与Synplify操作一样;

  • 启动Synplify pro工程窗口
  • 设置工程选项
  • 设置好工程文件:源代码文件、约束文件、Tcl scripts文件
  • 保存工程文件.prj

命令行运行

代码语言:javascript
复制
synplify_pro -batch top.prj

或者打开GUI

代码语言:javascript
复制
synplify_pro  top.prj

Tcl脚本运行

如下tcl脚本:

代码语言:javascript
复制
#-- Synplicity, Inc.
#-- Version Synplify Pro
 
#create a new project
##工程名命名为top
project -new top.prj         
 
#add_file options
add_file -verilog "../rtl/simple_fsm.v"
add_file -fpga_constraint "top.fdc"
 
#implementation: "rev_1"
impl -add rev_1 -type fpga
 
#device options,设计中使用的xilinx的K7系列
set_option -technology Kintex7
set_option -part XC7K410T
set_option -package FFG900             
set_option -speed_grade -2L
set_option -part_companion ""
 
#compilation/mapping options
set_option -use_fsm_explorer 1
 #顶层模块
set_option -top_module "simple_fsm"  
#map options
#
#外部晶振
set_option -frequency 50.000000  
set_option -auto_constrain_io 1
set_option -resolve_multiple_driver 1
set_option -srs_instrumentation 1
set_option -RWCheckOnRam 0
set_option -run_prop_extract 0
set_option -maxfan 10000
set_option -disable_io_insertion 0
set_option -pipe 1
set_option -update_models_cp 0
set_option -verification_mode 0
set_option -retiming 1
set_option -no_sequential_opt 0
set_option -fix_gated_and_generated_clocks 1
set_option -enable_prepacking 1

 #指定布局布线的工具,本设计中指定vivado
set_option -use_vivado 1         
# sequential_optimization_options
set_option -symbolic_fsm_compiler 1
 
# Compiler Options
set_option -compiler_compatible 0
set_option -resource_sharing 1
set_option -multi_file_compilation_unit 1
 
#automatic place and route (vendor) options
set_option -write_apr_constraint 1
 
#implementation attributes
set_option -vlog_std v2001
set_option -num_critical_paths 10
set_option -num_startend_points 10
set_option -project_relative_includes 1
set_option -hdl_define -set FPGA

#设置源码路径
set_option -include_path "./rtl/"   
#simulation options
set_option -write_verilog 1
set_option -write_vhdl 0
 
#VIF options
set_option -write_vif 0
 
#set result format/file last
project -result_file "top.edf"
project -log_file "top.log"
 
#save run and close project
project -save top.prj
project -run
project -close top.prj

运行脚本:

代码语言:javascript
复制
synplify_pro -batch synplify.tcl

生成的报告和信息

view log

Log 文件

Synplify将所有综合时产生的报告和信息写入Log文件,文件名project_name.srr ;

Log文件包括

  • 被编译的文件列表
  • 语法或综合的warnings,errors,和Notes
  • 用户的综合选项设定列表
  • 如果综合时打开了Symbolic FSM Compiler 则会显示抽取出的状态机信息,包括可到达的状态列表;
  • 时间报告
  • 资源使用报告
  • Net Buffering报告
时间报告

包含在Log文件的性能总结Perference Summary部分,帮助分析关键路径,调整设计,增加约束以达到面积或速度目标;

时间报告包括

  • 所有时钟的性能总结
  • 所有I/O端口的界面信息,包括用户的约束,实际的到达时间和要求值以及裕量;
  • 每一个时钟的详细时间报告包括:一个所有在最坏时间裕量一定范围内的路径的起点、终点列表,最多报告10个起点和10终点;一个关键路径报告,包括前面列表报告的所有起点所在的路径,在每一个报告的末尾是该关键路径需要的建立时间,如果时钟频率达到要求,只报告一条关键路径;
资源使用报告
  • 设计使用的单元的总数,组合逻辑,时序逻辑分别占用的单元的总数;
  • 时钟驱动和I/O单元的数量
  • 设计中每一个使用单元类型的详细报告
  • Net Buffering报告
Net Buffering报告
  • 被插入缓冲或数据源被复制的Nets
  • 上面那些nets被分成的段数
  • 插入的缓冲的总数
  • 复制数据源增加的寄存器 查找表或其他类型单元的数量

HDL Analyst分析和调试设计

HDL Analyst是synplify提供给设计者查看结果, 提高设计速度特性和优化面积的强有力的层 次结构可视化图形工具;

HDL Analyst包含两个原理图视窗,RTL视窗RTL View和目标技术视窗Technology View;

可以显示该路径的延迟信息,关键路径等

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数字ICer 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本介绍
    • Synplify 对电路的综合包括三个步骤 表示如下:
      • 主要文件包括:
      • 操作指南
        • 打开GUI界面操作
          • 点击 options 属性页作进一步设置:
        • 工程文件运行操作
          • Tcl脚本运行
            • 生成的报告和信息
              • view log
                • Log 文件
                • 时间报告
                • 资源使用报告
                • Net Buffering报告
            • HDL Analyst分析和调试设计
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档