0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

探討下clock的基本定義(下)

冬至子 ? 來(lái)源:碼農(nóng)的假期 ? 作者:Clark Zhao ? 2023-07-06 15:34 ? 次閱讀

Clock Latency簡(jiǎn)介

要探討今天的主題,首先需要跟大家一起學(xué)習(xí)下clock latency這個(gè)基本概念。Clock latency通俗意義上是指clock定義點(diǎn)到clock sink point(時(shí)序器件的clock Pin)之間的這段延遲時(shí)間。其分為兩類,其中一類為,source latency,另外一類是network latency。

**source latency ** :也稱作insertion delay,通常是指clock source端到clock定義點(diǎn)之間的這段時(shí)間延遲;通常有兩種情況,其一:clock 直接來(lái)自于芯片外部,如crystal clock,此時(shí),source latency指的是芯片外部crystal出口到芯片PAD(假如clock定義在此處)之間的時(shí)間延遲;其二:clock 來(lái)自于芯片內(nèi)部的PLL,此時(shí),source latency指的是芯片內(nèi)部PLL輸出點(diǎn)到芯片內(nèi)部某個(gè)第一個(gè)clock定義點(diǎn)之間的這段時(shí)間。

network latency :其指的是clock定義點(diǎn)到clock sink point之間的這段時(shí)間。

這兩種latency是每一個(gè)clock的固有屬性,當(dāng)CTS完成之后,每一個(gè)clock如果是在propagation狀態(tài)下,其source latency和network latency都是確定的。當(dāng)然,在前期(PR之前或者CTS之前),通常情況下clock都處于ideal狀態(tài),為了能夠模擬真實(shí)的情況,我們可以通過(guò)指令set_clock_latency去指定每個(gè)clock的source latency或者network latency,具體此指令的用法,我們這里不詳細(xì)解釋了,有興趣,有需要的可以自己去查閱相關(guān)資料。

圖片 圖1 clock latency 示例

create_clock和create_generated_clock的不同點(diǎn)簡(jiǎn)介

通常定義clock的方式有兩種,create_clock和create_generated_clock。再上次有具體介紹過(guò),這兩個(gè)指令的使用。那么他們之間有哪些使用上的區(qū)別以及各自都有什么特點(diǎn)呢?大體總結(jié)如下:

  • create_generated_clock能夠繼承其master clock phase,換句話說(shuō):generate clock的邊沿(rise or fall)是通過(guò)繼承master clock得到的。
  • create_generated_clock能夠繼承其master clock的source latency。
  • 通常情況下,create_clock的source latency為0.(在不特殊指定的情況下)
  • 每當(dāng)設(shè)置一個(gè)create_clock,通常CTS時(shí)會(huì)構(gòu)建一個(gè)新的clock domain。

Generate clock定義出錯(cuò)引入的clock edge識(shí)別出錯(cuò)

在上次,我們通過(guò)多個(gè)例子,分類說(shuō)明了,如果generate clock定義不合理,會(huì)誤導(dǎo)工具做出錯(cuò)誤的timing分析的各種情形。但是具體工具timing分析會(huì)是什么樣的呢?

圖片

圖2 錯(cuò)誤的定義generate clock示例

如圖2所示,如果直接在u_ckdiv2/Q點(diǎn)上,使用-divide_by 2 –master_clock clk的方式定義generate clock,那么工具認(rèn)為的Q點(diǎn)的波形會(huì)是圖2中右圖所示的情況。這其實(shí)是與實(shí)際design的情況不符合的(假如DFF復(fù)位狀態(tài)為0)。這時(shí)工具會(huì)認(rèn)為的timing path check情況會(huì)如圖3所示。從u_ff1/CK到u_ff2/D,整個(gè)timing path周期只有半個(gè)clk cycle。

圖片

圖3 錯(cuò)誤的generate clock定義

如果我們能夠正確的在Q-pin上定義generate clock,那么工具認(rèn)為的Q-pin的波形會(huì)是圖4中所示的情形。這時(shí)同樣的timing path,從u_ff1/CK到u_ff2/D,工具做出的timing 分析會(huì)是圖4中的情形。

圖片

圖4 正確的generate clock定義

