应该对器件IO进行锁定,所以引脚不会随着不同编译而随意改变。 速度优化主要是时序优化。 1.1时序优化实例:同步电路时序分析 出现时序违规(slack为负),按照以下提示进行分析: (1)找到From和To下的节点,分析其类型。可以结合两个节点分析,常常可以帮助理解问题出在哪里。比如这两个节点是位于两个模块之间的接口还是位于一堆组合逻辑汇总。有时候,只需要解决少量有时序问题的路径,就可以同时解决一堆其他路径的时序问题。 (2)找到From和To节点中自己所认识的节点。通过这些节点,可以知道哪些源代码或逻辑结构出现了问题。这样比较容易理解出问题的逻辑是什么以及如何解决出现的时序问题。 (3)在解决某个路径的时序问题时,可能会不经意解决其他路径上的时序问题。因为编译器总是试图对所有路径进行优化,假如能提高修改代码或约束来解决某个路径的问题,那么久有利于释放编译器,使其将更多精力放在其他有时序问题的路径上。
使用物理综合里的寄存器重定时选项进行优化。激怒采暖期重定时将移动关键路径上的寄存器位置来提升路径时序性能。虽然这个优化选项会增加编译时间,但是可能会同时解决设计中其他时序问题。 使用寄存器重定时时,可以在QuartusII软件的Assignments菜单下选择seetings命令,在弹出的窗口中找到物理综合优化,使能寄存器重定时优化选项,同时将其Effort level设置为Extra,单击ok后重新编译工程。 1.2异步电路及时序例外分析 在探究建立和保持时序问题之前应该首要解决恢复和移除(Recovery/Removal)时序问题。 恢复时间有点类似建立时间,只是建立时间针对的是一个时钟沿,而恢复时间针对于异步控制信号的置位。 时序分析工具默认建立时间关系总是分析启动时钟和锁存时钟最靠近且锁存时钟沿时间减启动时钟沿时间大于0的两个时钟沿。 1.3利用PLL对设计进行时序约束