999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python的sigmoid函數(shù)FPGA實(shí)現(xiàn)

2014-07-01 23:45:10劉毅飛
微處理機(jī) 2014年1期
關(guān)鍵詞:語言方法設(shè)計(jì)

劉毅飛

(湖北科技學(xué)院生物醫(yī)學(xué)工程學(xué)院,咸寧437100)

基于Python的sigmoid函數(shù)FPGA實(shí)現(xiàn)

劉毅飛

(湖北科技學(xué)院生物醫(yī)學(xué)工程學(xué)院,咸寧437100)

sigmoid函數(shù)是人工神經(jīng)網(wǎng)絡(luò)中通常采用的傳遞函數(shù),采用基于Python的軟硬件協(xié)同設(shè)計(jì)方法,在FPGA上實(shí)現(xiàn)了定點(diǎn)sigmoid函數(shù)。實(shí)驗(yàn)結(jié)果表明采用基于Python的軟硬件協(xié)同設(shè)計(jì)方法,可以利用Python上大量的包和模塊從而大幅度提高系統(tǒng)設(shè)計(jì)、仿真和校驗(yàn)的效率,并且能將軟件算法快速有效地轉(zhuǎn)換為硬件實(shí)現(xiàn),在整個(gè)軟硬件設(shè)計(jì)過程中僅采用Python語言,解決了當(dāng)前系統(tǒng)設(shè)計(jì)中軟硬件設(shè)計(jì)者分別采用不同設(shè)計(jì)語言存在的溝通問題。

Python語言;現(xiàn)場可編程門陣列;sigmoid函數(shù);軟硬件協(xié)同設(shè)計(jì);神經(jīng)網(wǎng)絡(luò)

1 引 言

人工神經(jīng)網(wǎng)絡(luò)在模式識別、分類、人工智能領(lǐng)域有著廣泛應(yīng)用。在人工神經(jīng)網(wǎng)絡(luò)中,sigmoid函數(shù)是人工神經(jīng)網(wǎng)絡(luò)中常用的一種傳遞函數(shù),在嵌入式應(yīng)用中,sigmoid函數(shù)通??梢栽贒SP和FPGA上實(shí)現(xiàn)。FPGA作為一種可編程邏輯器件,具有功耗低、可以在上面實(shí)時(shí)實(shí)現(xiàn)大量的算法。目前在FPGA上面有許多神經(jīng)網(wǎng)絡(luò)和sigmoid函數(shù)的實(shí)現(xiàn)方案,在這些方案中普遍采用Verilog和VHDL語言進(jìn)行硬件設(shè)計(jì),而軟件設(shè)計(jì)通常采用其他高級語言比如C語言,Python語言等,由于這種設(shè)計(jì)方法硬件設(shè)計(jì)者和軟件設(shè)計(jì)者之間采用不同的設(shè)計(jì)語言,存在著仿真和校驗(yàn)效率低、軟硬件設(shè)計(jì)者之間溝通較為困難等問題,而軟硬件協(xié)同設(shè)計(jì)方法在軟硬件設(shè)計(jì)過程中僅采用一種設(shè)計(jì)語言,具體到神經(jīng)網(wǎng)絡(luò)上比如采用SystemC[1],handle-C[2]等基于C語言的軟硬件協(xié)同設(shè)計(jì)語言。Python[3]是一種簡單易學(xué)并且功能強(qiáng)大的編程語言,采用這種新的基于Python的軟硬件設(shè)計(jì)方法,可以通過Python擴(kuò)展包MyHDL[4]使其能支持硬件設(shè)計(jì)和仿真,并能夠在FPGA上快速實(shí)現(xiàn)人工神經(jīng)網(wǎng)絡(luò)中的sigmoid函數(shù)。

2 方法

2.1 sigmoid的FPGA實(shí)現(xiàn)方法

在人工神經(jīng)網(wǎng)絡(luò)中,通常使用的一種sigmoid函數(shù)為log-sigmoid函數(shù),其公式如式(1)所示,函數(shù)f(x)的值域在(0,1)之間,