當(dāng)然,通過(guò)上面這個(gè)例子,雖然clock定義不合理,但是錯(cuò)誤的clock的定義,單從edge的傳播來(lái)看,其實(shí)是加緊了對(duì)design的約束,可能會(huì)浪費(fèi)一些PPA,但是不會(huì)讓design最終因?yàn)閠iming出錯(cuò)。

Generate clock定義出錯(cuò)引入的latency計(jì)算出錯(cuò)

其實(shí),除了上面分析提到的會(huì)影響工具正確的判斷定義的generate clock的edge之外,還會(huì)可能影響到工具錯(cuò)誤的計(jì)算clock的latency。

如圖5中的情形,如果采用圖5中(左,中,右)所示的定義方式,由于在mux的Z-pin上已經(jīng)定義了generate clock gclk1,而在定義generate clock clk_div時(shí),如果其master clock還指向了gclk1前面的一個(gè)clock-clk1,那么此時(shí)clock其實(shí)定義是不合理的。因?yàn)閺腸lk_div往前追,看到的第一個(gè)clock是gclk1,而clk1被其打斷了,其clock屬性不能再正確的往后傳播。

圖片

圖5 錯(cuò)誤的clock定義

也即上面提到的generate clock可以繼承其master clock的source latency這個(gè)特性就不能正確的保持了,從而導(dǎo)致工具認(rèn)為此處定義的generate clock的source latency將從0開(kāi)始計(jì)算。如果此處的generate clock替換為create clock會(huì)是怎樣的呢?大家可以思考一下。而如果想正確的繼承master clock的source latency,那么此處,可以按照?qǐng)D5中右所示的方式定義clock。

Clock Group定義簡(jiǎn)介

上面提到create clock定義時(shí),會(huì)伴隨新的clock domain的創(chuàng)建,此時(shí)所提到的clock domain即指clock group。當(dāng)然,clock group并不僅存在于create clock定義時(shí),在generate clock定義時(shí),也可以指定clock group。其主要目的是,人為的告訴工具,我們所定義的所有的clock之間的關(guān)系,從而減少工具自動(dòng)化分析的情形,降低runtime,得到更好的PPA的結(jié)果。但是具體clock group怎么劃分,是需要按照design架構(gòu)決定的。我們?cè)诖颂帲炔粫?huì)深究為什么要區(qū)分不同的clock group以及clock group劃分的依據(jù)(后面其它系列文章中再做分析),而是跟大家詳細(xì)的解釋下定義clock group的方法以及注意點(diǎn)。

如圖6所示,定義clock group我們SDC中右一條指令其為set_clock_group,詳細(xì)的解釋在圖6中都已經(jīng)給出,但是個(gè)人覺(jué)得還是有必要針對(duì)-logically_exclusive/-physically_exclusive/-asynchronous這三個(gè)option具體的分情況說(shuō)明一下。

圖片

圖6 clock group定義

-logically_exclusive/-physically_exclusive/-asynchronous簡(jiǎn)介

Logically_exclusive : 其含義是指兩組clock邏輯上不會(huì)同時(shí)存在。如圖7中第2框圖所示,雖然,clk1a/clk1b/clk2/clk3/clk4同時(shí)存在于整個(gè)design中,但是由于clock mux的select信號(hào)是相同的,所以從圖中可以看出,S=1,此時(shí)前后兩個(gè)mux分別選通clk2和clk4;如果S=0,則此時(shí)兩個(gè)MUX分別選通clk1a/clk1b和clk3,也就是clk1a/clk1b/clk3和clk2/clk4是邏輯上不會(huì)同時(shí)存在的。所以他們之間就是logically_exclusive。

Physically_exclusive : 其含義是指兩組clock之間物理上不會(huì)同時(shí)存在。如圖7中第1框圖所示。第一個(gè)clock mux中的clk1a和clk1b,這兩個(gè)clock是來(lái)自于相同的path,同一時(shí)間,這兩個(gè)clock物理上只有一個(gè)存在,所以他們便是physically_exlusive。

