原创 从Technology Map Viewer分析Clock Setup Slack

2009-2-11 18:39 8191 12 15 分类: FPGA/CPLD

Technology Map Viewer分析Clock Setup Slack<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 


       特权同学对于时序分析也还只是个初学者,前阵子被Quartus IIClassic Timing Analyzar折腾的焦头烂额之际,无意中看到了ripple兄过去写的一些关于TimeQuest的一些博文,可谓受益匪浅。虽然ripple兄只是对Quartus II handbook里关于TimerQuest的基本概念做了一些翻译(当然也对容易混淆的概念做了一些解释),更重要的是ripple兄指明了一个方向,还是先扎扎实实的弄懂基本概念。这不,特权同学本着好记性不如烂笔头的菜鸟思想,把自己的零星感悟一一呈上。


既然要说Clock Setup Slack,那么不得不从最基本的概念说起。简单的说,建立时间Tsu无非是指在时钟的上升沿到来前多久数据必须到达,只有满足这个时间的数据才会被正确锁存。那么Clock Setup Slack就是指建立时间余量,它为正时表示满足建立时间要求,当它为负时表示不满足时序要求。


公式如下:(有三种情况,这里只讨论寄存器到寄存器的建立时序余量,具体大家可以参考http://blog.ednchina.com/riple/24489/message.aspx


Clock Setup Slack Time = Data Required Time – Data Arrival Time


Data Arrival Time = Launch Edge + Clock Network Delay to Source Register + Input Maximum Delay of Pin + Pin-to-Register Delay


Data Required Time = Clock Arrival Time – μtsu


Clock Arrival Time = Latch Edge + Clock Network Delay to Destination Register


       从上面的公式可以知道,建立时间余量=数据需要到达的时间-数据实际到达的时间。换句话说,就是数据实际到达的时间比需要到达的时间早,那么建立时间余量就为正,达到要求,反之亦然。(本文不对公式里的基本概念做太对阐述了,还请感兴趣的朋友看上面给了链接的博文。)


       那么步入主题吧,下面要给出的一个Technology Map Viewer下的视图背景大体是这样的,一个时钟约束为10ns的工程,实际只跑到了91.5MHz,也就是说出现了未满足时序余量要求的路径。而下面就是一个Worst Case Slack的例子。


<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />


点击看大图


       report里可以看到,Data Arribal Time="14".175Data Required Time="13".348,通过上面公式得出结论是slack=-0.827,也就是没有满足时序要求。那么现在就用Technology Map Viewer来看看这个路径为何不满足建立时间的要求。


       先罗列出Data Arrival Path


Total      Incr        RF   Type       Fanout   Location              Element


0.000     0.000                                 launch edge time


3.681     3.681     R                          clock network delay


4.057     0.376            uTco       2     LC_X5_Y5_N8  wr_gene:wr_gene|over_addr[10]


4.057     0.000     RR   CELL      1     LC_X5_Y5_N8      wr_gene|over_addr[10]|regout


6.051     1.994     RR   IC    3     LC_X3_Y5_N0      wr_gene|Add2~144|datab


6.798     0.747     RR   CELL      1     LC_X3_Y5_N0      wr_gene|Add2~144|cout0


6.798     0.000     RR   IC    2     LC_X3_Y5_N1      wr_gene|Add2~134|cin0


6.921     0.123     RR   CELL      1     LC_X3_Y5_N1      wr_gene|Add2~134|cout0


6.921     0.000     RR   IC    2     LC_X3_Y5_N2      wr_gene|Add2~140|cin0


7.044     0.123     RR   CELL      1     LC_X3_Y5_N2      wr_gene|Add2~140|cout0


7.044     0.000     RR   IC    2     LC_X3_Y5_N3      wr_gene|Add2~142|cin0


7.167     0.123     RR   CELL      1     LC_X3_Y5_N3      wr_gene|Add2~142|cout0


7.167     0.000     RR   IC    2     LC_X3_Y5_N4      wr_gene|Add2~138|cin0


7.982     0.815     RR   CELL      1     LC_X3_Y5_N4      wr_gene|Add2~138|combout


9.689     1.707     RR   IC    1     LC_X5_Y5_N8      wr_gene|over_addr[10]|datad


9.889     0.200     RR   CELL      1     LC_X5_Y5_N8  wr_gene|over_addr[10]|combout


11.024   1.135     RR   IC    1     LC_X4_Y5_N0      wr_gene|Equal2~88|datab


11.764   0.740     RR   CELL      1     LC_X4_Y5_N0      wr_gene|Equal2~88|combout


12.069   0.305     RR   IC    1     LC_X4_Y5_N1      wr_gene|Equal2~89|datad


12.269   0.200     RR   CELL      2     LC_X4_Y5_N1      wr_gene|Equal2~89|combout


12.574   0.305     RR   IC    1     LC_X4_Y5_N2      wr_gene|Selector5~116|datad


12.774   0.200     RR   CELL      1     LC_X4_Y5_N2  wr_gene|Selector5~116|combout


13.079   0.305     RR   IC    1     LC_X4_Y5_N3      wr_gene|Selector5~117|datad


13.279   0.200     RR   CELL      1     LC_X4_Y5_N3  wr_gene|Selector5~117|combout


13.584   0.305     RR   IC    1     LC_X4_Y5_N4        wr_gene|current_state.IDLE|datad


14.175   0.591     RR   CELL  1  LC_X4_Y5_N4  wr_gene:wr_gene|current_state.IDLE


 


       再来看Technology Map Viewer里从over_addr[10]current_state.IDLE的路径。



点击看大图


       绿色圈起来的就是两个由时钟控制的触发器端,也就是这个时序的起始端和结束端,那么只要你仔细沿着起始路径一直观察到结束路径,就会发现正如上面Data Arrival Path所描述的。呵呵,显然这个时序路径有些长了,大部分的时间都消耗在了这上面,所以导致了时序余量达不到要求。那么解决的办法有两个,其一是把两个时序逻辑之间的大组合逻辑分为两个小的逻辑,即所谓的流水线思想;其二是进行时序约束。


 


 

PARTNER CONTENT

文章评论3条评论)

