<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 一種SoC芯片在Magma Talus下的物理實現(xiàn)

          一種SoC芯片在Magma Talus下的物理實現(xiàn)

          作者: 時間:2010-04-22 來源:網(wǎng)絡(luò) 收藏

          第二章 時序約束設(shè)計

          芯片時序約束設(shè)計的關(guān)鍵在于功耗管理控制模塊的時序約束。

          2.1 功耗管理控制(Power Management Controller, PMC)模塊簡介

          整個設(shè)計中首先考慮的是PMC模塊的約束。PMC模塊是系統(tǒng)用來控制系統(tǒng)功耗的的控制器,可以通過寄存器配置,使芯片在不同工作模式之間進(jìn)行切換:Slow、Normal、Idle 和Sleep。這些工作模式可以讓用戶根據(jù)芯片不同的應(yīng)用,通過動態(tài)地管理芯片內(nèi)部各子模塊的時鐘源供給和系統(tǒng)的工作頻率來控制芯片的整體功耗。另外,PMC 還包含了各個子模塊的初粒度的時鐘門控電路,通過寄存器配置可以集中控制、關(guān)閉不必要打開的模塊,從而達(dá)到降低功耗的目的。模塊具有以下性能指標(biāo):

          ?內(nèi)置鎖相環(huán)、可動態(tài)變頻;
          ? 支持Slow、Normal、Idle、Sleep等4種工作模式;
          ? 支持模塊工作時鐘集中控制策略,芯片各模塊的時鐘可以通過PMC來關(guān)閉和打開;
          ? 低功耗sleep模式下支持DRAM/SDRAM 的數(shù)據(jù)自刷新,使得DRAM 中的數(shù)據(jù)可以得到保持;
          ? 內(nèi)部具有完整的reset 解決方案,提供3 種reset 選擇:hard reset、soft reset、watchdog reset;
          ? 內(nèi)部具有完整的喚醒功能。

          PMC模塊包含了異步時鐘動態(tài)選擇電路、同步時鐘動態(tài)選擇電路、時鐘分頻電路、時鐘門控電路、跨時鐘域電路,既存在輸入時鐘,又存在輸出時鐘,是一個與時鐘高度相關(guān)、時序違例集中、時序分析較為復(fù)雜的電路。PMC模塊的時鐘生成電路結(jié)構(gòu)示意圖如圖4所示:

          圖4 時鐘生成圖

          系統(tǒng)時鐘經(jīng)過可配置參數(shù)的系統(tǒng)PLL和動態(tài)選擇邏輯后分頻(有1:1、1:2、1:3、1:4四種)。選擇默認(rèn)的2分頻為CPU 提供時鐘,動態(tài)選擇默認(rèn)的3分頻為高速總線提供時鐘,高速總線時鐘通過分頻后(有1:1、1:2、1:4、1:8四種),動態(tài)選擇默認(rèn)的2分頻為低速總線提供時鐘。

          2.2 時序約束的一些策略

          一個完整的時序約束文件包含時鐘的創(chuàng)建、時鐘的約束、輸入輸出端口的約束及時序違例等。SDC格式的約束可以采用豐富的語法表達(dá)出上述內(nèi)容。而后端工具可以比較容易地識別出該格式的約束。我們采用SDC v1.7格式編寫時序約束,這樣既能為后端實現(xiàn)工具blast、talus識別,又能被靜態(tài)時序分析工具PrimeTime識別。

          首先根據(jù)設(shè)計規(guī)格要求確定時鐘周期,在整個后端設(shè)計過程中的不同階段加以調(diào)整和修改。為保守計,我們采取冗余設(shè)計,最終設(shè)定的周期值比規(guī)格要求的值嚴(yán)格。Clock latency和clock skew的設(shè)置也要根據(jù)實際的時鐘樹結(jié)構(gòu)不斷地進(jìn)行調(diào)整和修改。最終合理的時序約束文件是經(jīng)過反復(fù)地實驗不斷地修正而得到的。

          復(fù)雜的時鐘,復(fù)雜的功能模式,必然帶來復(fù)雜的時序約束。對其正確、完備的約束施加,是保證后端設(shè)計時序分析和優(yōu)化有效的關(guān)鍵所在。

          而PMC模塊的主要電路,如時鐘門控電路、分頻電路,動態(tài)選擇電路等,采用例化的標(biāo)準(zhǔn)單元以網(wǎng)表的形式直接給出,在用 Blast Rtl進(jìn)行邏輯綜合前,將這些以網(wǎng)表形式存在的單元使用force keep命令,保證時序約束施加點的固定。

          在Fix Time前設(shè)置時序約束時,采用的方法是3分頻PLL后的源時鐘作為高速總線上的時鐘,低速總線時鐘與高速總線時鐘頻率一致,這樣在邏輯綜合階段時因為還沒有真正的時鐘樹,而設(shè)置的約束又比較保守,使綜合結(jié)果的時序有較大的冗余,又加快了綜合的速度。

          在時鐘樹優(yōu)化時,采用MMMC來進(jìn)行。我們僅以功耗模式中Normal模式里的兩種在應(yīng)用時較常用的時鐘使用模式來設(shè)置MMMC:一種是3分頻PLL后的源時鐘作為高速總線上的時鐘,低速總線時鐘是高速總線時鐘的2分頻;另外一種模式是使用 1分頻PLL后的源時鐘作為高速總線時鐘,低速總線時鐘與高速總線時鐘頻率及PLL后的源時鐘頻率一致,此時低速總線時鐘頻率高于前一種模式下的時鐘頻率,達(dá)到低速總線上模塊能達(dá)到的最高頻率。其他模式僅用來分析及優(yōu)化。這樣可以有效加速時鐘樹創(chuàng)建的時間及分析效率。

          在約束設(shè)計過程中,不可避免的會涉及到各種模式下時鐘間異步關(guān)系的設(shè)置,我們采用SDC v1.7里面的set_clock_group命令來進(jìn)行,該命令能有效的表征各個時鐘之間的異步關(guān)系,避免了set_false_path繁瑣的設(shè)置,并且能夠被 軟件轉(zhuǎn)換為force timing clockgroups命令。下面是該設(shè)計中的兩個clock group設(shè)置的例子:

          set_clock_group -name func_async_ck1 -logically_exclusive
          -group [get_clocks "fck2_n"]
          -group [get_clocks "hck3_n hck2anu3_n"]
          -group [get_clocks "hck2anu4_n"]
          set_clock_group -name func_async_ck2 -asynchronous
          -group [get_clocks "usb_dev_ck"]
          -group [get_clocks "usb_pll_ck"

          另外分頻時鐘與源時鐘關(guān)系的設(shè)置上,我們根據(jù)仿真波形來確定分頻時鐘與源時鐘之間的相位關(guān)系,從而為create_generated_clock命令在-divide_by,-edges,-invert,-combinational間選擇不同的選項,使分頻時鐘和源時鐘之間的source latency關(guān)系很容易就能確定下來,簡化了時序分析。 下面是該設(shè)計中幾個分頻時鐘約束的例子:

          create_generated_clock -name usb_dev_ck
          -divide_by 4 -invert
          -source [get_pins "…/OR2CLK_Inst/Z"]
          -master_clock [get_clocks "pllout48m"] -add
          [get_pins "…/clk_1x_reg/Q"]
          create_generated_clock -name rngck8
          -edges "7 15 23"
          -source [get_pins "…/OR4CLK_Inst/Z"]
          -master_clock [get_clocks "pck_n"] -add
          [get_pins "…/CLK_CNT_reg[2]/Q"]
          create_generated_clock -name pck8_n
          -edges "3 11 19"
          -source [get_pins "…/OR4CLK_Inst/Z"]
          -master_clock [get_clocks "hck3_n"] -add
          [get_pins "…/PCLK_DIV8_reg/Q"]
          create_generated_clock -name hck_out
          -combinational
          -source [get_pins "…/OR2CLK_Inst/Z"]
          -master_clock [get_clocks "hck3_n"] -add
          [get_ports "hclk"]

          2.3非時序邏輯時序?。╠ata-to-data timing arc)的處理

          中使用到的EE模塊是一個異步IP,時序模型存在非時序邏輯的時序?。╪on-sequential library arc,也即data-to-data timing arc):輸入的數(shù)據(jù)或控制信號與輸入pin——CEN、WEN之間有data-to-data 的時序弧存在、其中的控制信號CHER、CHWR、ER_ONLY、WR_ONLY與輸出pin——READY之間也存在著data-to-data 的時序弧。綜合工具并不區(qū)分時序邏輯與非時序邏輯的時序弧,只要設(shè)計中有時序弧的單元存在,綜合工具就認(rèn)為應(yīng)該在相應(yīng)pin腳設(shè)置時鐘,因此在綜合的過程中會認(rèn)為在CEN、WEN、READY這幾個信號pin應(yīng)設(shè)置時鐘。如果不設(shè)置,在綜合過程中,綜合工具的時序分析引擎是報不出任何經(jīng)過或到CEN、WEN、READY的路徑。而一旦設(shè)置為時鐘,就會產(chǎn)生很多false path。我們最后的做法是不在邏輯綜合階段將其設(shè)為時鐘,而是將該問題留到時鐘樹優(yōu)化時,使用config timing check data_to_data on 將data-to-data check選項打開,并使用force timing check命令約束相應(yīng)的時序關(guān)系。



          關(guān)鍵詞: Magma Talus SoC

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();