你的位置:EETOP 赛灵思(Xilinx) 社区 >> >> 全部 >> 详细内容

大话setup time与hold time

发布者:jackzhang 时间:2015-07-31 16:03:46

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


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

pp.jpg


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都无法完成。

最新课程

  • 深入浅出玩儿转FPGA

    本视频基于Xilinx公司的Artix-7FPGA器件以及各种丰富的入门和进阶外设,提供了一些典型的工程实例,帮助读者从FPGA基础知识、逻辑设计概念

  • 从零开始大战FPGA基础篇

    本课程为“从零开始大战FPGA”系列课程的基础篇。课程通俗易懂、逻辑性强、示例丰富,课程中尤其强调在设计过程中对“时序”和“逻辑”的把控,以及硬件描述语言与硬件电路相对应的“

  • Verilog基础及典型数字

    课程中首先会给大家讲解在企业中一般数字电路从算法到流片这整个过程中会涉及到哪些流程,都分别使用什么工具,以及其中每个流程都分别做了