sigmoid的FPGA實(shí)現(xiàn)方法主要包括LUT查找表,分段線性逼近,高階逼近或泰勒級數(shù)展開[5-8]等。本文采用文獻(xiàn)[8]中描述的分段線性逼近方法,計(jì)算公式如式(2)

2.2 log-sigmoid定點(diǎn)數(shù)的格式表示

通常在FPGA上的數(shù)可以采用定點(diǎn)和浮點(diǎn)兩種方式來表示,由于定點(diǎn)的表示方式盡管設(shè)計(jì)較為復(fù)雜,但是速度較快,占用FPGA資源較小,通常采用定點(diǎn)來完成。本設(shè)計(jì)中輸入數(shù)x為9位定點(diǎn)數(shù),其中符號位1位,整數(shù)4位,小數(shù)4位;輸出y也為9位定點(diǎn)數(shù),符號位1位,整數(shù)1位,小數(shù)位7位。式(2)中的常數(shù)采用符號位1位,整數(shù)1位,小數(shù)位7位的表示方式。

2.3 Python軟硬件協(xié)同設(shè)計(jì)

基于Python的軟硬件協(xié)同設(shè)計(jì)過程如圖1所示[9],圖中Python的硬件設(shè)計(jì)部分采用MyHDL可綜合子集,最后使用MyHDL的toVerilog()方法將MyHDL設(shè)計(jì)自動(dòng)轉(zhuǎn)換為相應(yīng)的Verilog代碼,而Python硬件測試平臺可以使用任何Python語句從而支持復(fù)雜的仿真校驗(yàn)。另外MyHDL支持與Verilog混合仿真,設(shè)計(jì)的硬件測試平臺還可以用來作為轉(zhuǎn)換后的Verilog代碼測試平臺,也就是測試平臺可以重用,不用重新編寫,仿真速度和設(shè)計(jì)效率大大提高。在仿真符合要求之后,就可以進(jìn)行FPGA設(shè)計(jì)流程后續(xù)的下載,綜合和測試工作。

3 結(jié)果

3.1 實(shí)驗(yàn)環(huán)境

Python上存在大量的軟件包,模塊可以用來提高設(shè)計(jì)效率,實(shí)驗(yàn)用到的Python包包括:硬件設(shè)計(jì)和仿真使用MyHDL 0.8[10],繪圖使用matplotlib,定點(diǎn)設(shè)計(jì)采用fixedpoint,數(shù)值運(yùn)算采用numpy。波形查看工具為GTKWAVE,Python開發(fā)環(huán)境使用SPE(Stani’s Python Editor),所有的這些工具都是免費(fèi)的。FPGA器件采用altera公司CycloneII2C35F672C6,編譯綜合采用Quartus 12.1sp1 webpack。

圖1 基于Python軟硬件協(xié)同設(shè)計(jì)流程

3.2 仿真波形

在設(shè)計(jì)過程中生成的VCD仿真波形可以隨時(shí)采用GTKWAVE查看,可以便于校驗(yàn)設(shè)計(jì)是否正確,最終設(shè)計(jì)完成的sigmoid函數(shù)輸出的仿真模擬波形如圖2所示。

3.3 精度及誤差

由于整個(gè)過程采用Python設(shè)計(jì),Python存在大量的軟件包可以使用,來評估設(shè)計(jì)精度和繪制各種圖,采用matplotlib包繪制的MyHdl完成的sigmoid函數(shù)FPGA實(shí)現(xiàn)和numpy的sigmoid函數(shù)比較圖如圖3所示,函數(shù)輸入x在[-8,8]之間時(shí)的sigmoid函數(shù)FPGA實(shí)現(xiàn)誤差如圖4所示。

圖2 MyHDL的sigmoid實(shí)現(xiàn)的仿真波形

圖3 sigmoid函數(shù)的實(shí)現(xiàn)比較圖

圖4 MyHDL的sigmoid函數(shù)的FPGA實(shí)現(xiàn)的誤差圖

