<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

一種SoC芯片在Magma Talus下的物理實(shí)現

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

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

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

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

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

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

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

圖4 時(shí)鐘生成圖

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

2.2 時(shí)序約束的一些策略

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

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

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

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

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

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

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

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"

另外分頻時(shí)鐘與源時(shí)鐘關(guān)系的設置上,我們根據仿真波形來(lái)確定分頻時(shí)鐘與源時(shí)鐘之間的相位關(guān)系,從而為create_generated_clock命令在-divide_by,-edges,-invert,-combinational間選擇不同的選項,使分頻時(shí)鐘和源時(shí)鐘之間的source latency關(guān)系很容易就能確定下來(lái),簡(jiǎn)化了時(shí)序分析。 下面是該設計中幾個(gè)分頻時(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非時(shí)序邏輯時(shí)序?。╠ata-to-data timing arc)的處理

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



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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>