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