譚會生
(湖南工業大學電氣與信息工程學院,湖南株洲 412008)
在數據集成服務和數據包交換網絡中,當它們使用多路復用開關網絡工作時,不同應用需求的數據包之間是相互影響的.為了針對不同的需求提供不同的服務,采用多優先級控制算法或許是解決不同通訊流量相互影響的一個關鍵部件.文獻[1]提出了一種基于模糊邏輯的多優先級ATM網絡控制方法,文獻[2]基于模糊邏輯的緩沖管理模式提出了一種高速數據包交換網絡的通訊流量高效模糊控制系統,它可應用于像ATM,Internet等數據包交換網絡的固定大小和可變大小的數據單元的操作控制.通過對模糊優先權控制模式的性能評估表明,它勝過任一個靜態閾值控制器,它的總的吞吐容量非常接近已有參考文獻所提出的理想狀態的開關控制器的吞吐量.實現模糊控制,傳統的方法是使用單片機或DSP實現,但他們存在處理速度受限,程序跑飛等不足,隨著EDA技術的發展,若使用FPGA來實現模糊控制,既可提高系統的處理速度,又可增加系統的可靠性[3-8].本文就是基于文獻[2]所提出優先模糊控制模型,參考文獻[4-6]有關模糊控制器的設計方法,采用并行技術和流水線技術[9],具體研究該系統的FPGA實現問題,重點是FPGA實現結構設計和Verilog HDL程序的設計與驗證.
網絡通訊流量模糊控制器的模型如圖1所示,其中輸入變量XCLRH,XN和XDN分別表示數據包丟失率,數據包的個數和緩沖器中隊列長度變化率,輸出變量YACT表示系統對低優先級輸入流量采取控制的強度.圖2是輸入變量XCLRH,XN,XDN和輸出變量YACT的隸屬函數.其中,變量XCLRH表示高優先級數據包丟失率;XCLRRH為可允許的高優先級數據包丟失率最大值;Q為數據包緩沖器容量的大小.模糊優先控制器的控制規則共30條[2],除規則1,26和30的前件只有兩個XCLRH,XN外,其余的規則均包括三個前件,其控制規則的形式如下:ifXCLRHis LOW andXNis Medium andXDNis Negative then theYACTis Strong Admit.

圖1 網絡通訊流量模糊控制器模型Fig.1 Fuzzy controller model of network traffic managing

圖2 輸入變量 XCLR H,XN,XDN和輸出變量 YACT的隸屬函數Fig.2 Membership functions for the XCLR H,XN,XDNand YACTinput/output variable
該系統可用于分組交換網中對大小固定和大小可變的數據單元的傳送控制,比如ATM網絡和互聯網.該系統可應用于各種實時系統中.
網絡通訊流量模糊控制器的FPGA實現結構如圖3所示.它由控制規則存儲器、模糊化、模糊推理和去模糊化4大部分構成.本系統采用零階 Takagi-Sugeno模糊推理和去模糊化方法.整個設計基于并行技術和流水線技術.其中系統中模糊化模塊、模糊推理模塊是串行工作的,而反模糊化模塊則和前面二者是并行工作的.

圖3 模糊控制器的FPGA實現結構Fig.3 The FPGA implementation architecture of fuzzy logic controller
模糊化模塊的作用就是先把輸入的精確量量化到相應的論域范圍,再進行模糊化處理,得到相應的模糊量及隸屬度.
1)輸入參數的量化.CLR的量化公式如公式(1)所示,其中du=255,XN,XDN的量化公式與此類似,詳見參考文獻[2].均勻量化后各個輸入論域的范圍是在0~255之間.

2)輸入變量的模糊編碼.輸入參數量化后,送入比較編碼器中進行模糊編碼,如圖4所示,其中為輸入,~為各個模糊區間的中心點(邊界點).其工作原理是:先將輸入與各邊界點進行比較,然后根據比較的結果進行模糊區間編碼,并將結果寄存到對應寄存器中.
由隸屬度函數的特點可知,對于每個輸入變量,最多可以并行輸出2個語言值和2個隸屬度.根據圖2(a)可知,的幾個分界點為代入公式(1)量化可得出其分界點分別為26,51,76,128.同理可以求出N和的各分界點.
3)隸屬度的計算.設論域為256.因為一個輸入變量最多可能屬于兩個區間,則應分別求對應于每個區間的隸屬度大小.其計算模型如圖5所示.假如輸入X所在區間為(V1,V2),其隸屬度為Y,則其它計算類似.

圖4 模糊編碼原理圖Fig.4 Fuzzy encoding principle diagram

圖5 隸屬度計算模型Fig.5 Representation of the term set of the input variables
模糊推理主要包括規則的選取和激活度的計算.由本系統隸屬函數的特點可知,每個輸入變量可并行輸出兩個語言值和兩個隸屬度.對三輸入系統,最多輸出8個語言值和8個隸屬度,最多激活8條模糊規則.為降低資源消耗,將對模糊規則進行分組處理,即將三輸入系統當作兩輸入系統處理,因此對于三輸入系統,最多輸出4組語言值和4組隸屬度,而規則表的地址也就可簡化為用一個字節來表示.
規則的選取,就是以模糊化模塊輸出的輸入語言值編碼作為地址,通過查找相應的隸屬度存儲器(隸屬度存儲格式見圖3),將其結果送到規則選擇器中進行匹配比較,若輸入的語言值編碼與規則存儲器送來的對應前件語言值編碼相等,則將其對應的隸屬度送入后級的計算激活度模塊,否則將0送入計算激活度模塊.將輸入計算激活度最小值模塊的各個隸屬度進行比較,求出最小值,即得到前件轉移到后件的強度 θi.在求出前件轉移到后件的強度的同時,應同時并行地從規則寄存器中讀出yi,并暫存在對應的寄存器中.

