專利名稱:基于FPGA的Adaline神經(jīng)網(wǎng)絡(luò)控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種神經(jīng)網(wǎng)絡(luò)控制裝置,具體地說是一種基于FPGA的Adaline神經(jīng)網(wǎng) 絡(luò)控制器。
背景技術(shù):
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)是一種模仿動物神經(jīng)網(wǎng)絡(luò)行為 特征,進(jìn)行分布式并行信息處理的算法數(shù)學(xué)模型。這種網(wǎng)絡(luò)依靠系統(tǒng)的復(fù)雜程度,通過調(diào)整 內(nèi)部大量節(jié)點(diǎn)之間相互連接的關(guān)系,從而達(dá)到處理信息的目的。它的提出是為了解決一些 非線性,非平穩(wěn),復(fù)雜的實(shí)際問題。目前,許多人工神經(jīng)網(wǎng)絡(luò)模型已經(jīng)通過軟件程序模擬仿 真實(shí)現(xiàn),但用于運(yùn)行程序的個人計(jì)算機(jī)不能滿足目前嵌入式系統(tǒng)的需求。另一方面,人工神 經(jīng)網(wǎng)絡(luò)的本質(zhì)是并行分布式信息處理系統(tǒng),而以DSP為代表的微處理器大多數(shù)都是運(yùn)行于 單任務(wù)操作系統(tǒng),并不適合并行計(jì)算,因此也不是人工神經(jīng)網(wǎng)絡(luò)硬化實(shí)現(xiàn)的理想選擇。
發(fā)明內(nèi)容
本發(fā)明的目的是針對現(xiàn)有的利用軟件程序?qū)崿F(xiàn)神經(jīng)網(wǎng)絡(luò)算法所遇到的運(yùn)行速度 慢,效率低,穩(wěn)定性差的問題,提供一種基于現(xiàn)場可編程門陣列(Field Programmable Gate Array, FPGA)的有利于提高神經(jīng)網(wǎng)絡(luò)計(jì)算效率和工作穩(wěn)定性的基于FPGA的Adaline神經(jīng) 網(wǎng)絡(luò)控制器。本發(fā)明解決技術(shù)問題采用如下技術(shù)方案本發(fā)明基于FPGA的Adaline神經(jīng)網(wǎng)絡(luò)控制器的特點(diǎn)是采用FPGA處理芯片M1,所 述FPGA處理芯片Ml連接有EPCS4芯片M2、LED陣列電路M3、信號輸入接口 M4、信號輸出 接口 M5、電壓匹配電路M6、有源晶體振蕩器電路M7、程序下載接口 M8,以及+5V、+3. 3V和 +1. 8V三路穩(wěn)壓電源電路M9 ;所述電壓匹配電路M6還連接有128X64位點(diǎn)陣式液晶顯示屏 MlO ;以所述FPGA處理芯片Ml進(jìn)行信號接收、權(quán)值計(jì)算、轉(zhuǎn)移函數(shù)計(jì)算和系統(tǒng)權(quán)值的修 改;在所述FPGA處理芯片Ml的內(nèi)部設(shè)置浮點(diǎn)數(shù)加減法器、浮點(diǎn)數(shù)乘法器、浮點(diǎn)數(shù)除法 器、函數(shù)發(fā)生器、存儲器和查找表,用于實(shí)現(xiàn)Adaline正向算法以及Widrow-Hoff學(xué)習(xí)規(guī)則。本發(fā)明基于FPGA的Adaline神經(jīng)網(wǎng)絡(luò)控制器的特點(diǎn)也在于所述EPCS4芯片M2的ADSI、nCS、DCLK, DATA引腳分別與FPGA處理芯片Ml的對
應(yīng)端口相連。所述LED陣列電路M3的LEDl LED8引腳分別與FPGA處理芯片Ml的對應(yīng)端口相連。所述信號輸入接口 M4的DO D31、EN、RST、ENTER引腳分別與FPGA處理芯片Ml 的對應(yīng)端口相連。所述信號輸出接口 M5的DoutO Dout31引腳分別與FPGA處理芯片Ml的對應(yīng)端口相連。所述電壓匹配電路M6的V、CS、R/W、EN、RST、DBO DB7引腳分別與FPGA處理芯 片Ml的對應(yīng)端口相連;所述電壓匹配電路M6的Vo、CSo、R/Wo、ENo、RSTo、DBOo DB7o分 別與128X64位點(diǎn)陣式液晶顯示屏MlO的對應(yīng)端口相連。所述程序下載接口 M8的1、7、8、9腳分別與專用配置芯片M2的DCLK、DATA、nCS、 ADSI引腳相連;程序下載接口 M8的3、5、6腳分別與FPGA處理芯片Ml的C/D、nC0N、nCE引 腳相連。與已有技術(shù)相比,本發(fā)明有益效果體現(xiàn)在本發(fā)明采用FPGA為核心,其功能的設(shè)計(jì)可以由用戶采用硬件描述語言以及原理 圖等輸入方式實(shí)現(xiàn),具有與軟件編程一樣的靈活性,程序或原理圖經(jīng)綜合器綜合之后可生 成專用硬件芯片,相比較軟件程序而言,提高了算法的運(yùn)行速度、加強(qiáng)了系統(tǒng)工作的可靠 性。
圖1是本實(shí)用新型中部分電原理示意圖。圖2為本實(shí)用新型中另一部分電原理示意圖。
具體實(shí)施例方式參見圖1、圖2,本實(shí)施例基于FPGA的Adaline神經(jīng)網(wǎng)絡(luò)控制器包括有FPGA處理 芯片Ml,以FPGA處理芯片Ml分別連接EPCS4芯片M2、LED陣列電路M3、信號輸入接口 M4、 信號輸出接口 M5、電壓匹配電路M6、有源晶體振蕩器電路M7、程序下載接口 M8,以及+5V、 +3. 3V和+1. 8V三路穩(wěn)壓電源電路M9 ;電壓匹配電路M6還連接有128 X 64位點(diǎn)陣式液晶顯 示屏M10。具體實(shí)施中,各芯片之間的連接關(guān)系分別是EPCS4芯片M2的ADSI、nCS、DCLK、DATA引腳分別與FPGA處理芯片Ml的對應(yīng)端口 相連;LED陣列電路M3的LEDl LED8引腳分別與FPGA處理芯片Ml的對應(yīng)端口相連;信號輸入接口 M4的DO D31、EN、RST、ENTER引腳分別與FPGA處理芯片Ml的對 應(yīng)端口相連;信號輸出接口 M5的DoutO Dout31引腳分別與FPGA處理芯片Ml的對應(yīng)端口相 連;電壓匹配電路M6的V、CS、R/W、EN、RST、DBO DB7引腳分別與FPGA處理芯片Ml 的對應(yīng)端口相連;電壓匹配電路M6的Vo、CSo、R/ffo、ENo、RSTo、DBOo DB7o分別與128 X 64 位點(diǎn)陣式液晶顯示屏MlO的對應(yīng)端口相連;程序下載接口 M8的1、7、8、9腳分別專用配置芯片M2的DCLK、DATA、nCS、ADSI引 腳相連;程序下載接口 M8的3、5、6腳分別與FPGA處理芯片Ml的C/D、nC0N、nCE引腳相連;神經(jīng)網(wǎng)絡(luò)控制器以Altera公司的Cyclone II系列EP2C35F672C7型FPGA芯片為 核心。通過信號輸入接口 M4接收數(shù)據(jù)信號和控制信號;數(shù)據(jù)信號寬度為32位,結(jié)合控制 信號ENTER可逐個輸入系統(tǒng)輸入數(shù)據(jù);數(shù)據(jù)接收完畢后,輸入FPGA內(nèi)部電路,經(jīng)電路按照Adaline算法處理后,一方面通過輸出信號輸出接口 M5輸出,另一方面,通過128 X 64位點(diǎn) 陣式液晶顯示屏MlO顯示;控制信號EN、RST可實(shí)現(xiàn)系統(tǒng)的使能和復(fù)位。系統(tǒng)采用Altera公司的EPCS4芯片M2作為專用配置芯片,通過程序下載接口 M8 串行下載程序。系統(tǒng)通過78LS05、ASl 117-3. 3、ASl 117-1. 8三種芯片構(gòu)成三路穩(wěn)壓電源電路M9, 分別給系統(tǒng)各模塊供電。系統(tǒng)采用24MHz有源晶振作為時鐘輸入。FPGA的內(nèi)部結(jié)構(gòu)可以描述成為“陣列塊”,通過可編程的內(nèi)部連接將各邏輯器件連 接起來。用戶可以通過其可重復(fù)編程能力來不斷改進(jìn)其電路設(shè)計(jì)。考慮到神經(jīng)網(wǎng)絡(luò)硬件實(shí) 現(xiàn)的復(fù)雜性及設(shè)計(jì)模塊的可擴(kuò)展性,本系統(tǒng)采用電路原理圖和硬件描述語言混合輸入的自 上而下的設(shè)計(jì)方法,即在頂層采用原理圖形式將系統(tǒng)劃分為若干個功能模塊,然后再用HDL 實(shí)現(xiàn)各功能模塊,并對其進(jìn)行仿真、驗(yàn)證和完善。系統(tǒng)采用Altera公司的Quartus II軟件, 硬件描述語言選用VHDL語言進(jìn)行編程,實(shí)現(xiàn)基于FPGA的Adaline神經(jīng)網(wǎng)絡(luò)芯片的設(shè)計(jì)。其 中Quartus II開發(fā)環(huán)境自帶的LPM宏功能模塊簡化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)的速度。本系統(tǒng)中,以FPGA處理芯片Ml進(jìn)行信號接收、權(quán)值計(jì)算、轉(zhuǎn)移函數(shù)計(jì)算和系統(tǒng)權(quán) 值的修改;在FPGA內(nèi)部包括信號輸入模塊、權(quán)值計(jì)算模塊、轉(zhuǎn)移函數(shù)計(jì)算模塊和系統(tǒng)權(quán)值 修改模塊;在FPGA處理芯片Ml的內(nèi)部設(shè)置浮點(diǎn)數(shù)加減法器、浮點(diǎn)數(shù)乘法器、浮點(diǎn)數(shù)除法 器、函數(shù)發(fā)生器、存儲器和查找表(Look-up Table, LUT),用于實(shí)現(xiàn)Adaline正向算法以及 Widrow-Hoff學(xué)習(xí)規(guī)則。加法器和乘法器用于計(jì)算神經(jīng)元輸入信息的加權(quán)和,存儲單元包括權(quán)值單元、輸 入節(jié)點(diǎn)單元和閾值單元,用于存儲神經(jīng)元的連接權(quán)值、輸入值及閾值,LUT可作為轉(zhuǎn)移函數(shù) 的實(shí)現(xiàn)單元。在神經(jīng)元實(shí)現(xiàn)狀態(tài)機(jī)的控制下,多個輸入的權(quán)值計(jì)算可并行運(yùn)算,不同模塊間 的信息可串行傳遞。神經(jīng)網(wǎng)絡(luò)系統(tǒng)的輸入節(jié)點(diǎn)單元值與權(quán)值進(jìn)行乘加運(yùn)算,結(jié)果與閾值累 加后送給轉(zhuǎn)移函數(shù)發(fā)生器,從而獲得相應(yīng)的輸出信號值,并且根據(jù)Widrow-Hoff學(xué)習(xí)規(guī)則 在線調(diào)整連接權(quán)值。系統(tǒng)工作后,接收的輸入信號為Χ = [χ0,χι,χ2, Λ,χη]τ ;其中X為輸入信號向量, Xi (i = 1,2···η)為向量中的η個分量,T表示轉(zhuǎn)置。初始權(quán)值向量為W= [w0, W1, w2, A,wn]T。其中W為輸入權(quán)值向量,Wi (i = 1,2… η)為向量中的η個分量,T表示轉(zhuǎn)置。通過正向通道計(jì)算求得模擬輸出值,然后將Adaline的期望輸出值與實(shí)際的模擬 輸出值相比較,獲得一個誤差值,根據(jù)該誤差信號的大小和正負(fù)不斷地在線調(diào)整權(quán)向量,以 保證在任何時刻始終保持實(shí)際輸出與期望的輸出相等(y(t) =d(t),其中y(t)為實(shí)際輸 出,t為自變量,表示時間;d(t)為期望輸出,t為自變量,表示時間,從而可將一組輸入模擬 信號X= [χ0;χι;χ2; Λ,χη]τ轉(zhuǎn)換為任意期望的波形d(t)。數(shù)據(jù)精度的確定是在FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)過程中需要認(rèn)真考慮的重要因素之一。 高精度意味著較小的量化誤差和較高的綜合性能;低精度可以簡化神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì),提高 運(yùn)算速度,降低芯片面積需求和降低神經(jīng)網(wǎng)絡(luò)的功耗。數(shù)據(jù)精度確定的下限一般是通過試湊方法獲得,即在用FPGA實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)之前, 通過軟件對所設(shè)計(jì)的方案不斷進(jìn)行數(shù)字仿真,在保證不超過所要求誤差的前提條件下,獲得最少的數(shù)據(jù)處理位數(shù)。數(shù)據(jù)精度確定的上限主要取決于FPGA硬件資源的限制,同時還會 影響到神經(jīng)網(wǎng)絡(luò)的處理速度。一般在保證實(shí)時性要求的前提條件下,可以充分利用FPGA內(nèi) 部的所有資源,并且留有適當(dāng)?shù)目蓴U(kuò)展余地。基于以上分析和研究過程中積累的經(jīng)驗(yàn),應(yīng)優(yōu) 先采用浮點(diǎn)數(shù)據(jù)形式,從而保證運(yùn)算過程中不會出現(xiàn)數(shù)據(jù)溢出和飽和限幅等現(xiàn)象。因此,四 字節(jié)32位浮點(diǎn)數(shù)運(yùn)算形式是比較合理的選擇,既可以確保神經(jīng)網(wǎng)絡(luò)處理運(yùn)算的精度,也可 以保證本系統(tǒng)所選用的FPGA芯片硬化實(shí)現(xiàn)的可行性。事實(shí)上,系統(tǒng)最終的試驗(yàn)也證明了結(jié) 果的正確性。
權(quán)利要求
1.一種基于FPGA的Adaline神經(jīng)網(wǎng)絡(luò)控制器,其特征是采用FPGA處理芯片M1,所述 FPGA處理芯片Ml連接有EPCS4芯片M2、LED陣列電路M3、信號輸入接口 M4、信號輸出接口 M5、電壓匹配電路M6、有源晶體振蕩器電路M7、程序下載接口 M8,以及+5V、+3. 3V和+1. 8V 三路穩(wěn)壓電源電路M9 ;所述電壓匹配電路M6還連接有128X64位點(diǎn)陣式液晶顯示屏MlO ;以所述FPGA處理芯片Ml進(jìn)行信號接收、權(quán)值計(jì)算、轉(zhuǎn)移函數(shù)計(jì)算和系統(tǒng)權(quán)值的修改;在所述FPGA處理芯片Ml的內(nèi)部設(shè)置浮點(diǎn)數(shù)加減法器、浮點(diǎn)數(shù)乘法器、浮點(diǎn)數(shù)除法器、 函數(shù)發(fā)生器、存儲器和查找表,用于實(shí)現(xiàn)Adaline正向算法以及Widrow-Hoff學(xué)習(xí)規(guī)則。
2.根據(jù)權(quán)利要求1所述的基于FPGA的Adaline神經(jīng)網(wǎng)絡(luò)控制器,其特征是所述EPCS4 芯片M2的ADSI、nCS、DCLK, DATA引腳分別與FPGA處理芯片Ml的對應(yīng)端口相連。
3.根據(jù)權(quán)利要求1所述的基于FPGA的Adaline神經(jīng)網(wǎng)絡(luò)控制器,其特征是所述LED陣 列電路M3的LEDl LED8引腳分別與FPGA處理芯片Ml的對應(yīng)端口相連。
4.根據(jù)權(quán)利要求1所述的基于FPGA的Adaline神經(jīng)網(wǎng)絡(luò)控制器,其特征是所述信號輸 入接口 M4的DO D31、EN、RST、ENTER引腳分別與FPGA處理芯片Ml的對應(yīng)端口相連。
5.根據(jù)權(quán)利要求1所述的基于FPGA的Adaline神經(jīng)網(wǎng)絡(luò)控制器,其特征是所述信號輸 出接口 M5的DoutO Dout31引腳分別與FPGA處理芯片Ml的對應(yīng)端口相連。
6.根據(jù)權(quán)利要求1所述的基于FPGA的Adaline神經(jīng)網(wǎng)絡(luò)控制器,其特征是所述電壓 匹配電路M6的V、CS、R/W、EN、RST、DBO DB7引腳分別與FPGA處理芯片Ml的對應(yīng)端口相 連;所述電壓匹配電路M6的Vo、CSo、R/Wo、ENo、RSTo、DBOo DB7o分別與128X64位點(diǎn)陣 式液晶顯示屏MlO的對應(yīng)端口相連。
7.根據(jù)權(quán)利要求1所述的基于FPGA的Adaline神經(jīng)網(wǎng)絡(luò)控制器,其特征是所述程序下 載接口 M8的1、7、8、9腳分別與專用配置芯片M2的DCLK、DATA、nCS、ADSI引腳相連;程序 下載接口 M8的3、5、6腳分別與FPGA處理芯片Ml的C/D、nCON、nCE引腳相連。
全文摘要
本發(fā)明公開了一種基于FPGA的Adaline神經(jīng)網(wǎng)絡(luò)控制器,其特征是采用FPGA處理芯片M1,所述FPGA處理芯片M1連接有EPCS4芯片M2、LED陣列電路M3、信號輸入接口M4、信號輸出接口M5、電壓匹配電路M6、有源晶體振蕩器電路M7、程序下載接口M8,以及+5V、+3.3V和+1.8V三路穩(wěn)壓電源電路M9;電壓匹配電路M6還連接有128×64位點(diǎn)陣式液晶顯示屏M10。本發(fā)明基于現(xiàn)場可編程門陣列FPGA,有利于提高神經(jīng)網(wǎng)絡(luò)計(jì)算效率和工作穩(wěn)定性。
文檔編號G05B19/05GK102004464SQ201010602789
公開日2011年4月6日 申請日期2010年12月23日 優(yōu)先權(quán)日2010年12月23日
發(fā)明者張崇巍, 汪木蘭, 謝震, 鮑偉 申請人:合肥工業(yè)大學(xué)