基本介绍
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界面操作
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
命令行运行
synplify_pro -batch top.prj
或者打开GUI
synplify_pro top.prj
Tcl脚本运行
如下tcl脚本:
#-- 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
运行脚本:
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;
可以显示该路径的延迟信息,关键路径等
没有回复内容