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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何創(chuàng)建虛擬時鐘

全棧芯片工程師 ? 來源: 全棧芯片工程師 ? 2024-10-23 09:40 ? 次閱讀

通常RTL設計要求對芯片/module的輸入信號進行reg_in打拍處理,對芯片/module的輸出也要求做reg_out打拍處理,這是良好的代碼習慣,為時序收斂留下足夠裕量,也避免頂層例化綜合后的子模塊時出現(xiàn)模塊間IO時序不滿足的情況。綜合階段可根據(jù)設計、工藝需求,設置IO的input/output為時鐘周期的40%-60%。

但是,芯片timing sign off階段會偶爾遇到IO時序少量違例,比如,輸入reg的hold違例、輸出reg的setup違例,本質原因是EDA時序分析工具會在輸出輸入外部假定一個理想化的不帶clock propagation time的寄存器做時序分析。

072ecff2-9090-11ef-a511-92fbcf53809c.png

比如,在set_propagated_clock命令后,下圖左邊寄存器的CLK2端就不帶clock propagation time,而CLK1(與CLK2同頻同相)就帶insertion delay, 擁有時鐘latency,這樣輸入IO的hold違例就可能發(fā)生,setup反而更容易滿足。

07482b78-9090-11ef-a511-92fbcf53809c.png

同理,在set_propagated_clock命令后,輸出IO的setup違例就可能發(fā)生,hold反而更容易滿足。

以輸出IO的register的setup建立時間為例,launch clock的data path上由于存在1.5ns的propagation time/clock latency,發(fā)生了時序違例。這是因為外部假定的register是沒有propagation time/clock latency。而保持時間則反而容易滿足。

075fc80a-9090-11ef-a511-92fbcf53809c.png

虛擬時鐘應運而生,那么如何創(chuàng)建虛擬時鐘?其有什么好處呢?

create_clock -name vclk -period 10

注意,創(chuàng)建虛擬時鐘不用指定clk pin/port。

set_input_delay8-clockvclk[get_portsdata_in ]
set_output_delay8-clockvclk[get_portsdata_out]
EDA工具會基于虛擬時鐘,根據(jù)芯片/模塊內部時鐘的實際insertion delay評估IO外部假定寄存器的propagation time,這樣時序分析就可以規(guī)避不必要的“假”違例,當然也可以不指定virtual clock,只是每次分析時序時都需要檢查并排除這種“假”違例,影響了工作效率。

在約束set_input_delay/set_output_delay時,可以指定真實時鐘CLKP,也可以指定虛擬時鐘vCLKP,并且創(chuàng)建與CLKP同頻率的虛擬時鐘vCLKP時,無需指定時鐘端口,參考腳本如下:

setperiod5
create_clock-nameCLKP-period$period[get_portsCLKP]
create_clock-namevCLKP-period$period

在約束set_input_delay/set_output_delay時,是否使用虛擬時鐘在CTS之前是沒有區(qū)別的,可以認為都是理想時鐘,畢竟clock tree還沒實際建立,時序評估還不能使用propagated clock。而在CTS之后就有如下需要注意的地方:

1)如果指定的是真實時鐘,那么下圖中的Virtual flip-flop虛擬寄存器的時鐘延遲就被忽略了,或者說該虛擬寄存器會被EDA工具認為是理想模型,不帶clock propagated time。 2)如果指定的是虛擬時鐘,工具往往可以根據(jù)內部真實時鐘的平均延遲來估算外部虛擬寄存器的時鐘延遲,更加合理。

077c4eda-9090-11ef-a511-92fbcf53809c.png

為了讓頂層的時序更容易滿足,一般會在IN2REG和REG2OUT過約束,可設置外部延遲為60%的時鐘周期,給內部的數(shù)據(jù)路徑留40%的空間。具體根據(jù)實際項目需求、設計規(guī)格、工藝條件等決定。

另外,set_input_delay要指定-max和-min選項,分別對應setup和hold時序檢查,如果只指定其中一個選項或都不指定,那么工具在檢查setup和hold時,會使用相同的值。

#參考值為0.6,根據(jù)實際情況調整
set_input_delay[expr0.6*$period]-clockvCLKP[get_portsCIN]

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

    關注

    452

    文章

    49980

    瀏覽量

    419643
  • 寄存器
    +關注

    關注

    31

    文章

    5270

    瀏覽量

    119647
  • RTL
    RTL
    +關注

    關注

    1

    文章

    385

    瀏覽量

    59623
  • 虛擬時鐘
    +關注

    關注

    0

    文章

    5

    瀏覽量

    6564

原文標題:為什么要用虛擬時鐘Virtual clock?

