基于CPLD的通用PCI擴展總線橋設(shè)計-設(shè)計應(yīng)用_第1頁
基于CPLD的通用PCI擴展總線橋設(shè)計-設(shè)計應(yīng)用_第2頁
基于CPLD的通用PCI擴展總線橋設(shè)計-設(shè)計應(yīng)用_第3頁
基于CPLD的通用PCI擴展總線橋設(shè)計-設(shè)計應(yīng)用_第4頁
基于CPLD的通用PCI擴展總線橋設(shè)計-設(shè)計應(yīng)用_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

精品文檔-下載后可編輯基于CPLD的通用PCI擴展總線橋設(shè)計-設(shè)計應(yīng)用基于CPLD的通用PCI擴展總線橋設(shè)計西安電子科技大學(xué)電子工程學(xué)院汪安東引言

隨著微處理機性能的迅速提高以及多媒體技術(shù)和高速網(wǎng)絡(luò)的不斷發(fā)展,人們對微機系統(tǒng)的I/O帶寬提出了越來越高的要求,計算機的標(biāo)準(zhǔn)總線也從ISA、EISA和MC逐漸過渡到PCI總線。由于PCI總線具有諸多優(yōu)點,如支持64位數(shù)據(jù)傳送,多總線主控和線性突發(fā)方式(Burst)和高達(dá)132Mb/s數(shù)據(jù)傳輸率,使得人們更傾向于用PCI總線的處理芯片來構(gòu)造系統(tǒng)機、工作站、外圍設(shè)備及板卡。于是,一些舊的I/O設(shè)備和存儲器由于不支持PCI總線而面臨著被淘汰的地步,為了實現(xiàn)連接PCI總線和這些I/O設(shè)備、存儲器的連接,可以設(shè)計一個PCI擴展總線橋,通過橋電路,接出一條標(biāo)準(zhǔn)的I/O擴展總線,如ISA、EISA或MCA總線,從而可繼續(xù)使用現(xiàn)有的I/O設(shè)備,以增加PCI總線的兼容性和選擇范圍。

開發(fā)PCI總線接口電路,通常有兩種途徑。一種是使用專用接口芯片,如美國AMCC公司生產(chǎn)的PCI協(xié)議控制芯片S5920、S5933或PLX公司的PCI905X系列芯片等,另一種則是利用可編程邏輯器件(PLD)來實現(xiàn)PCI總線接口功能。采用專用芯片,可以比較容易的實現(xiàn)PCI接口,可以讓開發(fā)者避開復(fù)雜的PCI總線協(xié)議,減少工作量,降低設(shè)計難度,縮短開發(fā)周期。但是,使用PCI專用芯片也存在一些問題:價格太高,功能太全,開發(fā)者一般只用了其中的一部分,既造成了資源浪費又不經(jīng)濟;并且它的接口固定,使用起來不太靈活。而應(yīng)用可編程邏輯器件進(jìn)行PCI接口,能夠較靈活的實現(xiàn)所需要的功能。由于PCI擴展總線橋的后端用戶邏輯時序較簡單,主要是要設(shè)計PCI總線的接口電路,所以設(shè)計選用Altera公司的CPLD器件EPM3512,該芯片是該公司生產(chǎn)的MAX3000系列器件中的一種,它有512個宏單元,10000個可用門,用戶I/O腳為188個,頻率可達(dá)176MHz,封裝為208腳PQFP形式。

PCI擴展總線橋邏輯設(shè)計

PCI擴展總線橋的設(shè)計包括前端的PCI總線接口設(shè)計和后端的用戶邏輯設(shè)計。PCI總線是一個地址/數(shù)據(jù)、命令/字節(jié)選擇信號復(fù)用的總線,它采用主從信號雙向握手的方式來控制數(shù)據(jù)的傳輸。在一個典型的PCI總線系統(tǒng)結(jié)構(gòu)中,PCI擴展總線橋可定義為一個從設(shè)備,根據(jù)PCI總線協(xié)議,這時PCI接口信號線至少為47條。設(shè)計中的用戶邏輯是為橋后端的設(shè)備產(chǎn)生正常工作所需的觸發(fā)信號、地址選通信號以及進(jìn)行數(shù)據(jù)傳輸,這一部分實質(zhì)是將一些常規(guī)電路,如時基電路、觸發(fā)電路和地址選通電路等,用硬件描述語言編程來實現(xiàn),這部分實現(xiàn)起來很容易,相應(yīng)的接口部分邏輯圖1所示。

根據(jù)邏輯圖,設(shè)計的PCI接口模塊應(yīng)該包括以下部分:

1)存及數(shù)據(jù)分離、命令鎖存及字節(jié)選擇信號分離電路。這兩部分電路比較簡單,很容易實現(xiàn)。

