基于FPGA的PCI接口設計
1 PCI總線及其接口概述
PCI總線是高速同步總線,具有32bit總線寬度,工作頻率是33MHz,最大傳輸率為132Mbyte/s,遠遠大于ISA總線5Mbyte/s的速率。PICMG(PCI工業(yè)計算機制造商聯(lián)盟)制定的更加堅固耐用的Compact PCI總線規(guī)范,支持64位總線寬度,66MHz作頻率,最大傳輸率為528Mbye/s。基于PC機的高速數(shù)據(jù)采集系統(tǒng)和各種虛擬儀器,幾乎都選擇了PCI總線。在現(xiàn)代高速通訊、測試等領域的嵌入式應用中,Compact PCI總線大有超過VME和VXI總線的趨勢。PCI的高性能、高效率以及與現(xiàn)有標準的兼容性和充裕的發(fā)展?jié)摿Γ瞧渌偩€所不能及的,被計算機界公認為最具高瞻遠矚的局部總線標準。
PCI總線接口相對其它總線接口來說是比較復雜的,它不但有著嚴格的同步時序要求,而且為了實現(xiàn)即插即用和自動配置,PCI接口還必須有許多配置寄存器。根據(jù)用戶設備的性質(zhì)不同,PCI設備分為MASTER(主設備)和TARGET(從設備),因此PCI接口類型也就分為Master和TARGET兩種接口。概括地說,PCI接口主要包括PCI標準配置寄存器(64字節(jié))、PCI 總線邏輯接口、用戶設備邏輯接口、數(shù)據(jù)緩沖區(qū)等。
作為一般應用設計工程師,為縮短開發(fā)周期,沒有必要自己去設計全部的復雜的接口邏輯,甚至可以不必完全理解PCI規(guī)范的細節(jié),就能進行PCI用戶設備的設計。目前,市場上有一些專用PCI接口芯片,如AMCC公司的S5920(TARGET接口)、S5933(MASTER接口)等。使用這些專用PCI接口芯片,設計者只需要使用地址線、數(shù)據(jù)線以及少數(shù)幾個讀寫控制信號,就能實現(xiàn)PCI總線與PCI用戶設備之間的連接,類似ISA總線接口那么簡單方便。
隨著FPGA (現(xiàn)場可編程邏輯陣列請介紹一下Flash的全面管理問題。) 技術(shù)的快速發(fā)展,萬門以上乃至幾十萬門邏輯陣列的使用越來越普遍,FPGA的單片價格也大幅度下降。與專用PCI接口芯片相似,很多FPGA制造商都提供了PCI接口宏核邏輯(PCI MegaCore)。設計者可以將PCI用戶邏輯與PCI MegaCore集成在一片F(xiàn)PGA里,并且可以在頂層通過仿真來驗證PCI接口以及用戶邏輯設計的正確與否,這樣可以大幅度提高調(diào)試速度,縮短開發(fā)周期,提高電路板的集成度和系統(tǒng)的性能。
Altera公司提供了多種不同功能的PCI MegaCore,例如:pci _a(帶有DMA的32位MASTER/TARGET接口),pci_mt64(支持64位的MASTER/TARGET接口),pci_mt32(32位的MASTER/TARGET接口),pci_t64(支持64位的TARGET接口),pci_t32(32位的TARGET接口)等。不同的PCI MegaCore占用的資源是不同的,設計者可以根據(jù)PCI用戶設備的需求來選擇。
本文將介紹Altera公司提供的最簡單的32位PCI TARGET接口宏核邏輯pci_t32。重點介紹利用pci_t32進行PCI接口設計的方法及應用注意事項,并給出具體設計實例。其它PCI MegaCore的設計方法與此相類似。本文不介紹有關(guān)PCI規(guī)范的細節(jié)內(nèi)容。
2 Pci_t32 MegaCore的內(nèi)部結(jié)構(gòu)及外圍信號
Pci_t32是ALTERA公司提供的最簡單的32位PCI TARGET接口宏核邏輯,支持33MHz和66MHz的PCI時鐘。
Pci_t32內(nèi)部結(jié)構(gòu)包含如下幾個模塊:
PCI總線配置寄存器,是符合PCI規(guī)范2.2版規(guī)定的所有配置寄存器。配置寄存器用于識別設備、控制PCI總線功能、提供PCI總線狀態(tài)等。
奇偶校驗模塊,用于對數(shù)據(jù)、地址、命令等進行奇偶校驗。
PCI側(cè)TARGET控制模塊(PCI target control block),用于控制pci_t32(作為TARGET)與PCI總線的各種操作。
用戶設備側(cè)TARGET控制模塊(local target cONtrol block),用于控制pci_t32(作為TARGET)與用戶邏輯的各種操作。
用戶設備側(cè)地址/數(shù)據(jù)/命令/字節(jié)使能模塊,接收和輸出用戶側(cè)的所有地址/數(shù)據(jù)/命令/字節(jié)使能等信號。
評論