郭京 胡益誠(chéng) 劉博






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