梁維
(西安歐亞學(xué)院 信息工程學(xué)院,陜西 西安 710065)
根據(jù)PCI的總線操作類型和總線操作時序關(guān)系,我們在設(shè)計中抽象出了一種簡單更易于實現(xiàn)的有限狀態(tài)機(jī),如圖所示:
假定在狀態(tài)機(jī)的設(shè)計中從進(jìn)入一個狀態(tài)到信號產(chǎn)生,可供狀態(tài)機(jī)使用是沒有延遲的,除了RST#信號,所有PCI 信號均在CLK 時鐘的上升沿采樣。
空閑狀態(tài),初始狀態(tài)。在空閑狀態(tài)下,當(dāng)從設(shè)備在時鐘CLK的上升沿采樣到FRAME#信號有效時,將會在下一個時鐘周期轉(zhuǎn)換到地址及過渡狀態(tài)。PCI 從設(shè)備如果檢測到IRDY#信號有效,說明PCI 主設(shè)備要繼續(xù)進(jìn)行數(shù)據(jù)寫交易,PCI 從設(shè)備在下一個時鐘周期將狀態(tài)轉(zhuǎn)換為數(shù)據(jù)傳輸狀態(tài)。當(dāng)PCI 從設(shè)備判斷PCI 主設(shè)備發(fā)起的交易沒有命中自己的時候,將會在下一個時鐘周期進(jìn)入總線忙狀態(tài)。當(dāng)PCI 主設(shè)備發(fā)起寫交易時,PCI 從設(shè)備將會在下一個時鐘周期進(jìn)入停止?fàn)顟B(tài)。在數(shù)據(jù)傳輸狀態(tài)的過程中,PCI 主設(shè)備繼續(xù)要求傳送數(shù)據(jù)時,保持FRAME#線有效,此時PCI 從設(shè)備在時鐘的上升沿采樣到這個FRAME#信號,從而在下一個時鐘周期繼續(xù)保持?jǐn)?shù)據(jù)處于傳輸狀態(tài)。在數(shù)據(jù)傳輸狀態(tài)的過程中,當(dāng)PCI 從設(shè)備在時鐘的上升沿采樣到FRAME#信號無效且IRDY#信號有效,說明數(shù)據(jù)傳送已經(jīng)進(jìn)入最后一個數(shù)據(jù)期。如果PCI 從設(shè)備在這個時鐘周期能夠完成數(shù)據(jù)傳送,PCI 從設(shè)備在完成最后的數(shù)據(jù)傳送后,將在下一個時鐘周期進(jìn)入停止?fàn)顟B(tài)。
當(dāng)PCI 從設(shè)備處于忙狀態(tài)時,說明此時PCI 總線被其它設(shè)備占用。此時PCI 從設(shè)備檢測FRAME#信號,如果FRAME#信號有效,從設(shè)備將繼續(xù)保持此忙狀態(tài)。
處于忙狀態(tài)的PCI 從設(shè)備檢測到FRAME#信號變?yōu)闊o效時,說明其它PCI 設(shè)備的交易已經(jīng)進(jìn)入最后數(shù)據(jù)期,PCI 從設(shè)備將在下一個時鐘周期進(jìn)入停止?fàn)顟B(tài)。
在停止?fàn)顟B(tài)的時候,PCI 主設(shè)備撤消FRAME#和IRDY#信號,而PCI 從設(shè)備將保持TRDY#和DEVESEL#信號高電平一個時鐘周期,然后在下一個時鐘周期轉(zhuǎn)入空閑狀態(tài)。
當(dāng)從設(shè)備被選中而沒有進(jìn)行數(shù)據(jù)傳輸?shù)臅r候,地址及過渡狀態(tài)將在下一個時鐘周期內(nèi)保持此狀態(tài)。
當(dāng)在地址及過渡態(tài)時,ready 信號無效,則進(jìn)入重試態(tài)。
如果FRAME 信號有效,控制器就置DEVSEL 和STOP 信號有效,TRDY 無效,保持重試狀態(tài)。
在重試狀態(tài),如果FRAME 信號無效,則控制器轉(zhuǎn)入停止?fàn)顟B(tài),使DEVSEL、TRDY 和STOP 信號失效。
[1]李貴山.陳金鵬.PCI 局部總線及其應(yīng)用.西安電子科技大學(xué)出版社.2003.
[2]劉瑰,朱鴻宇.通用DDR SDRAM 控制器的設(shè)計.微型機(jī)與應(yīng)用.2004.
[3]孟慶輝基于FPGA的PCI 接口設(shè)計.哈爾濱工業(yè)大學(xué).碩士學(xué)士論文.2006.