欢迎来到天天文库
浏览记录
ID:27485284
大小:25.50 KB
页数:4页
时间:2018-12-04
《FPGA实战开发技巧(7).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、FPGA实战开发技巧(7) 技巧1、XST主要参考资料:XSTUserGuide(ISE安装目录doc中的xst.pdf)技巧2、辅助参考资料:WP231-HDLCodingPracTIcestoAccelerateDesignPerformance技巧3、特别注意之一:请给XST加时序约束。 通常我们会为工程添加UCF约束指定时序要求和管脚约束。但是UCF约束是给MAP,PAR等实现使用的,综合工具XST并不能感知系统的时序要求。而为XST添加XCF约束却是使实现结果拥有最高频率的关键。其原因是显而易见的:实现工具只能在综合网表的基础上布
2、局布线,而综合工具却可以根据要求调整综合网表,使实现工具更容易满足时序要求。如果不将时序目标告知综合器,将导致我们对性能的要求得不到体现。 XCF约束语法与UCF类似并且在XSTUserGuide中有详细描述。其实常用的Period、Offest等约束和UCF的语法是一模一样的,可以直接使用在XCF中。 给设计添加XCF约束的方法是Synthesize-XST-->右键-->SynthesisConstraintFile=指定路径 技巧4、特别注意之二:仔细察看综合报告中的Warning。切记要仔细查看综合报告中的所有Warning并确认
3、是否是可以安全忽略的。综合器产生Error会使工具停止工作,但是Warning经常会被用户忽略。其实Waning可以提示很多潜在的逻辑问题,比如某些信号声明了,被使用了,却没有被赋值,或者综合器发现了Latch但却不是期望的结果等等。 技巧5、常用选项之一:keep_hierarchy-保持层次。在初始设计/debug的时候很有用。XST根据层次来综合,不打破层次优化,所有的寄存器名字都以名字排列,UCF约束可以很方便得找到需要约束的对象。如果选择soft,则在综合时保持层次,而在map时工具会打破层次来优化,但是instance的名字还是保
4、留的。 技巧6、常用选项之二:register_duplicaTIon+max_fanout+equivalent_register_removal+resource_sharing-允许自动复制寄存器,设置最大扇出,禁止资源共享。当TIming不满足时使用复制寄存器的方法通常能改善一些瓶颈。综合器为了节省面积而做出的某些优化可能导致对时序不利,因此关闭equivalent_register_removal和resource_sharing可能可以改善时序。 技巧7、常用选项之三:AddIOBuffers-自动插入缓冲器。当我们的设计作为顶
5、层使用时,通常让工具自动插入IObuffer;当需要将设计作为模块插入别的设计中时,就需要禁止自动插入IOBuffer。 技巧8、常用选项之四:NumberofClockBuffers和buffer_type约束:当综合结果中的BUFG不是像想象中一样时,我们可以通过下面两种方法来解决: -用buffer_type约束对该信号所使用的Buffer类型定义。具体使用方法在XSTUserGuide-手动插入BUFG,然后设置允许使用BUFG的数量,那么手动插入的将拥有高优先级而先占用了BUFG,工具就不会再自动插BUFG了。 技巧9、Blac
6、kBox:调用其它已经综合好的网表需要使用BlackBox。BlackBox说白了就是只有端口说明的HDL文件。更多的BlackBoxTIp请参考我的博客(注:为RickySu的博客)。 技巧10、XST的命令行模式:XST支持使用命令行模式进行批量操作。 命令行的XST支持两种模式: Shell方式-在cmd下输入xst,然后在xst的shell环境中一条一条打命令;Script方式-在cmd下用xst-ifnscript.scr运行script.scr内的命令,或者在xstshell中用script命令调用script.scr中的内容
7、。在此之前,会需要先准备好compile_list.prj。EDK其实就使用这种方法调用XST。更详细的语法参考XSTUserGuide。 技巧11、要查看综合后的网表,除了XST自带的RTLSchematic工具和TechnologySchematic工具,还可以使用PlanAhead。他的显示/查找能力更为强大,而且他会先合并所有的综合网表,不会因为某个模块式预先综合好的而不能察看内部状况。
此文档下载收益归作者所有