乘法的硬件實現高效方法有:陣列法,修正布斯算法(MBA法),華萊士樹(WT法),修正布斯算法-華萊士樹法(MBA-WT)乘法器.A.J.Al-Kbalili和N.Zaman的研究表明,陣列乘法器面積小、功耗小,運算速度慢;WT乘法器和MBA-WT乘法器運算速度快,但功耗較大,WT乘法器面積最大,MBA-WT乘法器面積略大于陣列乘法器;MBA乘法器各項參數介于前三種乘法器之間[10].因此本設計選擇修正布斯算法(MBA法),基于MBA的乘法器結構如圖6所示.

圖6 修正布斯算法 MBA乘法器結構圖Fig.6 Architecture of modified booth algorithm

圖7 除法器結構圖Fig.7 Architecture of divider
本設計的除法器的組成原理結構如圖7所示,它是一個16位/8位的除法器,它在16個時鐘周期內完成除法運算.與純組合電路構成的除法器相比,本除法器的最大優點是可以大大節省芯片資源.
系統控制模塊采用一個米立型狀態機來實現.為了減少了高速運轉下的狀態誤碼率,提高狀態機的穩定性,設計中的狀態機采用ONEHOT編碼,為使得狀態機更加容易維護,其編寫方式則采用了三段式狀態機的模式.圖8為本系統控制模塊的狀態圖.

圖8 系統控制模塊的狀態圖Fig.8 State diagram of system control module
本系統采用Verilog硬件描述語言進行邏輯描述,采用Quartus 8.0和Modelsim SE 6.0進行作為設計和調試的工具,最后選用Altera公司的Stratix II系列中的EP2S15F484C3芯片實現了本系統.其主要模塊及系統總體的仿真結果分別如圖9~圖12所示.經分析,系統的邏輯功能符合系統的設計要求,證明了Verilog程序的正確.邏輯綜合適配后,系統消耗的資源為:Total AlUTs 548/12 480(4%),Totals registers 203,Total memory bits 20032/419 328(5%),Total PLLs 1/6(17%);系統的最高時鐘頻率是273.22 MHz.

圖9 模糊化模塊的功能仿真結果Fig.9 Functional simulation result of fuzzification module

圖10 模糊推理模塊的功能仿真結果Fig.10 Functional simulation result of fuzzy inference module

圖11 去模糊模塊的功能仿真結果Fig.11 Functional simulation result of defuzzification module

圖12 模糊控制器的功能仿真結果Fig.12 Functional simulation result of fuzzy controller
基于FPGA開發了一個用于網絡通信流量的模糊控制器.該模糊控制器是利用緩沖器和模糊控制技術對不同優先級的通信流量進行管理,既可保證高優先級通訊的服務質量,又可利用未使用的緩沖資源去提供最有效的通信控制,以增大系統的吞吐容量.基于優先模糊控制原理和并行技術、流水線技術等硬件設計優化技術,提出了基于FPGA的網絡流量優先模糊控制器的總體實現結構和模糊化、模糊推理和去模糊化模塊的實現方法,給出了Verilog HDL程序實現的功能仿真、邏輯綜合及典型時序分析結果.實驗結果驗證了本控制器結構設計的有效性和程序設計的正確性,并且與傳統的單片機或DSP實現方法相比,既提高了系統的實時性,又增加了系統的可靠性,而且系統非常容易修改和移植.本系統可以應用于ATM和IP網絡的流量控制,修改后也可應用于智能交通控制.
[1]Catania V,Ficili G,Panno D.A fuzzy logic based approach to multipriority control in ATM networks[J].Computer Standards&Interfaces,1999(21):19-23.
[2]Ascia G,Gatania V,Panno D.An efficient fuzzy system for traffic management in high-speed packet-switched networks[J].Soft Computing,2001(5):247-256.
[3]Tessier R,Burleson W.Reconfigurable computing for digital signal processing:a survey[J].Journal of VLSI Signal Processing,2001(28):151-163.
[4]Monmasson E,Cirstea M N.FPGA design methodology for industrial control systems—a review[J].IEEE Transctions on Industrial Electronics,2007,54(4):1824-1842.
[5]Guo Yongqiang,Fang Kangling.Design of Fuzzy Feed-forward Decoupling System based on FPGA[C].The 2008 International Conference on Embedded Software and Systems(ICESS2008),IEEE computer society,2008:405-409.
[6]Juang Chiafeng,Lu Chunming,Lo Chiang,et al.Ant colony optimization algorithm for fuzzy controller cesign and its FPGA implementation[J].IEEE Transactions of Industrial Electronics,2008,55(3):1453-1462.
[7]Evmorfopoulos N E,Avaritsiotis J N.An adaptive digital fuzzy architecture for application-specific integrated circuits[J].Active and Passive Elec.Comp.,2002(25):289-306.
[8]白瑞林,江呂鋒,王建.基于FPGA的模糊自整定PID控制器的研究[J].儀器儀表學報,2005,26(8):833-837.
Bai Ruilin,Jiang Lvfeng,Wang Jian.The study of fuzzy self-tuning PID controller based on FPGA[J].Chinese Journal of Scientific Instrument,2005,26(8):833-837.(in Chinese)
[9]Shanbhag N R.Algorithms transformation techniques for low-power wireless VLSI systems design[J].International Journal of Wireless Information Networks,1998,5(2):147-170.
[10]Al-Khalili A J.32-bit constant(k)coefficient multiplier[J].IEEE Catalogue CH37239,2001(1):306-308.