1、Synplify教程内容一、什么是综合二、Synplify pro综合综合三、基本概念四、用户界面五、基本工程流程什么是综合?设计描述高层次描述:对整个系统的数学模型描述,它试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现系统设计中存在的问题,此时考虑更多的是系统结构和工作过程能够达到设计规格的要求,而与具体的工艺和器件无关逻辑描述:对设计进行RTL级描述,导出逻辑表达式,并用功能仿真工具进行仿真门级描述:设计的门级实现,相当于系统的逻辑原理图物理描述:或称版图描述,ASIC设计中表现为GDSII 文件综合指不同设计描述之间的转换IC设计中的综合设计中的综合 ICIC设计中的综合设计中
2、的综合高层次综合:将系统算法层的行为描述转化为寄存器传输层的结构描述逻辑综合:将寄存器传输层的的结构描述转化为逻辑层的结构描述,以及将逻辑层的结构描述转化为电路的结构描述物理综合:将系统电路层的结构描述转化为版图层的物理描述综合约束综合约束设计所期望达到的性能和面积的目标,在综合实现阶段附加约束,是为了便于控制综合实现过程,使设计满足运行速度,引脚位置等方面的要求附加合理的约束达到面积,速度,性能的良好折中约束原则面积和速度是设计效果最终的评定标准,在两者冲突时,采用速度优先二二 Synplify proSynplify pro综合综合FPGA的综合的综合针对具体的针对具体的FPGA器件,将器
3、件,将RTL级的设计描述转化成门级描述级的设计描述转化成门级描述-Synthesis=Translation+Optimization+Mapping 对对 HDL源代码进行编译与逻辑层次上的优化,消除冗余逻辑源代码进行编译与逻辑层次上的优化,消除冗余逻辑对编译的结果进行逻辑映射与结构层次上的优化,生成逻辑网对编译的结果进行逻辑映射与结构层次上的优化,生成逻辑网表表特点特点综合速度快综合速度快综合效果比较好综合效果比较好Synplify与与SynplifyproSynplify简装版,后者包含了前者所有功能简装版,后者包含了前者所有功能综合原理和机制完全相同综合原理和机制完全相同三、基本概念1
4、 综合2 工程文件3 脚本4 约束文件5 宏库6 属性包综合综合Synthesis,简单地说就是将HDL代码转化为门级网表的过程,Synplify 对电路的综合包括三个步骤表示如下:1 HDL compilation:把HDL的描述编译成已知的结构元素2 Optimization:运用一些算法进行面积优化和性能优化,使设计在满足给定性能约束的前提下,面积尽可能的小。这里Synplify进行的是基本的优化与具体的目标器件技术无关3 Technology mapping:将设计映射到指定厂家的特定器件上,针对目标器件结构优化,生成作为布局布线工具输入的网表工程文件工程文件工程文件*.prj 以tc
5、l 的格式保存以下信息设计文件约束文件综合选项的设置情况等Tcl 脚本脚本Tcl Tool Command Language 是一种非常流行的工业标准批处理描述语言常用作软件应用的控制应用Synplify 的Tcl script 文件设计者可以用批处理命令的形式执行一个综合也可以一次执行同一设计多个综合尝试不同的器件不同的时延目标不同的约束条件Synplify 的script 文件以*.tcl 保存约束文件约束文件约束文件采用Tcl,以(*.sdc)保存用来提供设计者定义的时间约束、综合属性、供应商定义的属性等。约束文件既可以通过SCOPE创建编辑,也可以使用正文编辑器创建编辑。可被添加到在工
6、程窗口的代码菜单中,也可以被Tcl script 文件调用。宏库宏库Synplify 在它内建的宏库中提供了由供应商给出的宏模块比如一些门电路计数器寄存器I/O模块等你可以把这些宏模块直接例化到你的设计中去属性包属性包Synplify为VHDL提供了一个属性包,在Synplify_install_dir/lib/vhd/synattr.vhd。内容有时间约束,如对黑匣子的时间约束,供应商提供的一些属性,还有一些综合属性以帮助你实现你的综合目的。使用时只需在VHDL源文件的开头加入以下属性包调用语句library synplify;use synplify.attributes.all;四、用户
7、界面五、工程流程1)Create Project2)Add Input Files3)Create or Edit ImplementationPick DeviceGlobal Clock Frequency4)Souce check5)Set Constaint file and optimization6)Click on the Button7)View/Analyze Results and export files1 创建工程使用project wizard工程向导1)启用工程向导工程名2)指定工程名称和路径3)添加工程文件1 创建工程-使用工具栏快捷按钮1)方法一、点击File-
8、New 方法二方法三2)添加文件2 源代码错误检查包括两个层次语法错误检查综合错误检查推荐在代码调试阶段使用代码错误检查工具,及时发现问题综合检查3 使用rtl观察编译结果执行 run/compile only命令4 使用scope设计综合约束文件或单击 按钮SCOPE窗口1)Clock定义一个信号作为时钟Enable 标志约束是否生效Clock 说明时钟信号名Value 说明时钟的数值单位为Mhz或nsUnits 说明Value一栏的单位Mhz或nsDuty cycle 说明时钟的占空比单位是ns或%Units 说明时钟的占空比的单位ns或%Improve 希望改善由这个时钟控制的寄存器的路
9、径延迟的数量 这个数值可以根据Synplify的时间报告中关于相关寄存器的路径延迟的负裕量给出这是一个高级用户选项Route 希望改善由这个时钟控制的寄存器的路径延迟的数量 与Improve有所不同的是这一栏的数值应填入布局布线工具的时间报告与Synplify的时间报告相差的数值这也是高级用户选项Improve和Route可以同时使用Units 说明Improve和Route选项的单位只能是nsComments 允许你加入一些注释2)Clock to Clock说明不同时钟间沿到沿的延迟,可以用来定义不同时钟控制的触发器之间的最大允许延迟说明一条时钟间的False Path 或是描述一个不对称
10、占空情况的时钟Clock1 说明第一个时钟的名字Edge1 说明是第一个时钟的上升或下降沿Clock2 说明第二个时钟的名字Edge2 说明是第二个时钟的上升或下降沿Value 说明两个沿之间的延迟值或false false选项指定两个沿之间的路径将被被忽略3)Input/Output建立FPGA的I/O端口与外部环境界面的模型,缺省的FPGA外部延迟为0 Port 说明端口名Type 说明端口类型Input 或 OutputValue Improve Route等与前面的相同或类似4)Registers这个约束的目的是按照给定的时间缩短进入一个寄存器或由其输出的路径延迟Type 说明是输入路
11、径还是输出路径Object 说明指定寄存器的名字其他如Improve Route Units等与前相同或类似5 Multicycle Paths说明通过寄存器的多时钟周期路径通过这项约束你可以为输入或由一个寄存器输出的或是通过一条连线net 的所有路径添加额外的时钟周期以放宽时间约束Type 说明路径是输入或输出指定的端口或寄存器或连线Port/Register/Net 说明指定路径时依据的端口或寄存器名Value 说明为该路径提供的全部时钟周期的总数必须是整数Units 说明Value的单位只能是个周期其他与前相同或类似6.False Path定义在时间分析或优化忽略的路径其中Port/Re
12、gister/Net Type等与前相同或类似8.Attribute在这里你可以说明设计属性其中Object栏和Attribute栏的下拉式菜单是同步的如果你在Object栏的下拉式菜单里选定一个对象则Attribute栏的下拉式菜单中只显示可以施加于该对象的属性反之亦然Object Filter 说明属性施加对象的类型你可以用这一栏筛选和选择对象Object 说明施加属性的对象名Attribute 说明施加的属性Value 说明所施加属性的值Val Type 说明属性值的正确类型Description 包含关于该属性的一个简短描述其他与前相同或类似9.Other这一栏是为了让高级用户输入新近
13、支持的约束文件命令这些命令优化和时间分析并不支持的但是他们会被作为约束传递给布局布线工具4 设置综合优化参数(1)器件选型可以设置最大扇出系数缺省是500根据该工程所属模块是否和片外有信号联系选中或者不选中Disable I/O insert 如果选中则告诉synplify不要为输入输出信号加buf 缺省不选中设计采用流水(2)优化参数选项在综合过程中启动有限状态机编译器对设计中的状态机进行优化选中Resource Sharing 选项则启动资源共享可以用synplify内置的状态机浏览器观察状态机的各种属性启动流水Pipelining将较大的组合逻辑用寄存器分割成若干较小的逻辑,减少从输入到
14、输出的时延自动优化乘法器,ROM等结构,提高工作频率Retiming在不改变逻辑功能的前提下,自动用寄存器分割组合逻辑,在组合电路中插入平衡时延,提高芯片工作频率本质是寄存器在宏观上的移动,不影响整体的寄存器级数Retiming的功能比Pipelining更强大,选定了Retiming就一定会自动选上Pipelining时序优化工具RetimingRetiming和和PipeliningPipelining(3)综合约束文件选项(4)综合结果存储必须选中此项(5)时序报告选项(6)语言参数选项Synplify把最后编译的module作为顶层设计故把你所要的顶层设计文件用左键拖拉到源文件菜单的末
15、尾处或者点击Impl Options”按钮在verilog 属性页中设置顶层模块的名称5 点击run 进行综合6 分析综合结果HDL Analyst是synplify提供给设计者查看结果提高设计速度特性和优化面积的强有力的层次结构可视化图形工具。HDL Analyst包含两个原理图视窗RTL视窗RTL View 和目标技术视窗Technology ViewRTL视窗显示的是高层的与目标技术无关的原理图是对编译结果的可视化显示。Technology View目标技术视窗提供的是相对低层的、特定厂家器件实现的原理图,是对映射结果的可视化显示,它显示的基本元是与特定厂家器件技术有关的,诸如查找表、级
16、联和进位链、多路器、触发器等等。在设计者把他的设计映射到一个器件后HDL Analyst自动生成层次化的RTL级和基本门级网表用HDL Analyst 打开你的设计后你就可以在你的源代码与你的逻辑图之间进行交叉索引cross_probe 了你可以查看源代码中一段代码编译或映射后产生的结果是否和预期相符也可以查看图中关键路径对应的是那一段源代码以做修改正确理解关键路径上的时间延迟显示信息如 out0(dfm7a),delay:12.9 ns,slack:-10.5ns 表示路径延迟累积到此寄存器dfm7a 对应设计中的out0 为12.9ns 到此已超出时间要求10.5ns查看综合报表 综合报表所含的信息基本编译信息有限状态机编译信息时序约束信息总体性能概括(Performance Summary)时钟参数信息(Clock Relationships)输入输出引脚信息(Input Ports and Output Ports)较差时钟路径的起点和终点信息(Starting Points and Ending Points with Worst Slack)组合电路时序优化信息综合频率信息面积信息(资源消耗信息)
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。