- 相關推薦
PCI總線仲裁器的設計與實現
PCI總線仲裁器的設計與實現1
摘要:基于Altera的CPLD器件的PCI總線仲裁器設計,實現仲裁器的AHDL編程,并結合仿真結果對PCI總線的仲裁進行了論述。關鍵詞:PCI仲裁器,CPLD,仿真
PCI總線仲裁器通常是集成在PCI芯片組中。隨著計算機應用的深入,尤其是嵌入式系統的不斷發展,集成的仲裁器難以滿足某些場合的應用。而采用CPLD技術實現的獨立的PCI總線仲裁器,則較好的適應了這方面的需求。
一﹑PCI總線仲裁機制
PCI的仲裁是基于設備訪問,而不是基于時間分配的。在任一時刻,總線上的一個主設備要想獲得對總線的控制權,就必須發出它的`請求信號(PCIreqN),如果此刻該設備有權控制總線,總線仲裁器就使該設備的總線占用允許信號(PCIgntN)有效,進而獲得總線的使用權。當有多個主設備同時發出總線控制請求時,就必須由仲裁器根據一定的算法判定,當前應該由哪個主設備獲得控制權。
二、仲裁算法
常用的仲裁算法有:公平算法、循環算法等。
本仲裁器設計采用的是循環算法,設備的優先級預先設定。目前的設計實現對四個PCI設備請求的仲裁,各設備優先級由高到低安排為:設備0
PCI總線仲裁器的設計與實現2
PCI總線仲裁器通常是集成在PCI芯片組中。隨著計算機應用的深入,尤其是嵌入式系統的不斷發展,集成的仲裁器難以滿足某些場合的應用。而采用CPLD技術實現的獨立的PCI總線仲裁器,則較好的適應了這方面的需求。
一﹑PCI總線仲裁機制
PCI的仲裁是基于設備訪問,而不是基于時間分配的。在任一時刻,總線上的一個主設備要想獲得對總線的控制權,就必須發出它的請求信號(PCIreqN),如果此刻該設備有權控制總線,總線仲裁器就使該設備的總線占用允許信號(PCIgntN)有效,進而獲得總線的`使用權。當有多個主設備同時發出總線控制請求時,就必須由仲裁器根據一定的算法判定,當前應該由哪個主設備獲得控制權。
二、仲裁算法
常用的仲裁算法有:公平算法、循環算法等。
本仲裁器設計采用的是循環算法,設備的優先級預先設定。目前的設計實現對四個PCI設備請求的仲裁,各設備優先級由高到低安排為:設備0 >設備1 > 設備2 > 設備3。
系統啟動伊始,沒有設備使用PCI總線,也沒有設備請求使用PCI總線,仲裁器總是設定設備0擁有總線控制權,即將總線?坑谠O備0。此時設備0的PCIgntN是有效的。而在此之后,仲裁器總是指定PCI總線的最后一個使用者為總線的停靠設備。
當有一個或多個設備提出擁有總線使用權的請求時,仲裁器將按照事先安排的設備優先級順序逐一查詢。對于只有一個設備請求的情況,該設備的請求將會馬上得到響應;如果多個設備同時發出請求時,仲裁器裁定首先響應優先等級高的設備的請求,當此設備完成數據傳輸交出總線使用權后,再由優先等級低的設備使用總線。示意框圖見圖2。
如果一個設備已獲得總線使用權并且正在進行地址、數據傳輸時,比它優先級別高的設備也發出了占用請求,仲裁器將會撤銷優先級別低的設備的總線占用信號,并把總線使用權交給優先級別高的設備,同時還要確保在任一時刻不會出現多個設備同時占用總線的情況。具體見仿真分析。
【PCI總線仲裁器的設計與實現】相關文章:
基于PCI總線的CAN卡的設計與實現03-18
PCI總線協議的FPGA實現及驅動設計03-18
高速PCI總線接口模塊設計03-08
如何給PCI卡選用合適的總線控制器03-18
基于PCI總線的雷達視頻采集方案03-19
高速PCI總線接口卡的開發03-18
ARM922T核ZCP320A處理器PCI總線操作12-07
郵件服務器設計與實現03-08
短信服務器的設計與實現03-08