推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python定点平方根的FPGA实现

更新时间:2019-12-30 11:13:32 大小:2M 上传用户:songhuahua查看TA发布的资源 标签:pythonFPGA 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

针对当前系统设计中软硬件设计者分别采用不同的设计语言存在的问题,采用基于Python的软硬件协同设计方法,以信号处理和图像处理中常用的平方根算法为例,在FPGA上实现了定点平方根算法。实验结果表明Python可以有效地将软件算法快速地转换为硬件设计,并能大幅度提高系统设计,仿真和校验的效率,使得这种方法设计的产品能更快地进入市场。


部分文件列表

文件名 大小
基于Python定点平方根的FPGA实现.pdf 2M

【关注B站账户领20积分】

部分页面预览

(完整内容请下载后查看)
2013 11 15 日  
36 卷第 22 期  
Nov. 2013  
现代电子技术  
Modern Electronics Technique  
Vol.36 No.22  
131  
基于 Python 定点平方根的 FPGA 实现  
刘毅飞  
北科技学院 生物医学工程学院,湖北 咸宁 437100)  
针对当前系统设计中软硬件设计者分别采用不同的设计语言存在的问题用基于 Python 的软硬件协同设计  
方法信号处理和图像处理中常用的平方根算法为例FPGA 上实现了定点平方根算法。实验结果表明 Python 可以有  
效地将软件算法快速地转换为硬件设计能大幅度提高系统设计仿真和校验的效率使得这种方法设计的产品能更快地  
进入市场。  
关键词PythonFPGA方根硬件协同设计  
中图分类号TN710⁃34  
文献标识码A  
文章编号1004⁃373X201322⁃0131⁃03  
Implementation of fixedpoint square root algorithm based on Python and FPGA  
LIU Yi⁃fei  
School of Biomedical EngineeringHubei University of Science and TechnologyXianning 437100China)  
AbstractAiming at the problem caused by different design languages used in software design and hardware designa new  
hardware and software co⁃design method based on Python was adopted. Taking the square root algorithm commonly used in digi⁃  
tal signal processing and image processing as an examplethe fixed⁃point square root algorithm was implemented on FPGA. The  
experiment result shows the method based on Python can speedly convert the software algorithm to its hardware designand im⁃  
prove the efficiency of system designsimulation and verify greatly. The product designed by the method can enter its market  
more quickly than that of the traditional method.  
KeywordsPythonFPGAsquare rootsoftware⁃hardware co⁃design  
0
1
FPGA 为可编程的逻辑器件具有功耗低便  
1.1 定点数表示  
于修改试等特点能在上面实时完成大量的算法,  
平方根运算作为信号和图像处理中的常见算法前在  
FPGA 上有许多实现是这些实现方法通常采用目前  
硬件设计中普遍采用的 Verilog VHDL 语言进行硬件  
设计种设计方法存在着仿真和校验效率低于复  
杂的算法和软件设计者之间的沟通较为困难等问题。  
通常在 FPGA 的运算可以采用定点和浮点两种  
方式来实现点运算和浮点运算相比尽管数表示的范  
围较小计较为复杂是速度较快FPGA 资源  
较小设计采用定点来完成。平方根的输入为非负  
括符号位为定点 32 位输入中高 16 位为整数部  
15 位为小数部分以直接计算的平方根范围为  
65 5360]果采用 32 位输出高位为符号位着  
的高 8 位为整数部分23 位为小数部分。  
[1]  
Python 一种简单易学并且功能强大的编程语言并  
[2]  
具有强大的软硬件描述能力MyHDL 采用 Python 扩展  
包的形式使其能支持硬件设计和仿真并在仿真结果符  
合要求后可将软件算法自动转换为相应的 Verilog 或  
VHDL 硬件描述。  
1.2 平方根实现  
平方根的 FPGA 实现方法很多的算法为了减少  
片上资源的使用辑实现上尽量避免使用乘法如  
本文试图采用这种新的基于 Python 的软硬件设计  
方法在 FPGA 上实现定点平方根。  
[3]  
CORDIC 位计算[4]non⁃restoring [5]FPGA上通  
常都有硬件乘法器采用迭代法和泰勒级数展开[6⁃7]  
本文采用泰勒级数展开的方法数采用 5 数采  
3.15 的定点表示形式数部分 15 数部分 2 位  
为了保证后续计算结果不溢出个位宽为 18 算  
收稿日期2013⁃06⁃17  
现代电子技术  
132  
2013 年第 36 卷  
公式如1示:  
GTKWAVE 以便于校验设计是否正确终完  
f x = 0.230 802 01 + 1.290 867 21 × 0.88 8 939 83x2 +  
( )  
成的仿真波形如图 3 所示。  
0.482 575 25x3 + 0.115 309 93x4 =  
7 563 + 42 299x - 29 129x2 + 15 813x3 - 3 778x4 32 768  
(
)
1)  
但是上述公式存在高阶运算Horner scheme  
的方法[8]将其转换为下面的迭代计算:  
s N - 1 = p N - 1  
)
(
)
(
s k = s k + 1 x + p k  
( ) ( )  
(
)
f = s 0  
( )  
式中k=3210N=5。  
对于输入 x 65 5360]于数的范围较  
常进行归一化处理用的方法通过左移运算去  
掉二进制定点数的所有前导零输入的数转换为定点  
小数[0.51完成平方根运算之后后根据前  
导零个数的奇性不同分别进行去归一化处理理  
n
2输入数 y 分为 sxs=2 n 即为 y 的二进制  
2 基于 Python 软硬件协同设计流程  
前导零的个数。  
y = sx = 2n x,  
x [0.5,1)  
n为偶数  
, n为奇数  
2
s = 2n ,  
2)  
n - 1  
2
s = 21 2 × 2(  
)
整个过程的设计模块如图 1 所示。  
3 MyHDL 仿真波形  
2.3 测试数据度及误差  
由于整个过程采用 Python 设计Python 存在大量的  
软件包可以使用方根完成的测试数据结果如表 1 所  
用基于 Python 绘图包 matplotlib 制的当 x 在  
[0.51.0]之间时的平方根误差如图 4 所示。  
1 定点平方根计算过程  
1.3 Python 软硬件协同设计  
基 于 Python 的 软 硬 件 协 同 设 计 的 过 程 如 图 2 所  
[9] 于本设计最终要在硬件上实现设计时 Python  
的硬件设计部分采用 MyHDL 综合子集后使用  
MyHDL toVerilog数将 MyHDL 设计自动转换为相  
应的 Verilog MyHDL 持与 Verilog 合仿  
计时的测试平台可以重用仿真速度和设计效率  
大大提高。在完成基于 Python 软硬件设计并仿真正确  
之后可以回到进行传统的 FPGA 计流程行后  
续的下载合和测试工作。  
2
4 MyHDL 的平方根算法的 FPGA 实现的误差图  
2.4 综合结果  
2.1 实验环境  
[10]  
采 用 MyHDL 0.8 采 用 GTKWAVE 查 看 仿 真 波  
FPGA 器件采用 Altera 公司 CycloneⅡ 2C35F672C6,  
编译综合采用 Quartus 12.1sp1 webpack。  
2.2 仿真波形  
在上面仿真校验符合设计要求后Python 自动转  
换为 Verilog 描述Quartus 编译综合使用 Model⁃  
sim 仿真的波形如图 5 所示3 Python 环境下仿真  
波形相似此可见采用 Python 的软硬件协同设计方法  
能有效地进行 FPGA 计。综合后 FPGA 源使用情  
在设计过程中生成的 VCD 仿真波形可以随时采用  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单
  • 21ic下载 打赏310.00元   1小时前

    用户:w178191520

  • 21ic下载 打赏310.00元   1小时前

    用户:小猫做电路

  • 21ic下载 打赏310.00元   1小时前

    用户:zhengdai

  • 21ic下载 打赏210.00元   1小时前

    用户:gsy幸运

  • 21ic下载 打赏230.00元   1小时前

    用户:jh0355

  • 21ic下载 打赏260.00元   1小时前

    用户:xzxbybd

  • 21ic下载 打赏70.00元   1小时前

    用户:jh03551

  • 21ic下载 打赏60.00元   1小时前

    用户:sun2152

  • 21ic下载 打赏80.00元   1小时前

    用户:铁蛋锅

  • 21ic下载 打赏60.00元   2小时前

    用户:xuzhen1

  • 21ic下载 打赏60.00元   2小时前

    用户:liqiang9090

  • 21ic下载 打赏30.00元   2小时前

    用户:wangcunxia

  • 21ic下载 打赏20.00元   2小时前

    用户:玉落彼岸

  • 21ic下载 打赏15.00元   2小时前

    用户:kk1957135547

  • 21ic下载 打赏15.00元   2小时前

    用户:w993263495

  • 21ic下载 打赏15.00元   2小时前

    用户:x15580286248

  • 21ic下载 打赏15.00元   2小时前

    用户:w1966891335

  • 21ic下载 打赏15.00元   2小时前

    用户:hp860629

  • 21ic下载 打赏10.00元   2小时前

    用户:staven630

  • 21ic下载 打赏10.00元   2小时前

    用户:我觉得八行

  • 21ic下载 打赏10.00元   2小时前

    用户:曾多次

推荐下载