2)地址產(chǎn)生電路。PCI的突發(fā)傳輸方式包括一個地址周期和若干個數(shù)據(jù)周期,因此在PCI接口中必須包含高速的地址產(chǎn)生部件用于向后級電路提供連續(xù)的地址。

3)地址譯碼及命令譯碼,這一部分與傳統(tǒng)總線設(shè)計相同。

4)控制信號交互電路。PCI總線上的數(shù)據(jù)傳輸基本上由四根信號線控制。Frame#表示對話的開始和結(jié)束,它同時受主設(shè)備和從設(shè)備控制,IRDY#和TRDY#分別表示主、從設(shè)備準(zhǔn)備好;DE-VSEL#由從設(shè)備發(fā)出,表示從設(shè)備將響應(yīng)此次傳輸,所有的控制信號必須對齊時鐘上升沿。這部分電路沒有固定的模式,通常由具體應(yīng)用環(huán)境決定其邏輯,一般至少要接收地址譯碼信號及外部傳來的表示傳送結(jié)束的信號(如BUSY、HOLD和STOP之類)來完成整個交互過程。

5)配置寄存器。按照PCI協(xié)議,PCI設(shè)備至少應(yīng)當(dāng)實現(xiàn)廠商標(biāo)記、設(shè)備識別和命令狀態(tài)字等配置數(shù)據(jù),這些可以用RAM來實現(xiàn)。

PCI擴展總線橋的實現(xiàn)

上面設(shè)計的PCI擴展總線橋的接口邏輯終要在CPLD中來實現(xiàn)。在進(jìn)行PCI總線接口設(shè)計中,使用Altera公司的QuartusII2.0作為開發(fā)平臺。由于PCI協(xié)議的時序邏輯比較復(fù)雜,因此,對CPLD的設(shè)計全部采用VerilogHDL語言作為設(shè)計輸入。整個設(shè)計由一個頂層模塊和六個底層模塊組成(圖2)。

1)頂層模塊:該模塊包含了整個設(shè)計的輸入/輸出信號和底層設(shè)計模塊的定義。

2)漿糊邏輯模塊:該模塊包含了設(shè)計中的各種混雜邏輯,包括PCI地址寄存器,命令/字節(jié)使能寄存器和配置讀/寫使能寄存器,在每次PCI傳輸?shù)牡刂酚行趦?nèi)觸發(fā)這些寄存器。

3)配置寄存器模塊:該模塊實現(xiàn)PCI配置寄存器的配置和讀寫功能。根據(jù)PCI協(xié)議,每個PCI設(shè)備都有256字節(jié)的配置空間,配置空間中存放的是與本設(shè)備有關(guān)的信息,它首先用來向總線仲裁器表明本設(shè)備的存在,其次向總線仲裁器表明本設(shè)備要完成的功能,映射到內(nèi)存或I/O空間以及所占的地址范圍,支持哪些總線訪問命令等,。在實際實現(xiàn)時,考慮到總線擴展橋的具體要求,設(shè)計中只配置了以下與設(shè)計相關(guān)的一些寄存器。

a)配置空間地址為00h的DeviceIDandVendorID寄存器。

b)配置空間地址為04h的StatusandCommand寄存器。設(shè)計中DEVSEL信號響應(yīng)時間設(shè)為slow,存儲器空間和I/O空間使能設(shè)為可寫。

c)配置空間地址為08h的ClassCodeandRevisionID寄存器。ClassCode設(shè)為ISA橋,定義為060100h。

d)配置空間地址為10h的I/O空間基址寄存器。基址設(shè)為可寫。

e)配置空間地址為14h的存儲器空間基址寄存器?;吩O(shè)為可寫。

f)配置空間地址為2Ch的SubsystemIDandSubsystemVendorID寄存器。

g)配置空間地址為3Ch的Max_Lat,Min_Gnt,InterruptPinandInterruptLine寄存器。其中,Max_Lat,Min_Gnt寄存器設(shè)為0000h,InterruptPin寄存器設(shè)計為01h,表示只使用一個中斷引腳,InterruptLine寄存器設(shè)為可寫。

4)基址檢查模塊:該模塊根據(jù)基址寄存器中的地址來校對當(dāng)前操作的地址線上地址。

5)狀態(tài)機模塊:該模塊是整個設(shè)計的,它控制整個總線周期的時序。在每PCI操作的地址期內(nèi),根據(jù)PCI接口的命令/字節(jié)使能信號C/BE[3::0]和配置讀/寫選通信號IDSEL,狀態(tài)機都會從空閑狀態(tài)轉(zhuǎn)移到三個可能的狀態(tài),即配置空間讀/寫、存儲器與I/O空間讀或存儲器與I/O空間寫。