文章出處:【微信號:全棧芯片工程師,微信公眾號:全棧芯片工程師】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    虛擬時鐘指數(shù)逼近的無線傳感器網(wǎng)絡時鐘同步協(xié)議

    提出了一個基于虛擬時鐘指數(shù)逼近的無線傳感器網(wǎng)絡時鐘同步協(xié)議,采用一個虛擬時鐘作為全網(wǎng)同步的基礎,從而實現(xiàn)全網(wǎng)同步。由于采用
    發(fā)表于 08-18 15:27 ?1816次閱讀

    創(chuàng)建ubuntu虛擬

    英文的習慣。創(chuàng)建ubuntu虛擬機打開VMware軟件,點擊創(chuàng)建新的虛擬機。進入以下界面:選擇自定義,點擊“下一步”。選擇對應VMware版本的兼容性,版本可在幫助->關于VMw
    發(fā)表于 08-10 14:15

    如何使用虛擬儀器技術創(chuàng)建合成儀器

    如何使用虛擬儀器技術創(chuàng)建合成儀器虛擬儀器的軟件對于一個虛擬儀器系統(tǒng)而言,軟件是最關鍵的部分。虛擬儀器與傳統(tǒng)儀器的最根本的區(qū)別就在于用戶能夠通
    發(fā)表于 02-25 23:42

    2012 labview創(chuàng)建虛擬硬件問題

    我想創(chuàng)建一個虛擬數(shù)據(jù)采集卡,網(wǎng)上百度說點擊設備與接口下的NI-DAQmax Simulated Device ,為啥我的沒有,是不是還要安裝什么模塊求大神指導,謝謝了!
    發(fā)表于 03-29 21:36

    FPGA沙龍:SDR源同步接口時序約束方法沙龍精彩內容回顧!

    傳輸是常用方法。5、SDR輸入時鐘的約束方法:創(chuàng)建虛擬時鐘;虛擬時鐘的頻率與輸入
    發(fā)表于 12-31 14:25

    Linux的虛擬創(chuàng)建方法

    用dd命令就可以創(chuàng)建一個raw格式的虛擬磁盤,通常Xen就是使用這種格式的虛擬磁盤
    發(fā)表于 07-16 08:03

    如何利用NAS網(wǎng)絡存儲創(chuàng)建虛擬主機?

    在網(wǎng)站服務器啟用后,你可以在網(wǎng)站服務器中設定多個虛擬主機,每個虛擬主機的IP 地址是相同的,但是端口號是不同,一個端口號對應一個虛擬主機。如何創(chuàng)建
    發(fā)表于 05-21 17:08

    項目的創(chuàng)建虛擬環(huán)境的配置

    Flask學習系列2一項目的創(chuàng)建虛擬環(huán)境的配置
    發(fā)表于 05-29 12:57

    如何創(chuàng)建虛擬儀器?

    如何創(chuàng)建虛擬儀器?LabVIEW的編程工具介紹
    發(fā)表于 04-14 06:41

    如何創(chuàng)建虛擬機?

    實戰(zhàn)開發(fā)--開發(fā)環(huán)境安裝(五)1、下載軟件vmware和ubuntu-20.04.1-desktop-amd64.iso2、創(chuàng)建虛擬機完整步驟3、安裝嵌入式linux所需的工具包4、安裝vmware tool,實現(xiàn)虛擬機與物理主
    發(fā)表于 12-16 07:45

    Imagination和Mobica合作創(chuàng)建汽車虛擬化環(huán)境

    Imagination和Mobica聯(lián)手打造新的演示,展示如何利用 HyperLane虛擬化技術創(chuàng)建優(yōu)化、安全、可靠的汽車視覺計算解決方案。
    發(fā)表于 11-10 14:40 ?1514次閱讀
    Imagination和Mobica合作<b class='flag-5'>創(chuàng)建</b>汽車<b class='flag-5'>虛擬</b>化環(huán)境

    FPGA虛擬時鐘的使用方法

      但文中對虛擬時鐘的應用介紹的還不夠詳細,因此這里我們再對虛擬時鐘做一個更加細致的介紹。
    的頭像 發(fā)表于 02-16 16:21 ?4193次閱讀
    FPGA<b class='flag-5'>虛擬</b><b class='flag-5'>時鐘</b>的使用方法

    創(chuàng)建具有更寬LCD TFT屏幕的時鐘

    電子發(fā)燒友網(wǎng)站提供《創(chuàng)建具有更寬LCD TFT屏幕的時鐘.zip》資料免費下載
    發(fā)表于 11-10 11:44 ?0次下載
    <b class='flag-5'>創(chuàng)建</b>具有更寬LCD TFT屏幕的<b class='flag-5'>時鐘</b>

    創(chuàng)建Root權限虛擬環(huán)境

    原文鏈接 Linux下創(chuàng)建 Anaconda創(chuàng)建虛擬環(huán)境: conda create -n myroot Linux下激活環(huán)境: source activate myroot myroot為用戶名
    的頭像 發(fā)表于 01-11 17:01 ?1081次閱讀
    <b class='flag-5'>創(chuàng)建</b>Root權限<b class='flag-5'>虛擬</b>環(huán)境

    創(chuàng)建Arduino字時鐘

    電子發(fā)燒友網(wǎng)站提供《創(chuàng)建Arduino字時鐘.zip》資料免費下載
    發(fā)表于 02-03 11:00 ?2次下載
    <b class='flag-5'>創(chuàng)建</b>Arduino字<b class='flag-5'>時鐘</b>