精华内容
下载资源
问答
  • clock

    2019-09-22 10:55:37
    Prime Time中的clock分析包括: 1)Multiple clocks,clock from port/pin,virtual clock。 2)Clock network delay and skew,clock latency----delay of the clock network relative to the source。 ...

    Prime Time中的clock分析包括:

    1)Multiple clocks,clock from port/pin,virtual clock。

    2)Clock network delay and skew,clock latency----delay of the clock network relative to the source。

                                                     clock skew-----variation of arrival time of clock at destination point。

    3)Gated clock,perform both setup and hold check on the gating signal。

    4)Generated clocks,such as clock divider or PLL。

    5)Clock transition times,specify the transition times of clock signals。

     

    create_clock -period 10 -waveform {2 4} [get_ports A]

    clock的source可以是port A,net N或者FF的pin Q。不指定source时,表示virtual clock。

    -name 对该clcok的命名,不添加时,由clock的source名代替。

    -add 在同一source上定义两个clock,create_clock -period 20 -waveform {1 3} [get_ports A] -add。

    -waveform [a1 a2]第一个值表示第一个上升沿,第一个值表示第一个下降沿。

    -source 一般加get_pins/get_ports等,表示一个端口或门电路接口。

    -master_clock 一般是一个clock name,来自create_clock或create_generate_clock等命令。

                         也可以是get_ports命令,可以和-source的变量一致。

     

    get_clocks -filter "period <= 5.0" PHI*

    -filter 进行条件过滤。

    get_clocks *表示所有clock。

    remove_clock [get_clocks CLKB*] 删除时钟定义。。

     

    Specifying clock characteristic:

    Latency包括clock source latency和clock network latency。中间点clock definition point。

    uncertainty表示maximum difference在register的clock arrival signals。也叫做skew。

    使用set_clock_latency -source对source latency进行model,对network latency的model分不同的阶段:

    在post_layout之后,使用set_propagated_clock来进行model,在pre_layout,使用set_clock_latency来进行model。

    set_clock_latency 1.5 -source -early [get_clocks CLK]

    -rise/fall来指定latency在rising/falling edg。

    -min/max指定一个range。

    -late/early指定longest path as late path,shortest path as early path。

                   做setup check时,source clock做late version,destination clock做early version。

                   做hold check时,source clock做early version,destination clock做late version。

    -source指定source latency,没有定义时表示network latency。

    可以通过-dynamic 指定clock jitter的值

     

    Intraclock Uncertainty:

    在single clock上定义skew和jitter,需要指定一个clock,port,pin,

    如果指定一个clock,表示所有这个clockdrive的sequential elements都会使用这个uncertainty,

    如果指定一个port,pin,表示所有的fanout都会使用这个uncertainty。

    针对setup和hold的check,uncertainty的值可以设置不同,-setup/-hold

    setup check会被jitter和skew影响,hold只会被skew影响。

    set_clock_uncertainty -setup 0.5 [get_clocks C2]

     

    Interclock uncertainty:

    -from表示start clock(launch reg),-to表示destination clock(capture reg)

    setup check和hold check都会被jitter和skew影响。

    set_clock_uncertainty -from C1 -to C2 -setup

    set_clock_uncertainty -rise_from C1 -fall_to C2 0.5

    -from和-to的属性会被严格执行,如果会出现-from建模capture reg的情况,需要在定义。

    如果interclock uncertainty和intraclock uncertainty都被定义,inter的优先级较高。

     

    set_clock_transition 0.64 -fall [get_clocks CLK1]

    -fall/-rise,分别指定transition time。

    -min/max,分别制定range。

     

    对于multiple clock的分析:

    两个clock之间的关系可以是:synchronous,asynchronous,exclusive。

     

    在没有其他设置时,如果存在一条path,launched by one clock,captured by other clock,PT会认为

    这两个clock的关系是sync的,由create_clock定义的time zero为sync点,expands到两个clock时钟的

    least common multiple,来进行同步和分析。

     

    async clock,对于两个clock domain,clock edges可以发生在any time的时钟。

    对于这样的async clock,launched by one clock,captured by other,PrimeTime不会检查timing path,

    通过set_clock_groups -usync 命令设置之后,效果等同于设置false path。

     

    Exclusive clock,没有interact的clock,only one clock is enabled at any given time。

    set_clock_groups -logically_exclusive -group {CK1} -group {CK2}

    当定义两个group时,表示两个group之间是exclusive的,在与第三个group之间是没有这个设置的。(CK1与CK2 exclusive)

    set_clock_groups -logically_exclusive -group {CK1}

    当只定义一个group时,表示该group与剩下的所有的clock都是这样的设置。(CK1与剩下的所有的clock都是exclusive的)

    还有一种physically_exclusive的设置,主要用在PT SI分析crosstalk时。

     

    clock mux时的处理:

    1)列出所有的false_path

    2)使用set_case_analysis

    3)使用disable_timing命令

    4)set_clock_group命令

    特例:

     

     

    转载于:https://www.cnblogs.com/-9-8/p/5720682.html

    展开全文
  • Clock

    2017-02-12 05:35:41
    There is only one Big Clock in the Alibaba’s headquarters on Mars. Since it is on Mars, the Clock is different as it was on Earth. There are A hours per day and B minutes per hour. The Clock has two ...
  • CLOCK

    千次阅读 2011-04-08 17:01:00
    一、对clock的基本认识 第七部分是“clock & power management”,总结如下: 1 s3c2410的clock & power management模块包含三个部分:clock control、usb control、power control。现在的关注点是clock control。...
    一、对clock的基本认识
     
        第七部分是“clock & power management”,总结如下:
     
        1 s3c2410的clock & power management模块包含三个部分:clock control、usb control、power control。现在的关注点是clock control。
     
        2、s3c2410有两个pll(phase locked loop,锁相环,在高频中学过,可以实现倍频,s3c2410的高频就是由此电路产生的)。其中一个是MPLL,M即为main,用来产生三种时钟信号:Fclk(给CPU核供给时钟信号,我们所说的s3c2410的cpu主频为200MHz,就是指的这个时钟信号,相应的,1/Fclk即为cpu时钟周期)、Hclk(为AHB bus peripherals供给时钟信号,AHB为advanced high-performance bus)、Pclk(为APB bus peripherals供给时钟信号,APB为advanced peripherals bus)。在这里,需要了解一下AMBA system architecture了。这个可以到官方网站www.arm.com下载相关资料。简单的说,AMBA是一种协议,这种协议已经称为片上组织通信的事实上的标准(the de facto standard for on-chip fabric communication)。下面给出英文描述:
     
        The AMBA protocol is an open standard, on-chip bus specification that details a stategy for the interconnection and management of functional blocks that makes up a system-on-chip(SoC).It facilitates "right-first-time" development of embedded processors with one or more CPU/signal processors and multiple peripherals. The AMBA protocol enhances a resuable design methodology by defining a common backbone for SoC modules.
     
        需要知道的是,AMBA总线是ARM提出的一种解决方案,它并非唯一的规范,但是因为ARM的广泛使用,AMBA总线也就成为了事实上的规范了。现在AMBA总线最新为AMBA 3 specification版本,包括AMBA 3 AXI Interface、AMBA 3 AHB Interface、AMBA 3 APB Interface、AMBA 3 ATB Interface。而s3c2410还只能支持AMBA 2 specification,这个版本包含AMBA 2 AHB Interface、AMBA 2 APB Interface。也就是在s3c2410的框图中看到的两种总线接口。需要注意的是,这两种总线所连的外设是有区别的。AHB总线连接高速外设,低速外设则通过APB总线互连。显然,对不同总线上的外设,应该使用不同的时钟信号,AHB总线对应Hclk,APB总线对应Pclk。那么事先就应该弄清楚,每条总线对应的外设有那些,这样在设置好时钟信号后,对应外设的初始化的值就要依此而确定了。
     
        AHB bus上的外设有LCD controller(CONT代表controller,控制器)、USB Host CONT、ExtMaster、Nand CONT和nand flash boot loader、bus CONT、interrupt CONT、power management、memory CONT(sram/nor/sdram等)。
     
        APB bus上的外设有UART、USB device、SDI/MMC、Watch Dog Timer、bus CONT、spi、iic、iis、gpio、rtc、adc、timer/pwm。
     
        3、主时钟源来自外部晶振或者外部时钟复位后,MPLL虽然默认启动,但是如果不向MPLLCON中写入value,那么外部晶振直接作为系统时钟。EDUKIT-III的外部晶振有两个,一是用于系统时钟,为12MHz;一个用于RTC,为32.768KHz。以前实验没有向MPLLCON写入数值,所以系统时钟都是12MHz。从这里也可以发现一个问题,如果外部晶振开始没有焊上,那么系统是无法正常启动的。因为按照上述规则,复位后还没有写入MPLLCON,这时又没有可以使用的时钟源,所以不会启动。也就是硬件完成后,这个12MHz的晶振是一定要焊上的,才能进行后续的硬件测试工作。
     
    二、clock设置的步骤
     
        首先应该读懂下一段:
     

    Power-On Reset (XTIpll)
    Figure 7-4 shows the clock behavior during the power-on reset sequence. The crystal oscillator begins oscillation within several milliseconds. When nRESET is released after the stabilization of OSC (XTIpll) clock, the PLL starts to operate according to the default PLL configuration. However, PLL is commonly known to be unstable after power-on reset, so Fin is fed directly to FCLK instead of the Mpll (PLL output) before the software newly configures the PLLCON. Even if the user does not want to change the default value of PLLCON register after reset, the user should write the same value into PLLCON register by software.


    The PLL restarts the lockup sequence toward the new frequency only after the software configures the PLL with a new frequency. FCLK can be configured as PLL output (Mpll) immediately after lock time.

     
        这个主要是基于PLL的特点。简单的描述就是,上电复位后,几个ms后晶振起振。当OSC时钟信号稳定之后,nRESET电平拉高(这是硬件自动检测过程)。这个时候,PLL开始按照默认的PLL配置开始工作,但是特殊性就在于PLL在上电复位后开始是不稳定的,所以s3c2410设计为把Fin在上电复位后直接作为Fclk,这是MPLL是不起作用的。如果要想是MPLL起作用,那么方法就是写入MPLLCON寄存器值,然后等待LOCKTIME时间后,新的Fclk开始工作。下面把这些步骤分来来描述,软件步骤部分结合程序进行。
     
        1、上电几个ms后,晶振输出稳定。Fclk=晶振频率。nRESET恢复高电平后,cpu开始执行指令,这完全是硬件动作,不需要软件设置。
     
        2、第一步软件工作: 设置P M S divider control,也就是设置MPLLCON寄存器。
     
        关于PMS,可以看Figure 7-2.寄存器MPLLCON的设置呢,其实有一定的规则,并非你想要的每个Fclk频率都可以得到。官方推荐了一个表PLL VALUE SELECTION TABLE,要按照这个进行。否则的话,就需要自己按照公式推算,但是mizi公司并不保证你的设置是合适的。所以,如果想要工作在200MHz,还是按照vivi的推荐值即可。
     

    @ step1: set P M S divider control
            mov r1, #CLK_CTL_BASE
            ldr r2, =vMPLLCON_200
            str r2, [r1, #oMPLLCON]

     
        其中,MDIV=0x5c,PDIV=0x04,SDIV=0x00.公式Mpll(Fclk)=(m×Fin)/(p×(2^s))【m=MDIV+8, p=PDIV+2,s=SDIV】
     
        3、第二步软件工作: 设置CLKDIVN。
     
        这一步是设置分频系数,即Fclk为cpu主频,Hclk由Fclk分频得到,Pclk由Hclk分频得到。假设Hclk是Fclk的二分频,Pclk是Hclk的二分频,那么分频系数比就是Fclk:Hclk:Pclk=1:2:4.那么Hclk为100MHz,总线时钟周期为10ns。Pclk为50MHz。
     

    @ step2: change clock divider
            mov r1, #CLK_CTL_BASE
            mov r2, #vCLKDIVN
            str r2, [r1, #oCLKDIVN]

     
        4、第三步软件工作: CLKDIVN的补充设置
      

    If HDIVN = 1, the CPU bus mode has to be changed from the fast bus mode to the asynchronous bus mode using following instructions.
    MMU_SetAsyncBusMode
            mrc p15,0,r0,c1,c0,0
            orr r0,r0,#R1_nF:OR:R1_iA
            mcr p15,0,r0,c1,c0,0
    If HDIVN=1 and the CPU bus mode is the fast bus mode, the CPU will operate by the HCLK. This feature can be used to change the CPU frequency as a half without affecting the HCLK and PCLK.

     
        看了上段话,只需要翻译出来就可以了。
     

    @ FCLK:HCLK=1:2
    .macro MMU_SetAsyncBusMode
            mrc p15, 0, r0, c1, c0, 0
            orr r0, r0, #(R1_iA | R1_nF)
            mcr p15, 0, r0, c1, c0, 0
    .endm
            @ step3: set asynchronous bus mode
            MMU_SetAsyncBusMode

     
        5、第四步软件工作:等待locktime时间,让新的Fclk生效
     

    @ step4: stay locktime
            mov r1, #CLK_CTL_BASE
            ldr r2, =vLOCKTIME
            str r2, [r1, #oLOCKTIME]

     
        6、对外设的影响
     
        在这个实验中,主要是有两个需要改变,一个外设是UART,一个外设是SDRAM。
     
        (1)UART,它是接在APB总线上,所以对应的时钟信号为Pclk,现在为50MHz。如果想要设置波特率为115200bps,那么根据公式UBRDIV0=(int)(PCLK/(bps*16))-1计算,应该为26。如果放到程序中,那么应该注意形式。具体如下:
     

    UBRDIV0 = ((int)(PCLK/16./UART_BAUD_RATE) -1);

     
        (2)SDRAM,主要的影响因素为刷新频率。前面在SDRAM中没有具体分析,现在可以详细说明。使用了两片HY57V561620CT-H,查看手册其刷新频率为8192 refresh cycles/64ms,所以刷新周期64ms/8192=7.8125us。看寄存器REFRESH的各个位的设置情况:
     
        ·REFEN[23]:开启自动模式,设为1
        ·TREFMD[22]:设为Auto refresh模式,设为0
        ·Trp[21:20]:看看RAS precharge Time,查看SDRAM手册,发现-H系列此参数至少为20ns,现在Hclk对应的时钟周期为10ns,所以至少应该为2个clock。可以设为00
        ·Tsrc: Semi Row Cycle Time,也就是RAS Cycle Time,至少65ms,所以至少得6.5clock,按照可选值,应该设置为11
        ·Refresh[10:0]:
        公式refresh period = (2^11 - refresh_count +1)/Hclk,由此推导出refresh_count=2^11+1-refresh period*Hclk。带入数值,计算得出1268=0x04f4,这个数值要用四舍五入,减少误差。
        ·其余的保留值,均设置为0
     
        由此得出该寄存器的值应该为0x008c04f4。
    展开全文
  • CDOJ Clock

    千次阅读 2015-07-31 12:52:03
    Clock

    Clock
    Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)

    Submit Status
    Clock is invented by ancient Arabic engineers and which contributes to build the concept of accurate time for us human beings and even could be essential tool that widely used in industry, business and our routine lives. Nevertheless, the ideology of clock turns out to be quite simply that even make sense to little kids. We could hardly imagine that how do Arabic wisdom come up with such idea to indicate time only by two or three fingers. The other day, hhb are asking lxh and Hysramp to play his newly invented game describe as follow. hhb randomly change the time of his lovely alarm clock then ask lxh and Hysramp to tell the degree between hour finger and minute finger. lxh seems quite gifted playing it while Hysramp does not. When Hysramp fails to answer hhb, hhb smiles to Hysramp. And Hysramp smiles to you, an ace programmer.

    Input
    The first line of the input contains one integer T, which indicate the number of test cases. Each test case contains one indicating the time on hhb’s clock in the form of HH:MM. (0≤HH<24,0≤MM<60)

    Output
    One line for each test case contains only one number indicating the answer. An integer or an irreducible fraction indicated the degree between hour finger and minute finger.

    Sample input and output
    Sample Input Sample Output
    1
    00:00
    0
    Source
    电子科技大学第七届ACM程序设计大赛 初赛

    http://www.acm.uestc.edu.cn/#/problem/show/49

    #include<stdio.h>
    int main()
    {
        int t,p, hh,mm, sh,sm,  res;
        scanf("%d",&t);
        for (p=1;p<=t;p++)
        {
            scanf("%d:%d",&hh,&mm);
            if (hh>=12)
                hh=hh-12;
            sh=hh*60+mm;
            sm=mm*12;
            if (sh>sm) res=sh-sm;
            else res=sm-sh;
            if (res>=360) res=720-res;
            if (res%2==0) printf("%d\n",res/2);
            else printf("%d/2\n",res);
        }
        return 0;
    }
    #include <iostream>
    #include <sstream>
    #include <iomanip>
    #include <vector>
    #include <deque>
    #include <list>
    #include <set>
    #include <map>
    #include <stack>
    #include <queue>
    #include <bitset>
    #include <string>
    #include <numeric>
    #include <algorithm>
    #include <functional>
    #include <iterator>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <cstdlib>
    #include <cctype>
    #include <complex>
    #include <ctime>
    
    typedef long long LL;
    
    const double pi = acos(-1.0);
    const long long mod = 1e9 + 7;
    
    using namespace std;
    
    int main()
    {
        //freopen("int.txt","r",stdin);
        //freopen("out.txt","w",stdout);
        int T, H, M, ans;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d:%d",&H,&M);
            if(H >= 12)
                H = H - 12;
             ans = abs( 60 * H - 11 * M );
            if(ans >= 360)
                ans = 720 - ans;
            if(ans % 2 == 0)
                printf("%d\n",ans / 2);
            else
                printf("%d/2\n",ans);
        }
        return 0;
    }
    展开全文
  • clock uncertainty

    2019-08-21 05:35:16
    clock uncertainty http://shunlang.blogbus.com/logs/71012206.html 发现以前的理解有些错误,更正一下 Pre CTS:Clock Uncertainty = Clock skew + Clock jitter + Margin Post CTS:Clock ...
    clock uncertainty http://shunlang.blogbus.com/logs/71012206.html 发现以前的理解有些错误,更正一下 Pre CTS:Clock Uncertainty = Clock skew + Clock jitter + Margin Post CTS:Clock Uncertainty = Clock jitter + Margin Jitter is a quantitative measure for the clock uncertainty ,it's a really clock ,output of pll.osc Clock latency is defined as the amount of time from the clock origin point to the sync pin of the flop and uncertainity is jitter which is generated by the oscillator that is PLL Clock Skew is the difference between the clock arrival times at two different nodes (a) The insertion delay to the launching flip-flop's clock pin is different than the insertion delay to the capturing flip-flop's clock pin (one paths through the clock tree can be longer than another path). This is called clock skew. (b) The clock period is not constant. Some clock cycles are longer or shorter than others in a random fashion. This is called clock jitter. (c) Even if the launching clock path and the capturing clock path are absolutely identical, their path delays can still be different because of on-chip variation. This is where the chip's delay properties vary across the die due to process variations or temperature variations or other reasons. This essentially increases the clock skew. 在post CTS时,时序一定要记得设置set_propagated_clock,它包含了布局布线后真实的时钟信息。 还需要设置set_clock_latency -source 和PLL产生的 set_clock_uncertainty 这两个都是综合模块的外部环境造成的影响。 set_clock_uncertainty 主要是考虑实现是工艺偏差情况下,所做设计依然是可以工作的,既设计具有较强的鲁棒性。

    转载于:https://www.cnblogs.com/asic/archive/2011/09/02/2163290.html

    展开全文
  • clock bindings

    2020-05-05 15:55:13
    该绑定是一个进行中的工作,它基于benh [1]的一些实验工作。... 与gpio specifiers相似,clock specifiers是一个零数组,一个或多个单元标识设备上的时钟输出。 时钟说明符的长度由时钟提供程序节点中的#cl...
  • Strange Clock

    2017-01-03 14:02:13
    Note that, in the second format, x o'clock should be exactly one hour before y o'clock, So you cannot write something like “Between 3 o'clock and 2 o'clock”. Sample Input 90 245 -1 Sample ...
  • 分辨率的Clock和屏的Clock

    千次阅读 2019-06-11 21:43:01
    之前对点屏,加Timing时,对于这两个Clock做了下总结,也就是输入Clock和输出Clock: 1.输入的Clock,通常是PixelClock,即该Timing的Clock Timing的Clock是指每个分辨率的Clock,即每一个分辨率都有一个Clock,从...
  • Vector Clock/Version Clock

    2016-09-24 22:46:32
    Vector Clock/Version Clock physical clock  机器上的物理时钟,不同的机器在同一个时间点取到的physical clock不一样,之间会存在一定的误差,NTP可以用来控制这个误差,同一个机房内的机器之间的时钟误差...
  • generated clock

    2019-09-22 10:52:30
    create_generated_clock,通过-source,-edges,-divide_by,-multiply_by来执行clock沿。 create_generated_clock -name DIVIDE -source [get_ports SYSCLK] -divide_by 2[get_pins FF1/Q] -source来指定参考时钟...
  • Digital Clock

    2017-08-17 13:03:53
    Removing the colons from hh:mm:ss will result in an integer hhmmss, which is called a clock integer. For example, the clock integer of 17:05:13 is 170513 and the clock integer of 00:07:37 is 737. ...
  • create_generated_clock

    万次阅读 2016-10-13 22:30:40
    create_generated_clock 介绍 create_generated_clock有多个master_clock的情况 create_generated_clock的时钟占空比不是50的情况1. create_generated_clock 介绍create_generated_clock 是用来说明generated clock...
  • creat_clock creat_generated_clock set_clock_uncertainty set_clock_groups 时钟的三要素:Waveform ,uncertainty 和clock group creat_clock 主要定义一个clock的source 源端,周期和信号上升沿下降沿的时间点,...
  • Clock Jitter

    2019-08-03 22:28:06
    Clock jitter is the deviation from the ideal timing of clock transition events. Because such deviation can be detrimental to high-speed data transfer and can degrade performance, jitter must be kept t...
  • POSIX Clock

    2017-12-12 07:21:14
    出处:http://www.wowotech.net/basic_tech/tech_discuss/timer_subsystem/posix-clock.html ...内核中维护了若干的clock,本文第二章描述了clock的基本概念和一些静态定义的posix clock。根据计时的特点,clo
  • linux clock

    千次阅读 2017-06-20 20:37:40
    linux kernel在3.4之后加入了CCF(common clock framework)来统一管理clock,对外提供了统一的接口供其它模块调用,对内封装了clock驱动。linux的clock是基于provider/consumer模型的。本文叙述的顺序是先对clock的...
  • clock函数

    千次阅读 2018-12-06 20:52:18
    大家测试经常会出现超时问题,下面说一下怎么检测时间 先写头文件 #include&... a=clock(); 要测验的代码 b=clock(); c=b–a; printf("%d",c); 时间超时就考虑怎么优化,c是毫秒 ...
  • clock Gating

    2020-03-19 15:59:28
    一、为什么要做clock gating? 芯片中的功耗可以广义的定义为动态功耗和静态功耗。 静态功耗通常包含芯片在不翻转的状态下产生漏电功耗(关不紧产生的功耗)、衬底电流产生的功耗、热电子效应导致的电流效应而产生的...
  • vc clock api

    2008-11-14 13:16:13
    clock clock clock clock clock clock clock clock clock clock clock clock clock clock clock clock clock clock clock clock

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,111
精华内容 17,644
关键字:

clock