3.4 綜合結(jié)果

在仿真,校驗(yàn)和精度符合系統(tǒng)設(shè)計(jì)要求后,采用MyHdl包的toVerilog()方法將Python的sigmoid硬件描述自動(dòng)轉(zhuǎn)換為Verilog描述,另外MyHDL本身還支持與modelsim的協(xié)同仿真。使用modelsim仿真的波形如圖5所示,與圖2的Python環(huán)境下仿真波形相似,采用Quartus編譯綜合后FPGA資源使用情況為:使用125個(gè)LE,9個(gè)寄存器。

圖5 sigmoid函數(shù)的Modelsim仿真波形圖

4 結(jié)束語

采用一種新的基于Python的軟硬件協(xié)同設(shè)計(jì)方法,在FPGA上實(shí)現(xiàn)了在人工神經(jīng)網(wǎng)絡(luò)上廣泛使用的sigmoid函數(shù)。設(shè)計(jì)仿真過程使用Python語言擴(kuò)展包MyHDL及其他python包,使得仿真校驗(yàn)和傳統(tǒng)的設(shè)計(jì)方法相比效率更高,仿真速度也更快。從轉(zhuǎn)換后的硬件綜合結(jié)果可以看出,Python也具有較好的硬件描述能力,可以有效地完成硬件設(shè)計(jì)。

現(xiàn)代系統(tǒng)的算法越來越復(fù)雜,傳統(tǒng)的軟硬件設(shè)計(jì)分開的方法越來越不適應(yīng)市場對設(shè)計(jì)的要求。采用Python的軟硬件協(xié)同設(shè)計(jì)方法,軟硬件設(shè)計(jì)僅僅采用一種語言Python,軟硬件設(shè)計(jì)者之間不存在溝通問題,另外仿真和校驗(yàn)的速度也會(huì)大大提高。所以采用基于Python的軟硬件協(xié)同設(shè)計(jì)方法設(shè)計(jì)效率大大提高,設(shè)計(jì)的產(chǎn)品能更快地進(jìn)入市場。

[1]Lettnin D,Braun A,Bodgan M,et al.Synthesis of Embedded SystemC Design:A Case Study of Digital Neural Networks[C].Proceedings of the Design,Automation and Test in Europe Conference and Exhibition Designers:IEEE,2004:248-253.

[2]Pandya V,Areibi S,Moussa M.A Handel-C Implementation of the Back-Propagation Algorithm On Field Programmable Gate Arrays[C].Proceedings of the 2005 International Conference on Reconfigurable Computing and FPGAs:IEEE,2005.

[3]Python Software Foundation.Python Documentation(Python 2.7)[EB/OL].[2013-6-10],http://www.python.org.

[4]Decaluwe J.MyHDL:a Python-Based Hardware Description Language[J].Linux Journal,2004,127(10):5.

[5]Tommiska M T.Efficient digital implementation of the sigmoid function for reprogrammable logic[C].IEEE Proceedings-Computers and Digital Techniques:IET,2003:403-411.

[6]Himavathi S,Anitha D,Muthuramalingam A.Feedforward Neural Network Implementation in FPGA Using Layer Multiplexing for Effective Resource Utilization[J].IEEE TRANSACTIONS ON NEURAL NETWORKS,2007,18(3):880-888.

[7]Namin,A.H.Leboeuf,K.Wu Huapeng Artificial neural networks activation function HDL coder[C].IEEE International Conference on Electro/Information Technology.Windsor,ON:IEEE,2009:389-392.

[8]Amin H,Curtis K M,Hayes-Gill B R.Piecewise linear approximation applied to nonlinear function of a neural network[C].IEEE Proceedings-Circuits,Devices and Systems:IET,1997:313-317.

[9]劉毅飛.基于Python的軟硬件協(xié)同設(shè)計(jì)方法[J].現(xiàn)代電子技術(shù),2013,36(8):76-78.

[10]Decaluwe J.MyHDLmanual[R].Decaluwe J.2013.5

FPGA Im p lementation of Sigmoid Function Based on Python

