摘 要:首先介紹了PCI總線的技術(shù)特點,并結(jié)合實際應(yīng)用,重點敘述了PCI總線設(shè)備控制器的VHDL設(shè)計與FPGA的實現(xiàn),他是PCI總線和應(yīng)用設(shè)備的接口,并且用VHDL語言對系統(tǒng)進行了詳細(xì)的描述與功能仿真。<!--摘要CH(結(jié)束)←-->
<!--→關(guān)鍵CH(開始)--> 關(guān)鍵詞:PCI總線;設(shè)備控制器;FPGA;VHDL<!--關(guān)鍵CH(結(jié)束)←--><!--→標(biāo)題EN(開始)-->
PCI(PeripheralComponent Interconnection)局部總線不僅是目前最新的計算機總線,而且是一種兼容性最強、功能最全的計算機總線。他可同時支持多組外圍設(shè)備,而且不受制于處理器的限制,為CPU及高速外圍設(shè)備提供高性能、高吞吐量、低延遲的數(shù)據(jù)通路。圖形用戶界面、高清晰度電視、三維視頻多媒體顯示等新技術(shù)的發(fā)展以及高速通訊系統(tǒng)的廣泛需求使PCI具有良好的應(yīng)用前景。并在嵌入式計算機和工業(yè)控制計算機方面具有廣泛的應(yīng)用前景[1]。
1 PCI總線及其特點
Intel公司研制的PCI局部總線既具有VESA局部總線的高數(shù)據(jù)傳輸率,又與CPU相對獨立且功能更強。他的產(chǎn)生可以說是PC總線技術(shù)的第六次創(chuàng)新。1992年6月,Intel公司和多家主要電腦廠商組成了PCI專責(zé)小組SIG(SpecialInterestGroup),目的是推廣、統(tǒng)籌并強化PCI標(biāo)準(zhǔn),使PCI總線標(biāo)準(zhǔn)最終成為開放的、非專利的局部總線標(biāo)準(zhǔn)。1999年2月PCI2.2版規(guī)范的發(fā)布,使其得到更加廣泛的應(yīng)用[2]。
1.1 PCI總線的特點
圖1給出了典型的PCI總線結(jié)構(gòu)框圖,可以看出,整個系統(tǒng)存在3種不同的總線:HOST(宿主)總線、PCI總線和LEGACY(遺留)總線。在一個 PCI系統(tǒng)中可以做到高速外部設(shè)備和低速外部設(shè)備共存,PCI總線與ISA/EISA總線并存。PCI總線的特點有:線性突發(fā)傳輸、存取延誤極小、總線主控及同步操作、獨立于CPU的結(jié)構(gòu)、低成本高效益、兼容性、預(yù)留發(fā)展空間[1]。

1.2 PCI總線信號定義與讀寫規(guī)范
PCI接口信號線可分為必備的和可選的2大類。條。用這些信號線便可處理數(shù)據(jù)/地址,實現(xiàn)接口控制及系統(tǒng)功能。綜合主設(shè)備與目標(biāo)設(shè)備考慮,按功能將這些信號分組表示于圖2中。

