synplify | 基础操作

2021-10-11 17:07:31 浏览数 (2)

基本介绍

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;

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

0 人点赞