WIMAX系統(tǒng)中PCI接口的設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
關(guān)鍵詞:WiMAX;SOC;PCI;Verilog
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)移圖
|
釋。
module state_machine (devsel_l, …);
output devsel_l; // 三態(tài)輸入
output trdy_l; // 三態(tài)輸入
output stop_l; //三態(tài)輸入
output pci_ad_oe; // PCI 地址線的使能信號(hào)
output dts_oe; // the devsel, trdy_l, stop_l (dts)信號(hào)的使能控制信號(hào)
output par_oe; // 校驗(yàn)使能控制信號(hào)
output bk_oe; // 用戶端數(shù)據(jù)線的使能控制信號(hào)
output pci_ad_en; // PCI 地址啟動(dòng)寄存器的時(shí)鐘使能信號(hào)
output abort_sig; // 設(shè)置abort信號(hào)狀態(tài)寄存器位
output data_write_l; // 數(shù)據(jù)寫信號(hào),用作pci_clk 信號(hào)到用戶端設(shè)備的時(shí)鐘使能
output count_rst_l; // 重試計(jì)數(shù)器的復(fù)位信號(hào)
output count_en_l; // 重試計(jì)數(shù)器的時(shí)鐘使能信號(hào)
output base_region0_l; // 片選信號(hào)
output base_region1_l; //片選信號(hào)
output data_read_l; // 用戶端設(shè)備讀信號(hào)
output be_oe; // 用戶端口字節(jié)使能信號(hào)
input hit_ba0_l; // 用于說(shuō)明PCI地址在base address 0
input hit_ba1_l; //用于說(shuō)明PCI地址在base address 1
input pci_frame_l; // pci_frame_l 信號(hào)
input pci_idsel; // pci_idsel 信號(hào)
input pci_irdy_l; // pci_irdy 信號(hào)
input [31:0] pci_ad; // 原始的pci 地址數(shù)據(jù)線
input [3:0] pci_cbe_l; // 命令/字節(jié)使能信號(hào)
…
input data_stop_l; // 用戶端申請(qǐng)中止數(shù)據(jù)傳輸信號(hào)
input ready_l; // 用戶準(zhǔn)備開始一個(gè)傳輸周期
input retry_l; // 重試信號(hào)
……
endmodule
圖3 狀態(tài)機(jī)模塊仿真圖 |
狀態(tài)機(jī)模塊的仿真波形如圖3所示。 PCI總線接口的頂層gdf文件如圖4。
圖4 PCI接口gdf文件 |
4.結(jié)論
在本設(shè)計(jì)中,根據(jù)PCI總線傳輸時(shí)序來(lái)進(jìn)行狀態(tài)機(jī)構(gòu)造,用Verilog HDL語(yǔ)言進(jìn)行功能模塊的設(shè)計(jì), 在Modelsim環(huán)境下進(jìn)行模擬仿真和定時(shí)分析,所設(shè)計(jì)的PCI接口時(shí)鐘頻率為33MHz, 數(shù)據(jù)寬度為32位。支持單數(shù)據(jù)段和突發(fā)傳輸兩種方式。提供奇偶校驗(yàn)生成和奇偶校驗(yàn)檢測(cè), 實(shí)現(xiàn)16個(gè)雙字的PCI 配置空間寄存器, 支持配置空間的讀與寫、I/O 讀寫、存儲(chǔ)器讀與寫等PCI總線命令,滿足了WiMAX系統(tǒng)的通信要求。
參考文獻(xiàn)
[1] 高建華. 一種基于CPLD的單片機(jī)與PCI接口設(shè)計(jì)解決方案.微計(jì)算機(jī)信息.2006, 22(6-2):224-226。
[2] IEEE 802.16-2004.IEEE Standard for Local and metropolitan area networks Part 16: Air Interface for Fixed Broadband Wireless Access Systems.2004.
[3] IEEE 802.16e.IEEE Standard for Local and metropolitan area networks Part 16: Air Interface for Fixed and Mobile Broadband Wireless Access Systems.2006.2.28
[4] PCI Special Interest Group .PCI Local Bus Specifications[Z].Revision 2.2,1998.120~156.