基于EP2SGX系列FPGA的PCI接口設(shè)計
PCI總線是同步總線,時序要求比較嚴格,比如:Tval最大為11 ns,Tprop最大為10 ns,Tsu最小為7 ns,Th為0 ns,此外,PCI總線接口還需要一定數(shù)量的宏單元和I/0引腳。在本設(shè)計中,為了同時實現(xiàn)光纖數(shù)據(jù)傳輸?shù)绕渌倪壿嫻δ埽x用了ALTERA公司StratixIIGX系列中型號為EP2SGX90EF1152的一款FPGA芯片。該芯片主要性能如下:片內(nèi)90 960個邏輯單元;4.5 Mb的RAM資源;支持12路高速串行收發(fā)器通道,每路傳輸速率高達6.375 Gb/s;接口電平支持:LVTTL、LVDS、LVPECL。3.3-V PCI等眾多I/O標準。EP2SGX系列芯片內(nèi)部有專門支持PCI電氣特性的區(qū)域(Bank),非常適合于PCI接口的開發(fā)。本文引用地址:http://butianyuan.cn/article/191877.htm
3 PCI接口設(shè)計實現(xiàn)
本設(shè)計利用ALTERA公司的QuartusIl7.2軟件和硬件描述語言,采用自頂向下的設(shè)計方法進行PCI接口的邏輯設(shè)計,并利用QuartusII軟件對設(shè)計進行了功能和時序仿真。
設(shè)計的具體流程如下:首先從總體上考慮:PCI接口作為一個功能模塊,嵌入在FPGA內(nèi)部,內(nèi)側(cè)面向用戶邏輯,外側(cè)通過芯片的I/O管腳與PCI總線相連。在用戶端,需要把復雜的PCI總線命令轉(zhuǎn)換為便于用戶使用的類似ISA總線的命令格式,把地址線與數(shù)據(jù)線分離,并產(chǎn)生單獨的讀寫控制信號。其次,根據(jù)總體要求,進行頂層設(shè)計和內(nèi)部模塊劃分。最后,對具體的功能模塊用軟件編程實現(xiàn)并進行功能仿真。
本設(shè)計中PCI接口的總體框圖如圖4所示。由圖4可知,PCI接口主要由地址/命令鎖存和譯碼、內(nèi)部通信、外部通信和總線狀態(tài)機、中斷處理等模塊組成。
3.1 地址/命令鎖存和譯碼
由于PCI總線為地址和數(shù)據(jù)復用型總線,在使用中需將地址和數(shù)據(jù)進行分離,首先要對PCI總線上的32位地址/數(shù)據(jù)總線鎖存。譯碼是對來自主機的PCI總線命令信號CBE[3..0]和IDSEL信號進行識別,并相應地向內(nèi)部邏輯發(fā)出配置空間讀寫操作、I/O讀寫操作、存儲器讀寫操作等信號。
3.2 外部通信
外部通信接口主要完成對PCI總線的應答,并發(fā)出相應的信號。對于瀆寫操作,接口發(fā)出DEVSEL#信號響應PCI的FRAME#信號,完成握手。PCI協(xié)議規(guī)定了在交易期間對地址/數(shù)據(jù)總線和命令/字節(jié)使能總線進行奇偶校驗。讀交易期間,接口被要求驅(qū)動PAR信號線;寫交易期間,目標將計算AD[31..0]和CBE[3..0]上的奇偶性,并把PERR信號送給PCI。
3.3 內(nèi)部通信
內(nèi)部通信接口主要產(chǎn),豐面向用戶端,便于用戶使用的一信號,包括復位信號、分離的讀和寫信號、地址總線、32位的數(shù)據(jù)讀寫總線。
3.4 總線狀態(tài)機
該模塊足本設(shè)計的關(guān)鍵部分,其主要功能是根據(jù)PCI協(xié)議產(chǎn)生總時序來控制總線交易??偩€狀態(tài)機包含的狀態(tài)主要有總線空閑狀態(tài)、總線??繝顟B(tài)、主設(shè)備數(shù)據(jù)傳輸狀態(tài)、從設(shè)備數(shù)據(jù)傳輸狀態(tài)、配置空間讀寫狀態(tài)、目標I/O空間讀寫狀態(tài)、主設(shè)備讀寫狀態(tài)、總線翻轉(zhuǎn)狀態(tài)、數(shù)據(jù)傳輸終止狀態(tài)等。以上各狀態(tài)主要依據(jù)輸入的PCIRST、FRAME#、IDSEL、CBE [3..0 ]、GNT#、IRDY#、TRDY#、STOP#等信號變化進行狀態(tài)轉(zhuǎn)換。
3.5 中斷處理
本模塊主要實現(xiàn)各種外部中斷源的輸入處理、中斷允許寄存器和中斷狀態(tài)寄存器的控制和管理、INTA#信號的輸出處理等。
4 工具軟件在PCI總線調(diào)試中的使用
在板卡的調(diào)試過程中使用了WinDriver軟件,該軟件是美國Jungo公司出品用于編寫驅(qū)動程序的一種工具,是主要針對PCI、ISA、USB的一種開發(fā)工具。該軟件對于調(diào)試PCI板卡很方便。用戶不需要復雜的編程就能控制PCI沒備進行讀寫操作,從而在硬件剛設(shè)計調(diào)試時,就能測試板卡性能的好壞,可測試的功能具體包括VenderID、Device ID的識別、基地址的分配、中斷的分配、I/O端口的讀寫測試等。
評論