LIU Yi-fei
(School of Biomedical Engineering,Hubei University of Science and Technology,Xianning 437100,China)

Sigmoid is an activation function which is commonly used in the artificial neutral network.This paper implementes the sigmoid function on FPGA by using the software and hardware co-design methodology based on Python.The result shows that themethod can highly improve efficiency of system design,simulation and verification by using many python packages and modules,and it can quickly convert the software algorithm to its hardware implementation.During the software and hardware design,only python design language is used,so there is no gap between the hardware and software designers.

Python;FPGA;Sigmoid;Software-hardware co-design;Neutral network

10.3969/j.issn.1002-2279.2014.01.020

TN407

:A

:1002-2279(2014)01-0073-03

劉毅飛(1971-),男,湖北咸寧人,副教授,碩士,主研方向:嵌入式系統(tǒng)、醫(yī)學(xué)圖像處理與分析。

2013-03-15

猜你喜歡
語言方法設(shè)計(jì)
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
瞞天過海——仿生設(shè)計(jì)萌到家
讓語言描寫搖曳多姿
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
累積動(dòng)態(tài)分析下的同聲傳譯語言壓縮
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
我有我語言
捕魚
主站蜘蛛池模板: 伊人久综合| 国产最爽的乱婬视频国语对白| 久久婷婷色综合老司机 | 婷婷激情亚洲| 亚洲欧美在线精品一区二区| 青青青国产视频手机| 久热中文字幕在线| a毛片免费观看| 国产成年女人特黄特色毛片免| 四虎成人免费毛片| 亚洲精品午夜天堂网页| 亚洲无码精品在线播放| 久久99久久无码毛片一区二区| 国产精品久久久久久搜索| 国产精品成人免费视频99| 日韩毛片免费视频| 天堂在线亚洲| 亚洲一区网站| 久久网综合| 97se亚洲| 一本久道热中字伊人| 深爱婷婷激情网| 精品无码国产一区二区三区AV| 老司机午夜精品网站在线观看| 在线观看热码亚洲av每日更新| 精品久久蜜桃| 亚洲AV永久无码精品古装片| 二级特黄绝大片免费视频大片| 美女免费精品高清毛片在线视| www.99在线观看| 免费大黄网站在线观看| WWW丫丫国产成人精品| 2048国产精品原创综合在线| 欧美亚洲国产精品第一页| 91色老久久精品偷偷蜜臀| 女同国产精品一区二区| 国产精品亚洲а∨天堂免下载| 国产伦精品一区二区三区视频优播 | 亚洲精品在线91| 久久久噜噜噜| 欧美精品一区二区三区中文字幕| 毛片免费网址| 天堂岛国av无码免费无禁网站| 成人中文字幕在线| 麻豆精品视频在线原创| 国产香蕉一区二区在线网站| 亚洲精品天堂自在久久77| 性欧美精品xxxx| 亚洲人成色在线观看| 成人综合在线观看| 亚洲动漫h| 99精品福利视频| 91精品国产91久久久久久三级| 无码一区中文字幕| 青青青国产视频手机| 国产一级片网址| 找国产毛片看| 亚洲色图另类| 91麻豆精品国产高清在线| 亚洲第一区欧美国产综合| 国产理论最新国产精品视频| 亚洲成a∧人片在线观看无码| 一级片免费网站| 久久这里只有精品8| 黄色三级网站免费| 国产69囗曝护士吞精在线视频 | 日本人又色又爽的视频| 国产a在视频线精品视频下载| 亚洲国产精品无码久久一线| 91区国产福利在线观看午夜| 少妇被粗大的猛烈进出免费视频| 精久久久久无码区中文字幕| 波多野结衣AV无码久久一区| 亚洲无线一二三四区男男| 天堂岛国av无码免费无禁网站| 久草网视频在线| 91精品免费久久久| 欧美国产日韩在线播放| 91精品情国产情侣高潮对白蜜| 亚洲欧美人成电影在线观看| 国产精品lululu在线观看| 91视频区|