登录后参与讨论

用户1429642 2011-10-23 15:30

博主所言极是,确实,发表博文不是很方便,经常丢失,也希望EDNCHINA能够在这方面进行改进!

用户333178 2011-5-18 13:49

是啊,我也渴望能多交流啊。只有交流才是王道啊,也不能只让特权同学一个人说啊

用户1584993 2011-5-9 14:32

我这里也有这个问题

ilove314_323192455 2011-5-8 13:16

还有一个问题:其实也是老问题,图片的添加过程中,一不小心很容易就把图片插入到标题前面了,而非指定位置。

patton016_154811562 2011-5-5 21:01

顶个~ 这的编辑器就是我不再在这继续写博的原因~

zd.cai_402214705 2011-5-5 11:22

写的真好,很多情况多是经常遇到的问题!!!吴兄总结的不错

用户402605 2011-5-3 16:31

收藏果然一直是2

用户1584993 2011-5-3 14:27

谢谢你们的建议,现在正在修改阶段

用户1422858 2011-5-2 11:35

是吧

用户1010551 2011-5-2 00:57

2006tx_yafeng 2011/4/30 12:49:05 希望edn支持windows live writer。俺在博客园都是用WLW写的博文,格式蛮符合航哥提出的要求。 这个强烈有求,或者能直接在编辑框中直接把WORK复制粘贴过来,里边的图片,自动上传。
相关推荐阅读
特权ilove314 2016-06-30 21:16
例说FPGA连载6:FPGA开发所需的技能
例说FPGA连载6:FPGA开发所需的技能 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   前面的文字已经做了很多铺垫,相信读...
特权ilove314 2016-06-28 21:09
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-28 21:05
例说FPGA连载5:FPGA的优势与局限性
例说FPGA连载5:FPGA的优势与局限性 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   若要准确评估FPGA技术能否满足开...
特权ilove314 2016-06-26 22:11
例说FPGA连载4:FPGA语言与厂商介绍
例说FPGA连载4:FPGA语言与厂商介绍 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   Verilog与VHDL 说到FP...
特权ilove314 2016-06-23 21:26
例说FPGA连载3:FPGA与其它主流芯片的比较
例说FPGA连载3:FPGA与其它主流芯片的比较 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   FPGA、ASIC和ASSP...
特权ilove314 2016-06-21 20:32
例说FPGA连载2:FPGA是什么
例说FPGA连载2:FPGA是什么 特权同学,版权所有 配套例程和更多资料下载链接: http://pan.baidu.com/s/1c0nf6Qc   2015年伊始,Intel欲出资百亿美金收...
EE直播间
更多
我要评论
3
12
关闭 站长推荐上一条 /3 下一条