梁維
(西安歐亞學院 信息工程學院,陜西 西安 710065)
根據PCI的總線操作類型和總線操作時序關系,我們在設計中抽象出了一種簡單更易于實現的有限狀態機,如圖所示:

假定在狀態機的設計中從進入一個狀態到信號產生,可供狀態機使用是沒有延遲的,除了RST#信號,所有PCI 信號均在CLK 時鐘的上升沿采樣。
空閑狀態,初始狀態。在空閑狀態下,當從設備在時鐘CLK的上升沿采樣到FRAME#信號有效時,將會在下一個時鐘周期轉換到地址及過渡狀態。PCI 從設備如果檢測到IRDY#信號有效,說明PCI 主設備要繼續進行數據寫交易,PCI 從設備在下一個時鐘周期將狀態轉換為數據傳輸狀態。當PCI 從設備判斷PCI 主設備發起的交易沒有命中自己的時候,將會在下一個時鐘周期進入總線忙狀態。當PCI 主設備發起寫交易時,PCI 從設備將會在下一個時鐘周期進入停止狀態。在數據傳輸狀態的過程中,PCI 主設備繼續要求傳送數據時,保持FRAME#線有效,此時PCI 從設備在時鐘的上升沿采樣到這個FRAME#信號,從而在下一個時鐘周期繼續保持數據處于傳輸狀態。在數據傳輸狀態的過程中,當PCI 從設備在時鐘的上升沿采樣到FRAME#信號無效且IRDY#信號有效,說明數據傳送已經進入最后一個數據期。如果PCI 從設備在這個時鐘周期能夠完成數據傳送,PCI 從設備在完成最后的數據傳送后,將在下一個時鐘周期進入停止狀態。
當PCI 從設備處于忙狀態時,說明此時PCI 總線被其它設備占用。此時PCI 從設備檢測FRAME#信號,如果FRAME#信號有效,從設備將繼續保持此忙狀態。
處于忙狀態的PCI 從設備檢測到FRAME#信號變為無效時,說明其它PCI 設備的交易已經進入最后數據期,PCI 從設備將在下一個時鐘周期進入停止狀態。
在停止狀態的時候,PCI 主設備撤消FRAME#和IRDY#信號,而PCI 從設備將保持TRDY#和DEVESEL#信號高電平一個時鐘周期,然后在下一個時鐘周期轉入空閑狀態。
當從設備被選中而沒有進行數據傳輸的時候,地址及過渡狀態將在下一個時鐘周期內保持此狀態。
當在地址及過渡態時,ready 信號無效,則進入重試態。
如果FRAME 信號有效,控制器就置DEVSEL 和STOP 信號有效,TRDY 無效,保持重試狀態。
在重試狀態,如果FRAME 信號無效,則控制器轉入停止狀態,使DEVSEL、TRDY 和STOP 信號失效。
[1]李貴山.陳金鵬.PCI 局部總線及其應用.西安電子科技大學出版社.2003.
[2]劉瑰,朱鴻宇.通用DDR SDRAM 控制器的設計.微型機與應用.2004.
[3]孟慶輝基于FPGA的PCI 接口設計.哈爾濱工業大學.碩士學士論文.2006.