微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 大话DC的setup time与hold time

大话DC的setup time与hold time

时间:10-02 整理:3721RD 点击:

DC的setup time与hold time是综合过程和时序分析时的两个重要概念,如果单凭抽象的理论来记忆既费力理解又不深刻。其实如果结合实际生活,理解这两个概念并不难,而且很有趣。先抛开这两个概念,来大话一下深圳Z公司的橙子手机iOrange的组装和物流过程。

      为了简化说明,一个iOrange拆成主要的4个组件:触摸屏,主板,处理器,电池。当然,众所周知,为了降低成本,Z公司不会自己去生产iOrange的所有4个组件,而是看全国有哪些厂家生产这些组件,哪个厂家的质量好而且便宜就用哪个厂家的组件,这就是所谓的成本战略。(当然这在现实生活中基本是白日做梦,基本上质量好的不可能又便宜,所以现实中必须在价格和质量这两者之间权衡,这和IC芯片上面积和速度的权衡是一个道理。当然这是后话了)Z公司在考察了全国各厂商生产的组件后,选定了东莞H厂的触摸屏,河南T公司的主板,成都I公司的处理器,和上海P公司的电池。等四大公司的组件全部到深圳后,Z公司便组装成iOrange。
       现在来看iOrange4大组件的物流,其中收费站会对货车上的货品进行逐一清点并且收费(这是最重要的咯):




iOrange物流体系


     要组装出一台完整的iOrange,必须四大组件全部到齐。实际上,判断4大组件是否全部到齐只要看路途最远的那个组件有没有到便可。来看下4个组件的路径:


     1. CPU: 成都->收费站A->收费站B->收费站C->深圳;


     2. 主板:河南-> 收费站B->收费站C->深圳;


     3. 电池:上海->收费站C->深圳;


     4. 屏幕:东莞->深圳。


     计算4条路径的时间需包括路上的时间和经过收费站所花费的时间。假设各组件厂商与收费站之间,收费站与收费站之间的距离相等,各路段行车所花费的时间为2,在收费站所花费的时间为1。那么由此计算4条路径的费时各为:


      1. CPU: 2+1+2+1+2+1+2 = 11;


      2. 主板:2+1+2+1+2 =8;


      3. 电池: 2+1+2 = 5;


      4. 屏幕:2



   要组装成iOrange,Z公司需建立生产线进行产品组装。假设组装生产线的时间为1。Z公司希望每30天出一批iOrange。


可以算出实际可用来组装iOrange的时间为30-11-1=18(天)。这说明时间是充裕的。


为了进行风险控制,Z公司需计算假设如果有一天四家组件厂商同时中断供货,那么发在途中的货还能保持多长时间iOrange的装配(这里假设Z公司保持0库存)。假设完成一个单位iOrange的货必须要各组件各1天货。


    由此算出Z公司还可以完成的单位数为2-1。即最快结束货减去Z公司完成一个单位的iOrange所需要的时间。


我们把Z公司物流系统的各路段看做net延迟,各收费站看成cell延迟,则很容易转化成我们需要的setup time/Hold time。

这里Z公司组装生产线的时间即为setup time。 Z公司完成一个单位iOrange所需要的时间即为Hold time。setup time slack与hold time slack就是上文的组装iOrange的时间和断货后Z公司还可以完成iOrange单位数。


我们再来详细说明一下slack这个玩意。slack的英文本意为松弛,若setup time/hold time slack为正值,表示目前满足setup time/hold time 要求,并且还有多余的时间,若slack为负值,表示目前已经不满足setup time /hold time的要求,并且不足多少时间。像如果Z公司完成一个单位的货需要各组件各3天的货,那2-3=-1,则表示断货后,Z公司连一个单位的iOrange都无法完成。

码字不容易,先自己顶一下。

哥们:能不能讲一些高深一点的东西?



    我比较喜欢化繁为简,写写通俗的东西,也是满足在下的一点兴趣。呵呵。

讲得很形象!有机会希望能尝试着多写些这种类型东西。

通俗易懂



    谢谢,不断尝试中。

so easy

我喜欢化繁为简,通俗的东西!
Keep it simple,stupid!

深入浅出

哈哈,解释的真的很不错,给偶这种菜鸡很有启发

以为是时序设计问题!
我想多了!

很形象,很具体

我怎么觉得被LZ弄复杂了?
我说个形象点的:
流水线上操作的员工:每秒钟操作一次,每次操作需要0.3秒,则他的上一个位置的员工必须在0~0.7秒间传过来一次。0.3秒算为Tsetup时间,上一位置员工传给他的时间记为Td(传播延时),则有skew=T-Tsetup-Td.
当Td大于0.7时,skew为负(本位置员工来不及完成操作),表示setup违反。
不过这个例子不好解释hold time。
欢迎大家补齐

很有sense的比喻~喜欢

有点趣味啊~~嘿嘿,比较具体。

作为一个跨专业的学生,学习了

讲的还是挺不错的,至少让我们不那么死板的去理解繁琐的概念,很形象。顶起。

太形象了 讲的

讲的不错啊,希望小编再多写几个,呵呵

大赞小编的精神! 不过真心觉得直接看理论定义还简单清晰些。

"这里Z公司组装生产线的时间即为setup time。 Z公司完成一个单位iOrange所需要的时间即为Hold time。"
没做过数字DC,不知道该怎么理解这两句话!?

Vimium

Vimium

Vimium

Vimium

这个hold time的解释真是看着蛋疼!

讲得很生动,但是就是太简单的道理了,要再能深入的讲,就更佩服lz了

iorange 很有创意

很形象

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top