a)在設(shè)計中,配置空間的訪問設(shè)為0類配置訪問,只有當(dāng)?shù)刂菲趦?nèi)AD信號的0位和1位都為0(PCI_AD[1,0]==00b)時,才響應(yīng)訪問。在配置讀/寫操作時,AD信號的2位到7位(PCI_AD[7:2])決定操作對應(yīng)的寄存器。當(dāng)訪問未實現(xiàn)的寄存器時,讀操作時返回的值為00000000h,寫操作時也會響應(yīng),但不能寫進(jìn)任何值。

b)在存儲器與I/O空間讀操作時,存儲器讀操作支持突發(fā)傳輸,而I/O讀操作不支持突發(fā)傳輸,只支持傳輸。在典型的讀操作中,當(dāng)?shù)刂放c基址寄存器中的值相匹配時,通過信號通知橋后端設(shè)備準(zhǔn)備傳輸,在得到后端設(shè)備的確認(rèn)信號后,開始讀個雙字,如果傳輸突發(fā)傳輸時,接著讀第二個雙字。一旦主設(shè)備開始突發(fā)傳輸,如果橋后端的設(shè)備中止突發(fā)傳輸,后端設(shè)備必須提前兩個數(shù)據(jù)段通知狀態(tài)機結(jié)束突發(fā)讀周期。

c)與存儲器與I/O空間讀操作相類似,在存儲器與I/O空間寫操作時,存儲器寫操作支持突發(fā)傳輸,而I/O寫操作不支持突發(fā)傳輸,只支持傳輸。在典型的寫操作中,當(dāng)?shù)刂放c基址寄存器中的值相匹配時,通過信號通知橋后端設(shè)備準(zhǔn)備傳輸,在得到后端設(shè)備的確認(rèn)信號后,發(fā)出TRDY信號,如果此時IRDY信號有效,便開始寫操作。如果傳輸是突發(fā)傳輸時,接著寫第二個雙字。一旦主設(shè)備開始突發(fā)傳輸,如果橋后端的設(shè)備中止突發(fā)傳輸,后端設(shè)備必須提前兩個數(shù)據(jù)段通知狀態(tài)機結(jié)束突發(fā)寫周期。6)奇偶校驗?zāi)K:該模塊實現(xiàn)在配置讀周期和存儲器或I/O讀周期時產(chǎn)生奇偶校驗。

7)重試計數(shù)模塊:當(dāng)橋后端設(shè)備發(fā)生"時間溢出"時,該模塊實現(xiàn)一個計數(shù)器來通知狀態(tài)機。如果狀態(tài)機確認(rèn)了讀或?qū)懖僮?,在發(fā)出DEVSEL信號有效后,必須在隨后的16個時鐘周期內(nèi)發(fā)出或接收到數(shù)據(jù)。如果狀態(tài)機確認(rèn)了讀或?qū)懖僮骱?,橋后端的設(shè)備在12個時鐘周期內(nèi)沒有發(fā)出準(zhǔn)備好信號,此時將開始數(shù)據(jù)重試。數(shù)據(jù)重試只能在個數(shù)據(jù)段未傳輸前有效,一旦橋后端的設(shè)備確認(rèn)了操作,狀態(tài)機必須開始發(fā)出或接收所需的數(shù)據(jù)。

PCI擴展總線橋的時序仿真

完成PCI擴展總線橋的邏輯實現(xiàn)后,設(shè)計仿真矢量,QuartusII2.0平臺上進(jìn)行設(shè)計的時序仿真,下面是仿真后的時序圖,限于篇幅,這里只給出部分仿真時序圖見圖,3、4、5、6,由仿真后的PCI操作時序圖,可以看出整個設(shè)計的時序符合PCI協(xié)議的要求。

1)對配置空間的讀寫操作時序(地址為04h的StatusandCommand寄存器)

2)對I/O空間的寫操作(地址為FFF0000h)

3)對存儲器空間的突發(fā)讀操作時序(啟始地址為FFF0000h)

結(jié)束語

PCI總線協(xié)議抽象性很強,且時序邏輯復(fù)雜,不利于直接進(jìn)行硬件設(shè)計,而使用VerilogHDL等硬件描述語言則是非常合適的,并且現(xiàn)在的邏輯綜合工具的功能越來越強大,可以極快地進(jìn)行電路設(shè)計,使設(shè)計者可以在頂層對電路進(jìn)行設(shè)計和規(guī)劃而無需費心于電路細(xì)節(jié)。利用CPLD進(jìn)行PCI擴展總線橋設(shè)計時,關(guān)鍵是要搞清楚時序狀態(tài)機是如何實現(xiàn)總線訪問操作的,希望本文能對從事這方面工作的同行有些參考價值。

參考文獻(xiàn):

[1].CPLDdatasheet/d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論