當(dāng)設(shè)備開始驅(qū)動有效數(shù)據(jù)到數(shù)據(jù)總線上時,作為數(shù)據(jù)源設(shè)備的準(zhǔn)備信號(IRDY#和TRDY#)必須有效,同時接收數(shù)據(jù)的設(shè)備保持準(zhǔn)備信號無效,直到他準(zhǔn)備接收數(shù)據(jù)。當(dāng)設(shè)備的準(zhǔn)備信號有效,他就會保持到當(dāng)前數(shù)據(jù)段結(jié)束。當(dāng)設(shè)備準(zhǔn)備完成當(dāng)前數(shù)據(jù)段,他必須不改變控制信號。當(dāng)IDRY#有效表明主設(shè)備準(zhǔn)備傳送當(dāng)前數(shù)據(jù)項,不管TRDY#的狀態(tài),他可以不改變IDRY;騀RAME#的狀態(tài)。只要TDRY;騍TOP#有效,直到當(dāng)前數(shù)據(jù)段結(jié)束,才改變 TRDY#,STOP;駾EVSEL#[3]。
2 PCI總線設(shè)備控制器的設(shè)計
2.1 設(shè)計思想
PCI總線設(shè)備控制器是PCI總線和應(yīng)用設(shè)備的接口,分為總線主設(shè)備控制器和目標(biāo)設(shè)備控制器,可將這2種控制器的功能集成在一個控制器上實現(xiàn)。PCI 總線控制器的主要功能就是要協(xié)調(diào)PCI總線信號與應(yīng)用設(shè)備信號,使應(yīng)用設(shè)備能夠正確使用PCI總線來進行數(shù)據(jù)傳輸,即數(shù)據(jù)傳輸功能、錯誤檢測與處理功能、命令/地址譯碼功能、配置功能。因此,PCI總線控制器設(shè)計目標(biāo)就是要在PCI總線和應(yīng)用設(shè)備之間產(chǎn)生正確的控制信號。
本文實現(xiàn)的是PCI總線目標(biāo)設(shè)備控制器。其中,時鐘頻率為33 MHz,數(shù)據(jù)寬度為32 b。支持單數(shù)據(jù)段和突發(fā)傳輸2種方式。提供奇偶校驗生成和奇偶校驗檢測,實現(xiàn)16個雙字的PCI配置空間寄存器,支持配置空間讀/寫、I/O讀寫、存儲器讀/寫等PCI總線命令。PCI總線目標(biāo)設(shè)備控制器不會申請對總線的使用權(quán),是響應(yīng)由總線主設(shè)備提出的總線操作來控制PCI總線與應(yīng)用設(shè)備之間的交易。
2.2 設(shè)計的總體框圖
如圖3所示,PCI總線目標(biāo)控制器從功能上劃分為8個部分。其中奇偶產(chǎn)生模塊是在讀周期產(chǎn)生奇偶校驗位;奇偶檢測模塊是控制器對所接收到的數(shù)據(jù)進行檢測,以確定所接受到的數(shù)據(jù)是否正確,并給出相應(yīng)的錯誤報告;命令寄存器/地址計數(shù)器在地址期鎖存來自總線的PCI命令和地址信息,將命令從總線上分離出來,根據(jù)命令譯出相應(yīng)讀寫操作信號,并將命令及讀寫信號傳送到應(yīng)用設(shè)備接口,對于訪問存儲器的突發(fā)傳送,產(chǎn)生后繼地址;目標(biāo)狀態(tài)機模塊通過PCI總線在各個狀態(tài)的控制下產(chǎn)生相應(yīng)的PCI總線控制信號和與目標(biāo)設(shè)備相關(guān)的應(yīng)用接口控制信號;數(shù)據(jù)通路模塊;用戶控制模塊;配置空間模塊保留用于實現(xiàn)配置寄存器,使系統(tǒng)上電時執(zhí)行系統(tǒng)配置;I2C接口模塊!

2.3 系統(tǒng)描述與功能仿真
當(dāng)系統(tǒng)的結(jié)構(gòu)設(shè)計確定后,對于每個模塊的設(shè)計首先要使用硬件描述語言完成系統(tǒng)的描述,然后使用語言及系統(tǒng)仿真及調(diào)試工具進行語言級功能仿真與調(diào)試。
2.3.1 系統(tǒng)的VHDL描述
本系統(tǒng)用VHDL語言來描述。VHDL語言是一種結(jié)構(gòu)化語言,他支持結(jié)構(gòu)化設(shè)計。結(jié)構(gòu)化設(shè)計就是將一個系統(tǒng)劃分為多個子模塊,而每個子模塊又可以繼續(xù)劃分為更多的模塊。首先根據(jù)系統(tǒng)的功能描述,將系統(tǒng)劃分為接口清晰、相互關(guān)系簡單的子系統(tǒng),從而得到系統(tǒng)級的描述。然后,依次對各個子系統(tǒng)(或功能模塊)進行結(jié)構(gòu)設(shè)計和寄存器傳輸級描述。
2.3.2 系統(tǒng)功能仿真
為了證明上面的設(shè)計模塊是否正確,還需對這些設(shè)計模塊進行仿真。本文使用ALDEC公司的設(shè)計仿真軟件Activ-HDL進行前后仿真。通過仿真工具,設(shè)計者對各設(shè)計層次的設(shè)計模塊進行仿真,以確定這些設(shè)計模塊的功能,邏輯關(guān)系及定時關(guān)系是否滿足設(shè)計要求。頂層模塊的主要信號仿真波形如圖4所示。

3 PCI總線控制器的FPGA實現(xiàn)
在本設(shè)計中,PCI總線目標(biāo)控制器的實現(xiàn)是采用了Altera公司的ACEX系列中的EP1K30QC208-1芯片。其封裝形式是208管腳PQFP (Plastic Quad FlatPack)封裝。布局布線工作是在Altera公司的MAXPLUSII工具上完成的。為了驗證PCI總線設(shè)備控制器的功能,我們設(shè)計了一塊 PCB驗證板,在設(shè)計該驗證板時,考慮到布局布線的方便以及PCI信號線的要求,將PCI信號分布到EP1K器件與PCI總線卡的連接器距離最近的管腳上。
4 結(jié) 語
本文的PCI總線目標(biāo)控制器使應(yīng)用設(shè)備與PCI總線連接變得靈活而方便,設(shè)計者通過PCI總線目標(biāo)控制器連接PCI總線消除了對PCI總線復(fù)雜時序和規(guī)范的理解,通過驗證和實際應(yīng)用證明我們設(shè)計的PCI總線控制器性能完全達到了PCI總線的要求。
[2]Tom Shanley,Don Anderson.PCI系統(tǒng)結(jié)構(gòu)[M].劉暉,冀然然,夏意軍譯.北京:電子工業(yè)出版社,2000.
[3]侯伯亨,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計[M].西安:西安電子科技大學(xué),1999.
[4]曾繁泰,侯亞寧,崔元明.可編程器件應(yīng)用導(dǎo)論[M].北京:清華大學(xué)出版社,2001.