Asynchronous : 其含義是指兩組clock之間功能上異步的。如圖7中第3框圖所示,clk1和clk2,在功能設(shè)計(jì)時(shí)便是采用的異步方式設(shè)計(jì)的,即clk2跟clk1之間完全不需要關(guān)心相位或者frequency之間的關(guān)系,功能上也是正確的,這時(shí)候這兩個(gè)clock便是aysnchronous。當(dāng)然aysnchronous的前提條件是design功能上要保證正確性。

圖片

圖7 clock group定義示例

圖7中,如果換成第4框圖中的定義方式,跟第3框圖中的定義方式會(huì)有什么異同點(diǎn)?這個(gè)大家可以自己思考一下…

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PAD
    PAD
    +關(guān)注

    關(guān)注

    1

    文章

    97

    瀏覽量

    30591
  • PIN管
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    6274
  • PLL電路
    +關(guān)注

    關(guān)注

    0

    文章

    92

    瀏覽量

    6371
  • CTS
    CTS
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    13969
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    揭開(kāi)xenomai雙核系統(tǒng)clock機(jī)制的面紗

    clock可以說(shuō)是操作系統(tǒng)正常運(yùn)行的發(fā)動(dòng)機(jī),整個(gè)操作系統(tǒng)的活動(dòng)都受到它的激勵(lì)。系統(tǒng)利用時(shí)鐘中斷維持系統(tǒng)時(shí)間、促使任務(wù)調(diào)度,以保證所有進(jìn)程共享CPU資源;可以說(shuō),“時(shí)鐘中斷”是整個(gè)操作系統(tǒng)的脈搏。
    的頭像 發(fā)表于 11-24 09:10 ?1993次閱讀

    探討,CRC校驗(yàn)的優(yōu)勢(shì)

    本帖最后由 ntmusic 于 2014-6-11 11:31 編輯 探討,使用計(jì)算的2字節(jié)的CRC校驗(yàn)碼和使用固定的2字節(jié)數(shù)據(jù)作為校驗(yàn)在保證數(shù)據(jù)傳輸正確方面有什么不同?
    發(fā)表于 06-11 11:21

    Stm32_Clock_Init函數(shù)如何定義

    Stm32_Clock_Init,這個(gè)函數(shù)我看的一些資料上似乎都是突兀的就提出來(lái)了,沒(méi)有給出是如何定義的,而且我看了看,每本資料添加的函數(shù)庫(kù)都不一樣,我的是和資料上的就對(duì)不上,所以似乎有的函數(shù)我用不了,我想知道剛剛說(shuō)的那個(gè)函數(shù)到底是如何給出的。。。。
    發(fā)表于 03-16 00:37

    介紹一STM32L151的clock tree

    首先來(lái)看一STM32L151的clock tree, 可以看到TIM2-7是在APB1上的, APB1的最大時(shí)鐘配置是32MHz, 接下來(lái)我的及進(jìn)行一我的項(xiàng)目中的始終配置說(shuō)明,后續(xù)也會(huì)附
    發(fā)表于 07-16 10:03

    基于Stm32_Clock_Init()函數(shù)的流水燈設(shè)計(jì)

    原子的第一個(gè)例程流水燈中用了 Stm32_Clock_Init()函數(shù),現(xiàn)在來(lái)解析一:引用時(shí)Stm32_Clock_Init(9);定義(此處省略了跑OS時(shí)的代碼)看程序前,請(qǐng)確保理
    發(fā)表于 08-09 08:29

    請(qǐng)教一各位標(biāo)準(zhǔn)單元庫(kù)中clock buffer的設(shè)計(jì)很復(fù)雜嗎

    最近看了幾篇關(guān)于時(shí)鐘buffer的英文文章,看到很多做的clock buffer都很復(fù)雜,結(jié)構(gòu)里面有charge pump、控制級(jí)等、還有PWCL等控制環(huán)。在這兒請(qǐng)教一各位,標(biāo)準(zhǔn)單元庫(kù)中clock
    發(fā)表于 06-14 11:44

    S51載線的制作單片機(jī)實(shí)用技術(shù)探討

    S51載線的制作——單片機(jī)實(shí)用技術(shù)探討,有需要的都可以看看。
    發(fā)表于 07-20 15:48 ?22次下載

    浪潮與中橋探討:新數(shù)據(jù)時(shí)代,存儲(chǔ)的挑戰(zhàn)與創(chuàng)新

    浪潮與中橋國(guó)際調(diào)研咨詢有限公司(以下簡(jiǎn)稱中橋)聯(lián)合推出了《新一代存儲(chǔ),助推產(chǎn)業(yè)智能升級(jí)》白皮書,探討新數(shù)據(jù)時(shí)代,存儲(chǔ)的挑戰(zhàn)與創(chuàng)新。
    的頭像 發(fā)表于 08-15 15:19 ?3086次閱讀

    企業(yè)云的軟件定義存儲(chǔ)

    軟件定義是2012年VMware提出軟件定義數(shù)據(jù)中心的概念,其中SDS作為軟件定義數(shù)據(jù)中心一個(gè)非常核心的技術(shù)之一,軟件定義計(jì)算、軟件定義網(wǎng)絡(luò)
    發(fā)表于 05-30 10:50 ?1003次閱讀

    阿里巴巴探討新基建數(shù)字經(jīng)濟(jì)分布式存儲(chǔ)新機(jī)遇

    本次大會(huì)匯集眾多領(lǐng)導(dǎo)、嘉賓,在此共同探討新基建數(shù)字經(jīng)濟(jì)以及分布式存儲(chǔ)技術(shù)的發(fā)展新機(jī)遇。
    的頭像 發(fā)表于 08-17 14:21 ?2887次閱讀

    軟件定義汽車趨勢(shì)的供應(yīng)鏈變革

    面臨附加值提供、定價(jià)策略、流程創(chuàng)新等調(diào)整。 軟件定義汽車成為階段車企與供應(yīng)商轉(zhuǎn)型的核心主題:企業(yè)需要從設(shè)計(jì)開(kāi)發(fā)到組織運(yùn)作的全面轉(zhuǎn)型,來(lái)應(yīng)對(duì)集成復(fù)雜度的提升和技術(shù)創(chuàng)新。 以下為報(bào)告節(jié)選: 原文標(biāo)題:【行業(yè)資訊】軟件定義汽車趨勢(shì)
    的頭像 發(fā)表于 11-03 15:12 ?2009次閱讀

    Arduino IDE環(huán)境NodeMCU引腳定義

    Arduino IDE環(huán)境NodeMCU引腳定義在開(kāi)發(fā)過(guò)程中,我們必須了解各GPIO在上層是怎么定義的,才能心中有數(shù),合理調(diào)用個(gè)IO口#define PIN_WIRE_SDA (4)#define
    發(fā)表于 10-26 12:21 ?13次下載
    Arduino IDE環(huán)境<b class='flag-5'>下</b>NodeMCU引腳<b class='flag-5'>定義</b>

    探討軟件定義未來(lái)醫(yī)療的新藍(lán)圖

    東軟解決方案論壇2021“軟件定義未來(lái)醫(yī)療”分論壇正式上線。東軟集團(tuán)副總裁兼醫(yī)療解決方案事業(yè)本部總經(jīng)理姚勇、東軟漢楓董事長(zhǎng)兼CEO盧朝霞與醫(yī)療領(lǐng)域的行業(yè)專家、客戶一起,共同探討“十四五”時(shí)期,建設(shè)數(shù)字中國(guó)戰(zhàn)略背景,軟件
    的頭像 發(fā)表于 01-21 15:41 ?4076次閱讀

    DC/DC評(píng)估篇 損耗探討-定義和發(fā)熱

    探討損耗之前,我們先來(lái)看一損耗相關(guān)的定義以及發(fā)熱和結(jié)溫。損耗與效率:為了更好地理解,我們來(lái)看一效率的定義、以及效率與損耗之間的關(guān)系。效
    的頭像 發(fā)表于 03-01 11:49 ?1963次閱讀
    DC/DC評(píng)估篇 損耗<b class='flag-5'>探討</b>-<b class='flag-5'>定義</b>和發(fā)熱

    探討clock的基本定義(上)

    Clock分為兩大類,一類是root clock,其定義指令是create_clock;另外一類是generated clock,其
    的頭像 發(fā)表于 07-06 15:31 ?1814次閱讀
    <b class='flag-5'>探討</b><b class='flag-5'>下</b><b class='flag-5'>clock</b>的基本<b class='flag-5'>定義</b>(上)