- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Unconstrained Paths解决办法
用TimeQuest对DAC7512控制器进行时序分析?
???在对某个对象下时序约束的时候,首先要能正确识别它,TimeQuest会对设计中各组成部分根据属性进行归类,我们在下时序约束的时候,可以通过命令查找对应类别的某个对象。
???? TimeQuest对设计中各组成部分的归类主要有cells,pins,nets和ports几种。寄存器,门电路等为cells;设计的输入输出端口为ports;寄存器,门电路等的输入输出引脚为pins;ports和pins之间的连线为nets。具体可以参照下图(此图出自Altera Time Quest的使用说明)。
????? 下面我们按照本文第二部分用TimeQuest做时序分析的基本操作流程所描述的流程对DAC7512控制器进行时序分析。
?????? 建立和预编译项目的部分相对简单,涉及到的也只是QuartusII的一些基本操作,这里我们就不再做具体的叙述。主要介绍如何向项目中添加时序约束和如何进行时序验证。首先建立一个名称与项目top层名字一致的sdc文件,然后按照下面的步骤添加时序约束。
1. 创建时钟
???? 添加时序约束的第一步就是创建时钟。为了确保STA结果的准确性,必须定义设计中所有的时钟,并指定时钟所有相关参数。TimeQuest支持下面的时钟类型:
a) 基准时钟(Base clocks)
b) 虚拟时钟(Virtual clocks)
c) 多频率时钟(Multifrequency clocks)
d) 生成时钟(Generated clocks)
我们在添加时序约束的时候,首先创建时钟的原因是后面其它的时序约束都要参考相关的时钟的。
基准时钟:
???? 基准时钟是输入到FPGA中的原始输入时钟。与PLLs输出的时钟不同,基准时钟一般是由片外晶振产生的。定义基准时钟的原因是其他生成时钟和时序约束通常都以基准时钟为参照。
??? 很明显,在DAC7512控制器中,CLK_IN是基准时钟。我们用下面的命令来创建这个基准时钟:
create_clock -name CLK_IN -period 40 -waveform {0 20} [get_ports {CLK_IN}]
??? 其中,create_clock是创建时钟的命令,后面是命令的各种选项。其中-name CLK_IN选项给出了时钟的名字,即CLK_IN。-period 40给出了时钟的周期,即40ns。-waveform {0 20}给出了时钟的占空比,即50/50。最后的[get_ports {CLK_IN}] 是嵌套的tcl命令,给出了CLK_IN对应的port,实际上也就是CLK_IN的输入引脚。
??? 在sdc文件里添加上述命令后,在quartusII里编译设计,然后通过tools – TimeQuest Time Aanlyzer命令打开TimeQuest。在TimeQuest的Tasks窗口,找到Report Clocks,双击之,TimeQuest就会在右边主窗口给出设计中已成功添加的时钟信息。如下图所示,可以看到CLK_IN,其类型为基准时钟,周期为40ns,频率为25MHz,targets项为CLK_IN,即表示这个时钟是连接在CLK_IN端口上的。这说明上面create_clock的命令已经在设计中正确创建了时钟CLK_IN。
?????? 实际上对于create_clock命令,我们可以通过quartus II的帮助系统(/current/),查找它的语法。在QuartusII的帮助里,可以查找到:
Syntax create_clock?[-h | -help] [-long_help] [-add] [-nameclock_name] -period?value?[-waveform?edge_list] [targets] ??? 另外,帮助系统里有很详尽的关于该命令的描述,并且给出了各种使用的范例。不仅仅是这一个命令,所有的命令都可以在帮助系统里找到。如果看到一个陌生的命令,或者不知道命令该如何使用,那么最好的办法就是在帮助系统里查找该命令。
PLL时钟:
???? 上面我们创建了基准时钟。下面我们创建PLL输出的时钟。
???? 在Altera的FPGA中,PLL电路是通过ALTPLL的IP库被添加到设计中的。下图是一个典型的ALTPLL的结构图。
??????? 从图上可以看到,当我们选定了基准时钟和PLL的参数以后,PLL的输出c0和c1的参数就随之确定了。所以在QuartusII环境下,可以通过一个简单的命令让软件自动生成PLL输出的时钟的时序约束。
derive_pll_clocks
???? 这个命令会自动创建PLL输出的C0和C1的相关时序约束。同样的,在s
您可能关注的文档
- Speculative Trading and Stock Prices An Analysis of Chinese AB Share Premia.pdf
- Spend__cost__pay___take区别及练习题.doc
- Spectral Dynamics of the Velocity Gradient Field in Restricted Flows.pdf
- Spidering and Filtering Web Pages for Vertical Search Engines Porter, M.F. “An algorithm f.pdf
- Spinfield Interaction Effects and Loop Dynamics in AdSCFT Duality.pdf
- splunk Search 应用技巧(多图查看).doc
- splatform平台程序设计.docx
- Springback Simulation and Analysis of Strong Anisotropy Sheet Metals in Uchannel Bending Process.pdf
- SpringMVCHandlerInterceptorAdapter的使用By_gnksguybb.doc
- SpringMvc注解开发实例教程.doc
文档评论(0)