您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Vivado使用教程
目录1.Vivado软件概述2.Vivado软件使用基本流程3.Vivado约束设计基本流程4.Vivado开发的注意事项附录1:SDC介绍附录2:ISE时序约束设计2目录1.Vivado软件概述2.Vivado软件使用基本流程3.Vivado约束设计基本流程4.Vivado开发的注意事项附录1:SDC介绍附录2:ISE时序约束设计3Vivado软件概述Vivado的发展:Vivado从2008年5月开始研发;2011年4月开始进行超过100个试用用户的β测试;目前版本号为2014.2。Vivado将关注点集中在C2H、高层次综合等技术方面,仿真内核的性能得到优化,宣称其仿真速度是ISE的3倍。如果使用硬件联合仿真,可以将速度提高100倍。官方宣称Vivado比竞争对手速度快4倍,而消耗的资源是对手的50%。4Vivado软件概述Vivado与ISE相比,发生的改进:1.数据格式更统一;2.contraint文件采用了SDC格式,兼容业界标准;3.Vivado的ECO和TCL脚本功能更强大;4.推出了针对C开发的HighLevelSynthesis和针对DSP的SystemGenerator;支持的器件系列有:Virtex-7\Kintex-7\Artix-7\Zynq7000VirtexUltraScale\KintexUltraScale5Vivado软件概述——Tcl示例(1)对一个flip-flop进行位置更改的ECO:startgroupplace_cell{q_reg[2]}SLICE_X3Y2/C5FFendgroupread_checkpoint-incrementalold_post_route.dcpreport_incremental_resueroute_design6Vivado软件概述——Tcl示例(2)一个没有建立工程的vivado脚本:#AssembletheDesignSourcefilesread_verilog[glob../src/*.v]read_vhdl[glob../src/*.vhd]read_edif../netlist/black_blox.edfread_xdc../constraint/top.xdc#RunSynthesisandImplementationsynth_design-toptop-partxc7k70tfbg676-2write_checkpoint-forcepost_synth.dcpopt_designplace_designwrite_checkpoint-forcepost_place.dcproute_designwrite_checkpoint-forcepost_route.dcp#GenerateReportsreport_timing_summary-filetiming_summary.rpt.....#GenerateBitFilewrite_bitstream-filetop.bit7Vivado软件概述以SPI模块为例,比较一下两个软件的综合布线后的资源使用情况。该SPI模块用于1431、1451项目中,同时输出两路SPI信号。工程选择的比较芯片为xc7vx485tffg1157-1,时钟设为50MHz。Vivado2014.2的利用率报告:ISE14.7的利用率报告:两者比较:LUTDFFVivado326394ISE3952718Vivado软件概述以FFT为例,比较两个软件的综合布线后的资源使用情况。该FFT核配置为:1024点,13位输入,18位输出,蝶型运算因子18位,选择的比较芯片为XC7K325T-2FFG900,时钟设为250MHz。两种工具软件昀后的资源利用率比较:Vivado会使用较少的LUT,而多用一些DFF。在SLICE中一个LUT对应两个DFF,从整体上看优化了LUT的使用。DFFLUTDSPRAMVivado2014.229,14917,201192276ISE14.725,74621,6731922529目录1.Vivado软件概述2.Vivado软件使用基本流程3.Vivado约束设计基本流程4.Vivado开发的注意事项附录1:SDC介绍附录2:ISE时序约束设计10Vivado软件使用基本流程新建工程的基本流程;导入ISE工程的基本流程及注意事项;IP生成;功能仿真;综合操作;实现操作;生成配置文件。11新建工程的基本流程12新建工程的基本流程ISE14.7新建工程界面Vivado2014.2新建工程界面13新建工程的基本流程——添加资源添加代码、IP、网表等的界面基本相同。14新建工程的基本流程——选择器件15新建工程的基本流程——工程总概16导入ISE工程的基本流程17导入ISE工程的基本流程迁移工程所将发生的变化有:1)使用7系列之前的器件将会被替换成Vivado所默认的对应器件;2)实现步骤将会被重置;3)将采用Vivado默认的策略(包括一些用法、算法、格式规定、优化方法等)4)从2012.2版本开始,Vivado将不再支持UCF文件。所有的UCF将被移入“不支持的约束文件夹”注意:不支持对具有Partition的设计进行转化,默认情况下源文件将无法导入到工程中。18导入ISE工程的基本流程迁移之后将会产生一个报告文档,里面将会列出迁移过程所产生的各种变化,以及各种注意事项。报告文档分为三个部分:1、ISE工程信息汇总2、未导入信息汇总3、导入信息汇总19导入ISE工程的基本流程文档中提到:对于约束文件的导入,UCF文件会被加入到Vivado的工程中,但是被识别为需要手动将其设置为“目标约束文件”,具体方法是:在“source”窗口中,右键单击约束文件,选择“SetTargetUCF”,或者使用Tcl语句set_propertytarget_constrs_filefilenamefileset。实际上在2014.2版本中已经不可这样导入了,UCF文件格式已经被彻底放弃了。20导入ISE工程的基本流程迁移报告对工程操作的几项流程环节都分别进行了汇总,介绍了每个环节所执行的操作和采取的策略。这里将不再采用ISE的各种策略。Vivado的各种策略,可以在“Tools→Options→Strategies”中看到具体内容。可以看出迁移前工程所完成的操作,以及迁移后的状态21导入ISE工程的基本流程Vivado的迁移仍然存在不足,基本上全部的IP需要重新生成,就连DCM的IO名称在两款软件中都有差异,因此迁移工作基本上只对应HDL代码自身而言是平滑的。22IP生成IPCatalog窗口23IP生成生成的IP可以在source→IPsource窗口中对应IP的InstantiationTemplate目录中找到.veo文件,在文件中能够找到instance例化时的模板,节省编辑时间。24功能仿真Vivado提供了类似Modelsim的仿真工具。25功能仿真26功能仿真将需要的观测对象添加到波形窗口后,需要点击对波形复位,然后点击或者重新产生波形。如果修改了代码,则需要点击,重新启动仿真操作。当完成了综合和实现的环节可以对这些环节中产生的网表进行功能和时序上的仿真。这里时序仿真只支持Verilog格式的网表,如果需要可以使用“write_verilog”产生网表。仿真的时间分辨率官方建议是1ps。有些赛灵思原语组件(例如DCM)在功能或时序仿真中都需要1ps的分辨率才能正常工作。27综合操作在FlowNavigator中选择RunSynthesis。如果没有报错的话,会出现下面右侧的对话框。需要手动选择是否打开综合后的输出结果,或者可以直接进行实现环节的操作。28综合操作综合之后可以进行debug的设置,也就是相当于ISE中CDC文件的设置。对于CDC文件,Vivado已经不再支持。关于系统中debug的设置信息,将保存在.xdc文件中。29综合操作30综合操作设置完成后可以在原理图中看到加入的ILA等。31实现操作综合完成之后需要添加约束条件,检查一切正常之后就可以开始实现了。32实现操作实现完成后需要做各种分析报告,具体和ISE基本类似。昀后检查资源利用率的情况。33生成配置文件确认实现环节的结果无误之后,就可以生成位流文件了。34目录1.Vivado软件概述2.Vivado软件使用基本流程3.Vivado约束设计基本流程4.Vivado开发的注意事项附录1:SDC介绍附录2:ISE时序约束设计35Vivado约束设计基本流程当完成综合之后,就可以添加约束了。在Vivado2014.2版本中,原来的UCF文件是无法继续使用的。新的约束文件中所采用的语法格式和ISE中的格式差别较大,而和SDC格式基本相同。36Vivado约束设计基本流程37Vivado约束设计基本流程XDC文件中的时序约束主要包括如下四个部分:CreateClocks;Input/OutputDelays;ClockGroupsandCDC;TimingExceptions38主时钟;create_clock虚拟时钟;create_clock衍生时钟;create_generated_clock时钟不确定性;set_clock_uncertainty输入、输出延迟;set_input_delayset_output_delay时钟组;set_clock_groups错误路径;set_false_path昀大、昀小延迟;set_max_delayset_min_delay多周期路径;set_multicycle_path案例分析;set_case_analysis不分析时序。set_disable_timingVivado约束设计基本流程39Vivado约束设计基本流程设置完毕后一定要记得进行保存,否则这些参数只保存在内存中,一旦关闭工程就全部丢失了。之后需要重新进行综合,进行时序方面的检查。运行ReportingTimingSummary,可以看到目前时序上存在的问题。40Vivado约束设计基本流程Vivado将约束分为时序约束和物理约束。物理约束主要是指管脚的使用。包括管脚的映射关系和电平标准,以及诸如上拉、下拉等的属性参数。可以使用自动分配管脚工具,在“Tools→I/OPlanning”里面可以找到。41Vivado约束设计基本流程对照板卡的具体情况,手动分配管脚。选择“Layout-I/OPlanning”。42Vivado约束设计基本流程ISE:NETreset_nLOC=N2|IOSTANDARD=LVCMOS33;Vivado:set_propertyPACKAGE_PINAF24[get_ports{pll_loc_dat[31]}]set_propertyIOSTANDARDLVCMOS18[get_ports{pll_loc_dat[31]}]。43目录1.Vivado软件概述2.Vivado软件使用基本流程3.Vivado约束设计基本流程4.Vivado开发的注意事项附录1:SDC介绍附录2:ISE时序约束设计44Vivado开发的注意事项脚本使用方面;代码风格方面;资源使用方面;时序约束方面;工作流程方面;器件配置方面。45Vivado使用技巧——脚本使用工程运行脚本的提取可以使用“write_project_tcl”命令。支持一系列针对IP的生成报告和特定格式输出的tcl命令,如“write_verilog”等。使用“write_sdc”时可以加载压缩参数,将产生的约束文件自动进行压缩保存,同时“read_sdc”命令可以直接解压缩读取信息。例如:write_sdc-compres
本文标题:Vivado使用教程
链接地址:https://www.777doc.com/doc-4663144 .html