郭京 胡益誠 劉博
摘要:局部總線接口是P2020處理器應(yīng)用場景較多的接口之一,為了節(jié)省芯片管腳數(shù)量,P2020芯片對局部總線進行了地址數(shù)據(jù)管腳復(fù)用,因此,硬件需要設(shè)計鎖存器來區(qū)分地址和數(shù)據(jù)信號。當(dāng)使用FPGA實現(xiàn)鎖存器功能時,如果不考慮FPGA布線帶來的時序誤差,容易出現(xiàn)鎖存地址出錯的情況,文章通過分析P2020 處理器局部總線鎖存功能,結(jié)合邏輯時序分析,設(shè)計了一種同步鎖存處理的邏輯方案,對地址信號鎖存時進行時鐘同步設(shè)計,最終使邏輯實現(xiàn)鎖存器達(dá)到穩(wěn)定鎖存地址的效果。
關(guān)鍵詞:P2020處理器;局部總線;FPGA鎖存器;時序分析
中圖分類號:TP31? ? ?文獻標(biāo)識碼:A
文章編號:1009-3044(2022)09-0017-02
P2020處理器是FreeScale 公司推出QorIQ P2 平臺處理器,該型處理器結(jié)合了高性能64 位e500 內(nèi)核,基于Power Architecture 技術(shù),憑借其低功耗、高效率的特點廣泛地應(yīng)用于各類嵌入式場景,P2020處理器局部總線支持GPCM、FCM和UPM 三種控制模式。一般選用GPCM模式作為訪問NOR FLASH等并行存儲的主要方式。為了節(jié)約管腳,P2020局部總線中一部分地址線與數(shù)據(jù)復(fù)用,通過鎖存信號來區(qū)分地址或數(shù)據(jù)信號,因此硬件設(shè)計需考慮鎖存功能的實現(xiàn)[1]。本文主要對P2020 處理器局部總線鎖存功能進行了分析與設(shè)計,使鎖存后局部總線達(dá)到最穩(wěn)定結(jié)果。
1 鎖存功能時序分析
如圖1所示,在一個LCLK周期內(nèi),鎖存信號置高的同時地址數(shù)據(jù)LAD線上傳送地址信號。而后,LALE鎖存信號撤銷后,LAD也變?yōu)閿?shù)據(jù)信號。實際上,處理器為了保證鎖存器LALE在撤銷前能鎖住正確的地址信號,P2020芯片規(guī)定值為LALE比LAD地址信號早撤銷一個平臺周期,平臺周期配置為8倍LCLK頻率。即LAD地址信號撤銷比LALE撤銷慢1/8LCLK。這樣就可以保證外部鎖存器在鎖存信號后有足夠的保持時間(hold time)[2]。
以處理器P2020平臺時鐘為400MHz,LCLK時鐘為50MHz為例,綜上所述可知:
a.一個鎖存周期為20ns,即在20ns內(nèi),LAD上地址信號與LALE都發(fā)生了建立、保持、撤銷三個階段。
b.在LALE高有效期內(nèi),LAD總線上為地址信號,且LALE信號撤銷會比LAD上地址信號撤銷早一個平臺時鐘周期,即LAD上地址信號相對于LALE下降沿的保持時間為2.5ns。
2 鎖存設(shè)計中的時延
如圖2所示,P2020手冊中推薦的鎖存功能實現(xiàn)方法是在處理器與外設(shè)之間,通過一個硬件鎖存器,通過LALE控制鎖存器,用來輸出穩(wěn)定的地址與數(shù)據(jù)信號。
當(dāng)使用外部鎖存器芯片時,只需滿足鎖存器鎖存信號的脈沖寬度和地址保持時間后,即可鎖存出正確的地址信號。但是在設(shè)計中,常常會用FPGA邏輯功能所取代外部鎖存器。此時設(shè)計過程中如果按照手冊做簡單替換,鎖存處理會發(fā)生預(yù)期之外的現(xiàn)象。
當(dāng)邏輯中鎖存器在LALE的下降沿時鎖存地址,理論上鎖存器是在20ns時鐘周期中最后2.5ns才開始地址信號采樣,即鎖存地址時已經(jīng)非常接近鎖存周期結(jié)束,LAD地址信號即將撤銷。此時需考慮走線過程產(chǎn)生的時延。實際設(shè)計需考慮:
a. CPU的內(nèi)部信號從內(nèi)部寄存器輸出到CPU端口需要的時延為Tdelay1;
b. PCB布局布線的信號從CPU端口發(fā)出傳送至FPGA端口存在傳輸時延為Tdelay2;
c. 信號從FPGA端口鎖存至FPGA內(nèi)部寄存器需要的時延為Tdelay3。
從CPU發(fā)出eLBC信號至FPGA內(nèi)部鎖存器鎖存前,LAD中16位地址信號與LALE鎖存信號都會存在Tdelay1+Tdelay2+Tdelay3的時延,若兩組信號時延差異超過了保持時間2.5ns,即LALE到達(dá)鎖存器時間太晚,導(dǎo)致則邏輯中鎖存器在LALE的下降沿鎖不住LAD正確的地址信號。實際設(shè)計中,當(dāng)芯片距離較近時,Tdelay1和Tdelay2的誤差可忽略不計,但由于FPGA邏輯綜合后的差異,Tdelay3的差異可能會遠(yuǎn)超2.5ns。
3 邏輯實現(xiàn)外部鎖存器的分析
參照圖2手冊推薦設(shè)計,邏輯實現(xiàn)鎖存器如圖3所示,該硬件設(shè)計為P2020處理通過FPGA實現(xiàn)鎖存器輸出地址數(shù)據(jù)信號,在一個訪問周期內(nèi),eLBC總線的從設(shè)備必須在LALE鎖存信號有效時,將LAD[0:15]有效的地址信號鎖存起來作為局部總線的A[0:15]位。而后, LALE信號變?yōu)闊o效,LAD[0:15]作為局部總線的數(shù)據(jù)線使用,CPU在FPGA的譯碼邏輯后形成可訪問外設(shè)的Local Bus接口。
如果邏輯中鎖存器在LALE上升沿采樣時,結(jié)合圖,可知,LALE與LAD上地址信號同有效,鎖存器中,LAD相對LALE上升沿的理論建立時間為0,因此該種采樣方式不合理,只能在LALE下降沿采樣鎖存信號。
查看在LALE下降沿采樣鎖存信號設(shè)計方式生成的邏輯靜態(tài)時序報告,如圖7所示,以LAD(10)信號線為例,LAD(10)經(jīng)過觸發(fā)器時的靜態(tài)時序,有:
a.LAD(10)建立時間(setup time)為0.195ns,該時序代表經(jīng)過邏輯布線后,LAD(10)在邏輯觸發(fā)器LALE下降沿采樣前,需要提前0.195ns建立時間;
b.LAD(10)保持時間(hold time)為1.859ns,該時序代表經(jīng)過邏輯布線后,LAD(10)在邏輯觸發(fā)器LALE下降沿采樣后,需要有1.859ns保持時間后信號可以結(jié)束。
c. 考慮最理想情況,處理器發(fā)出鎖存信號下降沿后,地址線可以保持2.5ns,即若LAD(10)要被邏輯觸發(fā)器成功鎖存,在從處理器發(fā)出信號到邏輯采樣前,通路上的LAD(10)相對于LALE鎖存信號的下降沿至少需要保持2.5ns-1.859ns=0.641ns的時間裕量。
d. 由于該種設(shè)計基于LALE采樣,所以邏輯會把LALE當(dāng)作時鐘信號處理以保證輸出時鐘的穩(wěn)定性。此時會不可避免地產(chǎn)生LALE的延遲與抖動,從而消除甚至超過LAD(10)相對于LALE下降沿的保持時間裕量。查看時鐘報告中LALE信號,LALE經(jīng)過邏輯會產(chǎn)生0.642ns的抖動以及最大2.818ns的延遲,該抖動已經(jīng)超過該種方案c條件中最小裕量。
綜上所述,經(jīng)過邏輯處理后LALE的下降沿采樣時無法保證采樣到正確LAD(10)信號,存在時序緊張的風(fēng)險[4]。
4 改進后的設(shè)計及驗證
由于FPGA本身存在布局布線的誤差,在邏輯中按照處理器手冊設(shè)計鎖存器會存在時序緊張的風(fēng)險,造成LAD鎖存出錯。考慮不同實現(xiàn)方法中的差異,需設(shè)計一種新的邏輯鎖存方法。如圖5所示
利用邏輯設(shè)計鎖存功能時,應(yīng)當(dāng)進行時鐘同步,即eLBC接口的LCLK時鐘作為觸發(fā)信號,邏輯對LCLK時鐘的上升沿采樣,這樣當(dāng)LALE鎖存信號為高時,進行地址鎖存,邏輯采樣點相比之前設(shè)計前移,處于地址鎖存周期的中心時刻,可以有效保證采集到穩(wěn)定的地址信號,可充分避免因走線布線帶來的時序誤差[5]。該種設(shè)計有:
a.處理器發(fā)出的所有LAD地址信號對于20ns時鐘周期LCLK的上升沿的建立與保持時間都為10ns;
b.如圖6所示,新設(shè)計邏輯中所有LAD信號的對LCLK上升沿要求的建立時間和保持時間都在5ns之內(nèi);
c.采樣時鐘LCLK經(jīng)過邏輯后產(chǎn)生延時與抖動分別為0.075ns與1.046ns。
綜上所述,在最惡劣情況下,該種設(shè)計方案b、c條件中任意時序要求之和、之差都小于a條件中信號產(chǎn)生的時序,即處理器產(chǎn)生LAD信號對于LCLK上升沿的10ns建立與保持時間可充分滿足邏輯采樣對時序的要求。因此,該種設(shè)計可以消除了時序緊張,且擁有較大的時間裕量,可以保證系統(tǒng)實現(xiàn)鎖存功能的可靠性與穩(wěn)定性。
5 結(jié)論
當(dāng)使用邏輯實現(xiàn)P2020處理器鎖存功能時,需充分考慮不同設(shè)計方式中的差異,當(dāng)使用硬件鎖存器芯片時,整個硬件中時延較小,按照手冊推薦,滿足相應(yīng)時序要求即可。當(dāng)使用邏輯實現(xiàn)鎖存功能時,需要考慮邏輯芯片在布局布線過程中對各類信號產(chǎn)生時延對鎖存功能的影響,需要進行鎖存功能的同步處理,使得鎖存后的結(jié)果更加穩(wěn)定可靠。
參考文獻:
[1] 馮毅,付潔.P2020處理器LBC總線位寬轉(zhuǎn)換算法研究[J].信息通信,2018,31(11):116-117,119.
[2] 馮毅,陳穎圖,程小芩.P2020處理器GPCM接口時序研究[J].航空計算技術(shù),2019,49(1):127-129.
[3] P2020 QorIQ Integrated Processor Reference Manua Rev.2[C/OL]. NXP Semiconductor Corp. http://nxp.com, 2012.
[4] 成桂梅,翟國芳,吳淞波,等.一種FPGA布局布線延時特性測試方法:CN105117513B[P].2018-08-07.
[5] 姜子威.超高速數(shù)據(jù)采集系統(tǒng)中多器件同步自校正方法研究與實現(xiàn)[D].成都:電子科技大學(xué),2019.
【通聯(lián)編輯:梁書】