一種pci總線接口芯片的控制方法
【專利摘要】本發明提供一種PCI總線接口芯片的控制方法,采用PCI9054作為PCI總線的接口芯片,實現PCI總線V2.2協議;采用FPGA的現場可編程門陣列作為PCI9054的控制芯片,利用硬件描述語言VHDL設計狀態機對PCI9054芯片進行控制,實現了PCI總線的數據傳輸功能,PCI9054通過本地Local總線與FPGA進行通信,采用PCI9054數據總線和地址總線非復用的C工作模式,Local總線和PCI總線之間的數據傳輸采用DMA的方式。數據DMA傳輸完成后FPGA通過nLINT引腳向PCI9054發送中斷。對狀態機各狀態的編碼采用了格雷碼的方式,可以有效的防止毛刺的產生,使系統穩定。
【專利說明】—種PCI總線接口芯片的控制方法
【技術領域】
[0001]本發明涉及一種計算機應用【技術領域】,具體地說是一種PCI總線接口芯片的控制方法。
【背景技術】
[0002]PCI總線是Intel公司推出的一種高性能局部總線,是目前廣泛使用的一種總線標準。PCI 9054是美國PLX公司生產的32bit、33MHz的PCI接口芯片,符合PCI總線規范V2.2,突發傳輸速率可達132MB/s。PCI 9054提供PCI總線和本地Local總線接口,Local總線的數據寬度為32bit,時鐘頻率可達50MHz。
[0003]狀態機是數字時序邏輯中重要的設計內容,通過狀態轉移圖設計手段可以將復雜的控制時序圖形化表示,分解為狀態之間的轉換關系,將問題簡化。以硬件描述語言VHDL完成的電路設計,經過綜合與布局后,可以快速燒錄至FPGA上進行測試,是現代IC設計驗證的技術主流。
【發明內容】
[0004]本發明提供一種PCI總線接口芯片的控制方法,采用了 PCI 9054作為PCI總線的接口芯片,實現PCI總線V2.2協議;采用FPGA的現場可編程門陣列作為PCI 9054的控制芯片,利用硬件描述語言VHDL設計狀態機對PCI 9054芯片進行控制,實現了 PCI總線的數據傳輸功能,PCI總線接口芯片的控制方法包括:(I)FPGA與PCI 9054的接口及引腳功能;(2) FPGA控制PCI 9054的狀態機設計方法,其中:
(1)FPGA與PCI9054的接口及引腳功能:描述了 PCI 9054的引腳功能及與FPGA的接口,利用了 FPGA的1 口與PCI 9054相連,便于FPGA對PCI 9054進行控制;
(2)FPGA控制PCI9054的狀態機設計方法:采用PCI 9054的突發訪問方式設計Local端總線控制邏輯,通過FPGA的狀態機來實現對PCI總線接口芯片的控制,具體控制過程如下:
(1)系統復位后狀態機處于空閑狀態,當nADS= ‘0’時如經過FPGA的Local端接口邏輯譯碼后表明需要訪問本地空間,則進入訪問開始狀態,否則停留在空閑狀態;
(2)在訪問開始狀態,如果nBLAST= ‘ I’,則進入突發開始狀態;
(3)突發開始狀態表示傳輸開始,之后進入突發等待狀態;
(4)在突發等待狀態,數據在Local總線上保持穩定,之后進入突發傳輸狀態;
(5)數據在突發傳輸狀態下從Local總線被取走,之后狀態機進入單數據突發完成狀態;
(6)在單數據突發傳輸完成狀態,如果nBLAST= ‘I’表示沒有進行到突發傳輸的最后階段,需要重新進入突發開始狀態;如果nBLAST = ‘0’表示突發傳輸進行到了最后階段,之后進入最后數據突發開始狀態;
(7)最后數據突發開始狀態表示突發訪問最后階段的開始,之后狀態機進入最后突發等待狀態;
(8)在最后突發等待狀態,最后的數據在Local總線上保持,之后進入最后數據突發傳輸狀態;
(9)在最后數據突發傳輸狀態,最后的數據從Local總線上被取走,之后進入最后數據突發完成狀態;
(10)在最后數據突發完成狀態,如果nADS= ‘0’,經FPGA接口邏輯譯碼后表明還需要訪問本地空間,則進入訪問開始狀態,否則返回空閑狀態。
[0005]本發明的目的有益效果是:PCI 9054通過本地Local總線與FPGA進行通信,采用PCI 9054數據總線和地址總線非復用的C工作模式,Local總線和PCI總線之間的數據傳輸采用DMA的方式。數據DMA傳輸完成后FPGA通過nLINT引腳向PCI 9054發送中斷。對狀態機各狀態的編碼采用了格雷碼的方式,可以有效的防止毛刺的產生,使系統穩定。
【專利附圖】
【附圖說明】
[0006]圖1是PCI 9054芯片與FPGA的接口圖;
圖2是FPGA的狀態機轉移圖。
【具體實施方式】
[0007]參照說明書附圖對本發明的控制方法作以下詳細地說明。
[0008]采用PCI 9054的突發訪問方式設計了 Local端總線控制邏輯,設計FPGA的狀態機來實現,其狀態轉移圖如圖2所示,具體工作過程如下:
(1)系統復位后狀態機處于空閑狀態,當nADS= ‘0’時如經過FPGA的Local端接口邏輯譯碼后表明需要訪問本地空間,則進入訪問開始狀態,否則停留在空閑狀態;
(2)在訪問開始狀態,如果nBLAST= ‘I’,則進入突發開始狀態;
(3)突發開始狀態表示傳輸開始,之后進入突發等待狀態;
(4)在突發等待狀態,數據在Local總線上保持穩定,之后進入突發傳輸狀態;
(5)數據在突發傳輸狀態下從Local總線被取走,之后狀態機進入單數據突發完成狀態;
(6)在單數據突發傳輸完成狀態,如果nBLAST= ‘I’表示沒有進行到突發傳輸的最后階段,需要重新進入突發開始狀態;如果nBLAST = ‘0’表示突發傳輸進行到了最后階段,之后進入最后數據突發開始狀態;
(7)最后數據突發開始狀態表示突發訪問最后階段的開始,之后狀態機進入最后突發等待狀態;
(8)在最后突發等待狀態,最后的數據在Local總線上保持,之后進入最后數據突發傳輸狀態;
(9)在最后數據突發傳輸狀態,最后的數據從Local總線上被取走,之后進入最后數據突發完成狀態;
(10)在最后數據突發完成狀態,如果nADS= ‘0’,經FPGA接口邏輯譯碼后表明還需要訪問本地空間,則進入訪問開始狀態,否則返回空閑狀態。
[0009]采用PCI 9054作為PCI總線接口芯片,利用硬件描述語言VHDL設計狀態機對PCI9054進行控制,符合PCI總線接口規范V2.2,狀態機可以移植到不同型號的FPGA中,使得設計靈活方便。本發明可以滿足各種PCI設備的使用需求。
實施例
[0010]采用PCI 9054作為PCI接口芯片,利用FPGA的硬件描述語言VHDL設計狀態機對PCI 9054進行控制。
[0011]PCI 9054芯片的引腳及與FPGA的接口如附圖1所示,PCI 9054的引腳與FPGA的1 口連接,各引腳的功能如下:
LCLK:輸入信號,是本地時鐘,外接50MHz晶振;
LHOLD:輸出信號,指示請求使用Local總線;
LHOLDA:輸入信號,指示本地端對使用總線請求的應答;nREADY:輸出信號,是外部等待信號;
nADS:輸出信號,表不地址有效,低電平表不可以訪問本地Local地址;nBLAST:輸出信號,表不本次Local總線訪問的最后一個傳輸周期,低有效;nLINT:輸入信號,是本地中斷信號;
LA[15..0]:輸出信號,是本地地址總線;
LD[31..0]:輸入輸出信號,是本地數據總線;
LW/R:輸出信號,表示讀寫使能,低電平表示讀,高電平表示寫。
[0012]除說明書所述的技術特征外,均為本專業技術人員的已知技術。
【權利要求】
1.一種PCI總線接口芯片的控制方法,其特征在于采用了 PCI 9054作為PCI總線的接口芯片,實現PCI總線V2.2協議;采用FPGA的現場可編程門陣列作為PCI 9054的控制芯片,利用硬件描述語言VHDL設計狀態機對PCI 9054芯片進行控制,實現了 PCI總線的數據傳輸功能,PCI總線接口芯片的控制方法包括:(I)FPGA與PCI 9054的接口及引腳功能;(2) FPGA控制PCI 9054的狀態機設計方法,其中:(1)FPGA與PCI9054的接口及引腳功能:描述了 PCI 9054的引腳功能及與FPGA的接口,利用了 FPGA的1 口與PCI 9054相連,便于FPGA對PCI 9054進行控制;(2)FPGA控制PCI9054的狀態機設計方法:采用PCI 9054的突發訪問方式設計Local端總線控制邏輯,通過FPGA的狀態機來實現對PCI總線接口芯片的控制,具體控制過程如下:(1)系統復位后狀態機處于空閑狀態,當nADS= ‘0’時如經過FPGA的Local端接口邏輯譯碼后表明需要訪問本地空間,則進入訪問開始狀態,否則停留在空閑狀態;(2)在訪問開始狀態,如果nBLAST= ‘ I’,則進入突發開始狀態;(3)突發開始狀態表示傳輸開始,之后進入突發等待狀態;(4)在突發等待狀態,數據在Local總線上保持穩定,之后進入突發傳輸狀態;(5)數據在突發傳輸狀態下從Local總線被取走,之后狀態機進入單數據突發完成狀態;(6)在單數據突發傳輸完成狀態,如果nBLAST= ‘I’表示沒有進行到突發傳輸的最后階段,需要重新進入突發開始狀態;如果nBLAST = ‘0’表示突發傳輸進行到了最后階段,之后進入最后數據突發開始狀態;(7)最后數據突發開始狀態表示突發訪問最后階段的開始,之后狀態機進入最后突發等待狀態;(8)在最后突發等待狀態,最后的數據在Local總線上保持,之后進入最后數據突發傳輸狀態;(9)在最后數據突發傳輸狀態,最后的數據從Local總線上被取走,之后進入最后數據突發完成狀態;(10)在最后數據突發完成狀態,如果nADS= ‘0’,經FPGA接口邏輯譯碼后表明還需要訪問本地空間,則進入訪問開始狀態,否則返回空閑狀態。
【文檔編號】G07G1/12GK104134298SQ201410400192
【公開日】2014年11月5日 申請日期:2014年8月14日 優先權日:2014年8月14日
【發明者】蘇振宇 申請人:浪潮電子信息產業股份有限公司