WIMAX系統(tǒng)中PCI接口的設計與實現
關鍵詞:WiMAX;SOC;PCI;Verilog
1. 引言
隨著計算機控制技術在各個領域的深入應用,為計算機與被控設備之間提供方便、實用通信方法的PCI(Peripheral Component Interconnection)總線接口成為必不可少的接口部件,其主要功能是完成用戶設備與PCI總線間的信息傳送接口。
使用可編程器件進行PCI接口的設計,可以將其他用戶邏輯與PCI接口邏輯集成在一個芯片上,提高系統(tǒng)的開發(fā)速度,縮短二次開發(fā)周期、降低成本,提高系統(tǒng)的集成度和可靠性。
以下是在進行WiMAX(World Interoperability for Microwave Access)的SOC系統(tǒng)開發(fā)時,按照PCI總線2.2版本的規(guī)范,根據PCI總線傳輸時序來進行狀態(tài)機構造,所設計的PCI總線接口既可支持PCI常規(guī)傳輸,也可支持PCI猝發(fā)(burst)傳輸。
2. WiMAX系統(tǒng)構成
2.1 WiMAX硬件系統(tǒng)構成
IEEE802.16協(xié)議由MAC(鏈路)子層和PHY (物理)子層構成,WiMAX系統(tǒng)的硬件構成如圖1所示,其中物理子層對基帶信號進行處理,也即圖中的‘基帶’模塊(BB: Base Band),該模塊的功能是進行編碼/解碼、同步、帶寬請求、IFFT / FFT(快速傅立葉變換/反變換)、交織/反交織等處理;圖1中的其余部分與軟件系統(tǒng)一起構成MCA子層,其主要功能是入網注冊、獲取鏈路參數、測距、基本能力協(xié)商等配置管理工作以及QoS(quality of Service) 。
終端通過PCI總線與工作站進行通信,也可以通過自主開發(fā)的射頻天線系統(tǒng)進行無線傳輸。終端以無線方式與基站進行通信,而基站與基站之間通過Internet進行通信。
2.2 WiMAX硬件系統(tǒng)設計過程
圖1 WiMAX硬件系統(tǒng)構成 |
在進行系統(tǒng)設計時,首先根據系統(tǒng)的功能和現有條件進行合理的軟硬件功能劃分,然后按照自頂向下的方法進行軟件和硬件系統(tǒng)的協(xié)同設計,硬件系統(tǒng)由圖1所示的各中層模塊構成,在此基礎上再對各部分進行細分,直至底層各子模塊的功能全部描述完畢。然后運用EDA技術,使用Verilog HDL語言進行各底層模塊、中層模塊直至頂層模塊的綜合功能設計、功能模擬和定時分析,通過仿真后下載到FPGA芯片中進一步進行功能驗證和參數測試,然后進行后端版圖的設計、直至流片成功。因篇幅所限下面只介紹系統(tǒng)中PCI模塊的設計仿真過程。
3.PCI總線接口模塊設計
3.1 PCI接口系統(tǒng)的功能模塊構成
PCI接口由如下子模塊構成:地址檢查模塊、glue模塊、校驗模塊、數據retry模塊、空間配置計數模塊、狀態(tài)機模塊及外部三總線邏輯。
地址檢查模塊用來檢查接受到的地址是否在配置空間所配置的地址范圍之內;glue模塊在地址有效期間鎖存來自總線的PCI命令和地址信息,以備后用;校驗模塊在讀周期產生校驗位,以確定所接受到的數據是否正確;數據retry模塊在PCI應答了一個沒有READY(未準備好)的讀/寫操作時,PCI設備retry數據(保持總線),直到計數器超時;PCI接口的核心模塊是空間配置模塊和狀態(tài)機模塊??臻g配置模塊提供一套現行的、可預見的系統(tǒng)配置機構的配置措施,使之實現完全的設備再定位而無需用戶干預進行安裝、配置和引導,并由與設備無關的軟件進行系統(tǒng)地址映射,以支持即插即用功能;狀態(tài)機控制保證了板卡能按正常的PCI時序工作,是PCI接口的核心部分。
3.2 PCI總線控制器狀態(tài)機模塊的設計及實現
狀態(tài)機模塊包含了所有PCI狀態(tài)機的狀態(tài)轉移和實現,在一個給定的PCI操作期間,狀態(tài)機由IDLE狀態(tài)經三條可能的路徑到達其它狀態(tài)。根據地址周期PCI_CBE_l和PCI_IDESL上的值來決定是什么操作:配置空間的讀寫、內存和I/O的讀或寫。PCI設備的狀態(tài)機及轉移圖如圖2所示。因篇幅限制,狀態(tài)名、狀態(tài)變量說明參考如下verilog代碼注
圖2 狀態(tài)轉移圖
|
釋。
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 地址線的使能信號
output dts_oe; // the devsel, trdy_l, stop_l (dts)信號的使能控制信號
output par_oe; // 校驗使能控制信號
output bk_oe; // 用戶端數據線的使能控制信號
output pci_ad_en; // PCI 地址啟動寄存器的時鐘使能信號
output abort_sig; // 設置abort信號狀態(tài)寄存器位
output data_write_l; // 數據寫信號,用作pci_clk 信號到用戶端設備的時鐘使能
output count_rst_l; // 重試計數器的復位信號
output count_en_l; // 重試計數器的時鐘使能信號
output base_region0_l; // 片選信號
output base_region1_l; //片選信號
output data_read_l; // 用戶端設備讀信號
output be_oe; // 用戶端口字節(jié)使能信號
input hit_ba0_l; // 用于說明PCI地址在base address 0
input hit_ba1_l; //用于說明PCI地址在base address 1
input pci_frame_l; // pci_frame_l 信號
input pci_idsel; // pci_idsel 信號
input pci_irdy_l; // pci_irdy 信號
input [31:0] pci_ad; // 原始的pci 地址數據線
input [3:0] pci_cbe_l; // 命令/字節(jié)使能信號
…
input data_stop_l; // 用戶端申請中止數據傳輸信號
input ready_l; // 用戶準備開始一個傳輸周期
input retry_l; // 重試信號
……
endmodule
圖3 狀態(tài)機模塊仿真圖 |
狀態(tài)機模塊的仿真波形如圖3所示。 PCI總線接口的頂層gdf文件如圖4。
圖4 PCI接口gdf文件 |
4.結論
在本設計中,根據PCI總線傳輸時序來進行狀態(tài)機構造,用Verilog HDL語言進行功能模塊的設計, 在Modelsim環(huán)境下進行模擬仿真和定時分析,所設計的PCI接口時鐘頻率為33MHz, 數據寬度為32位。支持單數據段和突發(fā)傳輸兩種方式。提供奇偶校驗生成和奇偶校驗檢測, 實現16個雙字的PCI 配置空間寄存器, 支持配置空間的讀與寫、I/O 讀寫、存儲器讀與寫等PCI總線命令,滿足了WiMAX系統(tǒng)的通信要求。
參考文獻
[1] 高建華. 一種基于CPLD的單片機與PCI接口設計解決方案.微計算機信息.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.