技巧1、XST 首要参阅资料:XST User Guide (ISE 装置目录doc 中的xst.pdf)
技巧2、 辅佐参阅资料:WP231 – HDL Coding PracTIces to Accelerate Design Performance
技巧3、特别注意之一:请给XST 加时序束缚。
一般咱们会为工程增加UCF 束缚指定时序要求和管脚束缚。可是UCF 束缚是给MAP,PAR 等完成运用的,归纳东西XST 并不能感知体系的时序要求。而为XST 增加XCF 束缚却是使完成成果具有最高频率的要害。其原因是清楚明晰的:完成东西只能在归纳网表的基础上布局布线,而归纳东西却能够依据要求调整归纳网表,使完成东西更简单满意时序要求。假如不将时序方针奉告归纳器,将导致咱们对功能的要求得不到表现。
XCF束缚语法与UCF 相似并且在XST User Guide 中有具体描述。其实常用的Period、Offest等束缚和UCF的语法是如出一辙的,能够直接运用在XCF中。
给规划增加XCF 束缚的办法是Synthesize – XST –> 右键 –> Synthesis Constraint File = 指定途径
技巧4、特别注意之二:细心观察归纳陈述中的Warning。切记要细心检查归纳陈述中的一切Warning并承认是否是能够安全疏忽的。归纳器发生Error会使东西停止工作,可是Warning 常常会被用户疏忽。其实Waning能够提示许多潜在的逻辑问题,比方某些信号声明晰,被运用了,却没有被赋值,或许归纳器发现了Latch但却不是希望的成果等等。
技巧5、 常用选项之一:keep_hierarchy – 坚持层次。在初始规划/debug 的时分很有用。XST依据层次来归纳,不打破层次优化,一切的寄存器姓名都以姓名摆放,UCF 束缚能够很便利得找到需求束缚的目标。假如挑选soft,则在归纳时坚持层次,而在map 时东西会打破层次来优化,可是instance 的姓名仍是保存的。
技巧6、常用选项之二:register_duplicaTIon + max_fanout + equivalent_register_removal + resource_sharing – 答应主动仿制寄存器,设置最大扇出,制止资源共享。当TIming不满意时运用仿制寄存器的办法一般能改进一些瓶颈。归纳器为了节约面积而做出的某些优化或许导致对时序晦气,因而封闭equivalent_register_removal 和resource_sharing或许能够改进时序。
技巧7、常用选项之三:Add IO Buffers – 主动刺进缓冲器。当咱们的规划作为顶层运用时,一般让东西主动刺进IO buffer ;当需求将规划作为模块刺进其他规划中时,就需求制止主动刺进IO Buffer。
技巧8、常用选项之四: Number of Clock Buffers 和 buffer_type 束缚: 当归纳成果中的BUFG 不是像幻想中一样时,咱们能够经过下面两种办法来处理:
– 用buffer_type 束缚对该信号所运用的Buffer类型界说。具体运用办法在XST User Guide
– 手动刺进BUFG,然后设置答应运用BUFG的数量,那么手动刺进的将具有高优先级而先占用了BUFG,东西就不会再主动插BUFG 了。
技巧9、 BlackBox :调用其它现已归纳好的网表需求运用BlackBox。BlackBox说白了便是只要端口阐明的HDL文件。更多的BlackBox TIp请参阅我的博客( 注:为RickySu 的博客)。
技巧10、XST的指令行形式:XST支撑运用指令行形式进行批量操作。
指令行的XST 支撑两种形式:
Shell 办法 – 在cmd下输入xst,然后在xst的shell 环境中一条一条打指令;
Script 办法 – 在cmd下用xst -ifn script.scr运转script.scr 内的指令,或许在xst shell 顶用script指令调用script.scr中的内容。在此之前,会需求先准备好compile_list.prj。EDK 其实就运用这种办法调用XST。更具体的语法参阅XST User Guide。
技巧11、要检查归纳后的网表,除了XST自带的RTL Schematic东西和Technology Schematic东西,还能够运用PlanAhead。他的显现/ 查找才能更为强壮,并且他会先兼并一切的归纳网表,不会由于某个模块式预先归纳好的而不能观察内部情况。