WIMAX系統(tǒng)中PCI接口的設(shè)計(jì)與實(shí)現(xiàn)
WIMAX是基于IEEE 802.16標(biāo)準(zhǔn)的寬帶無(wú)線接入城域網(wǎng)技術(shù),根據(jù)IEEE 802. 16標(biāo)準(zhǔn),用Verilog HDL設(shè)計(jì)了PCI接口電路。
本文引用地址:http://butianyuan.cn/article/83566.htm并在FPGA上實(shí)現(xiàn)了PCI接口的功能,重點(diǎn)描述了狀態(tài)機(jī)控制模塊的設(shè)計(jì)和仿真結(jié)果,使用EDA技術(shù)提高了開發(fā)速度,滿足了系統(tǒng)的要求。
1. 引言
隨著計(jì)算機(jī)控制技術(shù)在各個(gè)領(lǐng)域的深入應(yīng)用,為計(jì)算機(jī)與被控設(shè)備之間提供方便、實(shí)用通信方法的PCI(Peripheral Component Interconnection)總線接口成為必不可少的接口部件,其主要功能是完成用戶設(shè)備與PCI總線間的信息傳送接口。
使用可編程器件進(jìn)行PCI接口的設(shè)計(jì),可以將其他用戶邏輯與PCI接口邏輯集成在一個(gè)芯片上,提高系統(tǒng)的開發(fā)速度,縮短二次開發(fā)周期、降低成本,提高系統(tǒng)的集成度和可靠性。
以下是在進(jìn)行WiMAX(World Interoperability for Microwave Access)的SOC系統(tǒng)開發(fā)時(shí),按照PCI總線2.2版本的規(guī)范,根據(jù)PCI總線傳輸時(shí)序來(lái)進(jìn)行狀態(tài)機(jī)構(gòu)造,所設(shè)計(jì)的PCI總線接口既可支持PCI常規(guī)傳輸,也可支持PCI猝發(fā)(burst)傳輸。
2. WiMAX系統(tǒng)構(gòu)成
2.1 WiMAX硬件系統(tǒng)構(gòu)成
IEEE802.16協(xié)議由MAC(鏈路)子層和PHY (物理)子層構(gòu)成,WiMAX系統(tǒng)的硬件構(gòu)成如圖1所示,其中物理子層對(duì)基帶信號(hào)進(jìn)行處理,也即圖中的‘基帶’模塊(BB: Base Band),該模塊的功能是進(jìn)行編碼/解碼、同步、帶寬請(qǐng)求、IFFT / FFT(快速傅立葉變換/反變換)、交織/反交織等處理;圖1中的其余部分與軟件系統(tǒng)一起構(gòu)成MCA子層,其主要功能是入網(wǎng)注冊(cè)、獲取鏈路參數(shù)、測(cè)距、基本能力協(xié)商等配置管理工作以及QoS(quality of Service) 。
終端通過(guò)PCI總線與工作站進(jìn)行通信,也可以通過(guò)自主開發(fā)的射頻天線系統(tǒng)進(jìn)行無(wú)線傳輸。終端以無(wú)線方式與基站進(jìn)行通信,而基站與基站之間通過(guò)Internet進(jìn)行通信。
2.2 WiMAX硬件系統(tǒng)設(shè)計(jì)過(guò)程
圖1 WiMAX硬件系統(tǒng)構(gòu)成
在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),首先根據(jù)系統(tǒng)的功能和現(xiàn)有條件進(jìn)行合理的軟硬件功能劃分,然后按照自頂向下的方法進(jìn)行軟件和硬件系統(tǒng)的協(xié)同設(shè)計(jì),硬件系統(tǒng)由圖1所示的各中層模塊構(gòu)成,在此基礎(chǔ)上再對(duì)各部分進(jìn)行細(xì)分,直至底層各子模塊的功能全部描述完畢。然后運(yùn)用EDA技術(shù),使用Verilog HDL語(yǔ)言進(jìn)行各底層模塊、中層模塊直至頂層模塊的綜合功能設(shè)計(jì)、功能模擬和定時(shí)分析,通過(guò)仿真后下載到FPGA芯片中進(jìn)一步進(jìn)行功能驗(yàn)證和參數(shù)測(cè)試,然后進(jìn)行后端版圖的設(shè)計(jì)、直至流片成功。因篇幅所限下面只介紹系統(tǒng)中PCI模塊的設(shè)計(jì)仿真過(guò)程。
3.PCI總線接口模塊設(shè)計(jì)
3.1 PCI接口系統(tǒng)的功能模塊構(gòu)成
PCI接口由如下子模塊構(gòu)成:地址檢查模塊、glue模塊、校驗(yàn)?zāi)K、數(shù)據(jù)retry模塊、空間配置計(jì)數(shù)模塊、狀態(tài)機(jī)模塊及外部三總線邏輯。
地址檢查模塊用來(lái)檢查接受到的地址是否在配置空間所配置的地址范圍之內(nèi);glue模塊在地址有效期間鎖存來(lái)自總線的PCI命令和地址信息,以備后用;校驗(yàn)?zāi)K在讀周期產(chǎn)生校驗(yàn)位,以確定所接受到的數(shù)據(jù)是否正確;數(shù)據(jù)retry模塊在PCI應(yīng)答了一個(gè)沒有READY(未準(zhǔn)備好)的讀/寫操作時(shí),PCI設(shè)備 retry數(shù)據(jù)(保持總線),直到計(jì)數(shù)器超時(shí);PCI接口的核心模塊是空間配置模塊和狀態(tài)機(jī)模塊??臻g配置模塊提供一套現(xiàn)行的、可預(yù)見的系統(tǒng)配置機(jī)構(gòu)的配置措施,使之實(shí)現(xiàn)完全的設(shè)備再定位而無(wú)需用戶干預(yù)進(jìn)行安裝、配置和引導(dǎo),并由與設(shè)備無(wú)關(guān)的軟件進(jìn)行系統(tǒng)地址映射,以支持即插即用功能;狀態(tài)機(jī)控制保證了板卡能按正常的PCI時(shí)序工作,是PCI接口的核心部分。
3.2 PCI總線控制器狀態(tài)機(jī)模塊的設(shè)計(jì)及實(shí)現(xiàn)
狀態(tài)機(jī)模塊包含了所有PCI狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移和實(shí)現(xiàn),在一個(gè)給定的PCI操作期間,狀態(tài)機(jī)由IDLE狀態(tài)經(jīng)三條可能的路徑到達(dá)其它狀態(tài)。根據(jù)地址周期 PCI_CBE_l和PCI_IDESL上的值來(lái)決定是什么操作:配置空間的讀寫、內(nèi)存和I/O的讀或?qū)憽CI設(shè)備的狀態(tài)機(jī)及轉(zhuǎn)移圖如圖2所示。因篇幅限制,狀態(tài)名、狀態(tài)變量說(shuō)明參考如下verilog代碼注
圖2 狀態(tài)轉(zhuǎn)移圖
評(píng)論