搜索
当前位置: 捷豹彩票平台 > 定点运算 >

采用Python语言在FPGA上实现定点平方根算法的硬件系统协同设计

gecimao 发表于 2019-04-18 19:36 | 查看: | 回复:

  FPGA 作为可编程的逻辑器件,它具有功耗低、便于修改、调试等特点,并能在上面实时完成大量的算法,平方根运算作为信号和图像处理中的常见算法,目前在FPGA上有许多实现,但是这些实现方法通常采用目前硬件设计中普遍采用的Verilog和VHDL语言进行硬件设计,这种设计方法存在着仿真和校验效率低,对于复杂的算法和软件设计者之间的沟通较为困难等问题。

  Python是一种简单易学并且功能强大的编程语言,并具有强大的软硬件描述能力,MyHDL采用Python扩展包的形式使其能支持硬件设计和仿真并在仿真结果符合要求后可将软件算法自动转换为相应的Verilog 或VHDL硬件描述。

  本文试图采用这种新的基于Python的软硬件设计方法在FPGA上实现定点平方根。

  通常在FPGA 上的运算可以采用定点和浮点两种方式来实现,定点运算和浮点运算相比尽管数表示的范围较小,设计较为复杂,但是速度较快,占用FPGA资源较小,本设计采用定点来完成。平方根的输入为非负数,包括符号位为定点32位输入,其中高16位为整数部分,低15位为小数部分,可以直接计算的平方根范围为(65 536,0],结果采用32位输出,最高位为符号位,接着的高8位为整数部分,低23位为小数部分。

  平方根的FPGA实现方法很多,有的算法为了减少片上资源的使用,逻辑实现上尽量避免使用乘法,比如CORDIC,逐位计算,non-restoring 等,现在FPGA上通常都有硬件乘法器,可采用迭代法和泰勒级数展开,本文采用泰勒级数展开的方法,级数采用5级,系数采用3.15的定点表示形式,小数部分15位,整数部分2位为了保证后续计算结果不溢出,整个位宽为18位,计算公式如式(1)所示:

  对于输入x 位于(65 536,0]之间,由于数的范围较大,通常进行归一化处理,采用的方法通过左移运算去掉二进制定点数的所有前导零,将输入的数转换为定点小数[0.5,1)之间,在完成平方根运算之后,然后根据前导零个数的奇、偶性不同分别进行去归一化处理,原理如式(2)所示,将输入数y 分为sx,s=2n,n 即为y 的二进制前导零的个数。

  基于Python 的软硬件协同设计的过程如图2 所示,由于本设计最终要在硬件上实现,在设计时Python的硬件设计部分采用MyHDL 可综合子集,最后使用MyHDL的toVerilog()函数将MyHDL设计自动转换为相应的Verilog 代码,由于MyHDL 支持与Verilog 混合仿真,设计时的测试平台可以重用,仿真速度和设计效率大大提高。在完成基于Python软硬件设计并仿真正确之后,就可以回到进行传统的FPGA 设计流程,进行后续的下载,综合和测试工作。

  在设计过程中生成的VCD仿真波形可以随时采用GTKWAVE 查看,可以便于校验设计是否正确,最终完成的仿线 测试数据,精度及误差

  由于整个过程采用Python设计,Python存在大量的软件包可以使用,平方根完成的测试数据结果如表1所示,采用基于Python 的绘图包matplotlib 绘制的当x 在[0.5,1.0]之间时的平方根误差如图4所示。

  在上面仿真校验符合设计要求后,将Python自动转换为Verilog描述,采用Quartus编译综合,并使用Model-sim仿线的Python环境下仿真波形相似,由此可见采用Python的软硬件协同设计方法能有效地进行FPGA 设计。综合后FPGA 资源使用情况:LE共1 506个,寄存器64个,嵌入式9位硬件乘法器10个。

  本文采用基于Python的扩展包MyHDL的软硬件协同设计方法,在FPGA 上完成了定点平方根算法,设计仿真过程仅使用Python语言,所以仿真校验和传统的设计方法相比效率更高,仿真速度也更快,另外此方法还可以方便,有效地将一个软件算法快速地转换为其相应的硬件实现,从而完成软硬件系统协同设计。

  现代系统的算法越来越复杂,传统的软硬件设计方法越来越不适应市场对设计的要求,采用Python进行系统设计,仿真和校验的速度会大大地提高,也能够自动将算法转换为对应的硬件实现,所以采用Python来进行软硬件协同设计的产品能更快地进入市场,并且随着设计复杂性的进一步增强和这种设计方法本身的发展和完善,基于Python的软硬件协同设计方法将会有更加广阔的应用前景。

  正点原子推出的“开拓者“、”新起点”两款FPGA开发板功能强大,配有教科书级的文档教程;配套的视频分为工具篇

  用openCL写了个机器学习算法,用a10gx的板子的BSP编译运行没问题,但是a10gx板子太贵了。 于...

  本文档的详细介绍的是高性能FPGA的典型应用详细资料说明内容包括了:1.Altera的FPGA体系结....

  本文档的详细介绍的是FPGA设计有哪些良好的设计方法及误区内容包括了:1.FPGA的适用领域及选型,....

  能不能用NI 9073FPGA模块产生一个500HZ的标准正弦波,然后通过9264AO输出?? 我用FPGA的正弦波产生...

  4月18日消息,英特尔近日宣布收购了家领先的优化视频和视觉 FPGA IP解决方案提供商 Omnit....

  根据一些WP文档,最佳编码实践不是尽可能使用全局重置? 这里有一个问题,如果没有复位引脚,如何复位FPGA,每次想要复位...

  您好Xilinx社区, 有人能否就Spartan-6 FPGA是否需要设计中的上电复位电路给出明确的答案? 在附图中,我们的设计中有这...

  “芝麻,芝麻,开门吧。”随着阿里巴巴一声咒语,山洞的大门应声打开,阿里巴巴发现洞里大量财宝和金币……....

  英特尔的Agilex FPGA发布 必将对当前的FPGA市场带来一波最强的冲击

  英特尔的10纳米FPGA终于来了。在四月刚刚结束的英特尔“以数据为中心创新日”中,曾经代号为Falc....

  作者:王毅 管会生 刘斌彬 梅顺良 引言 本文采用FPGA实现了IDE硬盘接口协议。系统提供两套符合ATA-6规范的IDE...

  作者:国防科技大学 黄圣春 习勇 魏急波 引言 在基于软件无线电的某无线通信信号侦收平台的设计中,天线接收到的信号...

  嗨社区, 我希望有人可以就Spartan 6 FPGA的EEPROM(XCF32P)提出一些建议。 我们的卡与FPGA& 必须保...

  现在用fpga对信号处理,具体的就是写一个1553B协议。 但是现在又几个节点,需要通信。 本来想用arm,但是老师可...

  FPGA里面用正弦波与等腰三角波比较得到SPWM波经低通滤波来得到正弦波,可以用正弦rom表乘以调制度实现调幅,但是不知道具...

  我们实验室有DE2的开发板,但是一时半会貌似是借不出来,我想在网上买一个,但穷学生一枚,最多就只能拿出几百块了,一看好点的...

  华为宣布将FusionServer产品全线升级到FusionServer Pro智能服务器

  从2017年公开发布基于赛灵思FPGA的华为高性能加速服务器硬件平台开始,赛灵思和华为强强联手,充分....

  安路科技在上海推出第三代“小精灵”ELF3系列高性能、低功耗FPGA产品

  安路科技成立8年以来,总经理文余波进行了首次演讲。他表示,安路科技的初心是做好FPGA;使命是“搅局....

  传感器、加速计算、存储以及物联网、人工智能和工业4.0等等话题是当下半导体产业的关注焦点。日前,在第....

  千兆位级串行I/O技术有着极其出色的优越性能,但这些优越的性能是需要条件来保证的,即优秀的信号完整性....

  和过去几代产品相比,AMD近期推出的产品给了英特尔更为激烈的竞争压力,这将帮助AMD逐步超越英特尔;

  无人机机载数据链设备的系统架构如图1 所示。首先,FPGA 通过EMIF 接收DSP 的高清压缩视频....

  液体密度是许多工业中的重要参数,它可以直接参与生产过程中的控制和决策,因此对液体密度进行快速而准确的....

  详细讲解单项交流异步马达工作原理,如何产生旋转的正圆气隙磁场,鼠笼式马达概念。详细讲解如何实现相位移....

  今天,英特尔终于发布了与Altera进行深度整合之后全新FPGA产品家族——基于英特尔10nm制程的....

  这里多扯两句: multiprocessing.dummy? mltiprocessing 库的线程....

  本规范描述了数据转换器和逻辑设备之间的串行接口。它包含规范性信息,使设计人员能够实现与本规范涵盖的其....

  分析家估计,汽车远程通信业务和硬件的总收益将于未来五年内超越200亿美元,而电子元件供应商正积极投资....

  现在我们在超市购物付款时候只要一个识别器就可以很快知道价格,不再是以前的一个算盘或者计算器,加快了付....

  本文提出的基于FPGA的NoC验证平台在仿真速度方面是一般基于HDL的软件仿线倍,而基....

  激光带预处理算法的实现[2]为:由于有激光帧和无激光帧是依次交替产生的,因此首先要保存一帧有激光帧,....

  嵌入式微处理器S3C44BOX内置ARM7TDMI核,集成了丰富的外围功能模块,内部8 kB Cac....

  Altium Designer 提供了一种简单轻松的方法,可以帮助软/硬件工程师共同应对FPGA嵌入....

  Virtex-II ProTM平台FPGA产品基于高性能的Virtex-IITM结构,为嵌入式系统设....

  随着计算机和数字图像处理技术的飞速发展,视频监控技术应用广泛。传统的视频监控系统都是用单一摄像头对某....

  FPGA(Field-ProgrammableGateArray),即现场可编程门阵列,它是在PAL....

  ASIC(专用集成电路,Application Specific Integrated Circui....

  自从紫光集团提出“从芯到云”战略,几年来可谓稳扎稳打步步推进,目前蔚然已形成全产业链,且在多个细分产....

  PLD(Programmable Logic Device):可编程逻辑器件,数字集成电路半成品,芯....

  英特尔推出全新架构的FPGA Agilex 将成为征服市场的一大重磅武器

  2015年中,半导体巨头英特尔斥资167亿美元收购Altera,这在当时引起了业界轰动,大家也对英特....

  2015年,英特尔斥巨资167亿美元收购了FPGA巨头Altera,从而改变了无晶圆半导体生态系统中....

  备受瞩目的FPGA尽管市场巨大,但其市场分布却十分聚集。当前市场被Xilinx和Intel高度垄断,....

  英特尔推出英特尔® Agilex™ FPGA 将提供量身定制的解决方案

  英特尔今日宣布推出全新产品家族——英特尔® Agilex™ FPGA。全新现场可编程门阵列 (FPG....

  "近年来,英特尔扩大了产品范围,引入突破性创新,涉及领域包括内存、调制解调器、特定用途定制ASIC、....

  本文档的主要内容详细介绍的是FPGA教程之FPGA系统设计与应用的详细资料说明包括了:1.Alter....

  本文档的主要内容详细介绍的是FPGA教程之FPGA系统设计的主要思路和方法初探资料说明包括了:1.F....

  本文档的主要内容详细介绍的是FPGA教程之FPGA硬件最小系统设计的详细资料说明包括了:1.FPGA....

  本文档的主要内容详细介绍的是FPGA教程之ISE设计流程简介的详细资料说明。

  本文档的主要内容详细介绍的是FPGA教程之FPGA在视频处理领域的应用详细资料说明包括了:1.介绍视....

  本文档的主要内容详细介绍的是FPGA视频教程之FPGA在视频图像处理领域的应用视频资料说明。

  英特尔今日宣布推出全新产品家族——英特尔® Agilex™ FPGA。全新现场可编程门阵列(FP....

  几行R代码就可以生成一个可交互的网络应用。比方说如果使用R语言的flexdashboard包, 你只....

  本次安路科技发布的ELF3系列包含了EF3L15、EF3L40、EF3L90 三款FPGA器件,即日....

  在“精工匠制 灵炫未来”2019新品发布会上, 上海安路信息科技有限公司(以下简称“安路科技”) ....

  工业4.0涉及工厂的数字化,对工业市场领域的组织领导者来说意味着许多不同的事情,数字化的影响可以有一....

  当被问及是否计划在未来十二个月内采用或迁移到其他语言时,Kotlin、Python 和 Go 都是比....

  CPLD主要是由可编程逻辑宏单元(LMC,Logic Macro Cell)围绕中心的可编程互连矩阵....

  MCU凭借其强大的控制功能,广泛地用于消费类电子、通信、汽车电子、工业等领域。有资料显示,MCU产品....

  RISC-V 自 2011 年推出以来迅速地普及。我们认为一个精简的程序员指南将进一步促进它的发展,....

  我学习FPGA是因为公司需要,同时自己也想接触这方面的知识,在大规模、高速信号领域还是有一定的优势

  TMP411 ±1°C Programmable Remote/Local Digital Out Temperature Sensor

  TMP411设备是一个带有内置本地温度传感器的远程温度传感器监视器。远程温度传感器,二极管连接的晶体管通常是低成本,NPN或PNP型晶体管或二极管,是微控制器,微处理器或FPGA的组成部分。 远程精度为1 C适用于多个设备制造商,无需校准。双线串行接口接受SMBus写字节,读字节,发送字节和接收字节命令,以设置报警阈值和读取温度数据。 TMP411器件中包含的功能包括:串联电阻取消,可编程非理想因子,可编程分辨率,可编程阈值限制,用户定义的偏移寄存器,用于最大精度,最小和最大温度监视器,宽远程温度测量范围(高达150C),二极管故障检测和温度警报功能。 TMP411器件采用VSSOP-8和SOIC-8封装。 特性 1C远程二极管传感器 1C本地温度传感器 可编程非理想因素 串联电阻取消 警报功能 系统校准的偏移寄存器 与ADT7461和ADM1032兼容的引脚和寄存器 可编程分辨率:9至12位 可编程阈值限...

  TMP468器件是一款使用双线 C兼容接口的多区域高精度低功耗温度传感器。除了本地温度外,还可以同时监控多达八个连接远程二极管的温度区域。聚合系统中的温度测量可通过缩小保护频带提升性能,并且可以降低电路板复杂程度。典型用例为监测服务器和电信设备等复杂系统中不同处理器(如MCU,GPU和FPGA)的温度。该器件将诸如串联电阻抵消,可编程非理想性因子,可编程偏移和可编程温度限值等高级特性完美结合,提供了一套精度和抗扰度更高且稳健耐用的温度监控解决方案。 八个远程通道(以及本地通道)均可独立编程,设定两个在测量位置的相应温度超出对应值时触发的阈值。此外,还可通过可编程迟滞设置避免阈值持续切换。 TMP468器件可提供高测量精度(0.75C)和测量分辨率(0.0 625C)。该器件还支持低电压轨(1.7V至3.6V)和通用双线制接口,采用高空间利用率的小型封装(3mm×3mm或1.6mm×1.6mm),可在计算系统中轻松集成。远程结支持-55C至+ 150C的温度范围。 特性 8通道远程二极管温度传感器精度:0.75&...

  XTR108 具有“智能”可编程信号调节的 4-20mA 两线mA双线变送器,专为温度和桥接传感器而设计。模拟信号路径中的零点,量程和线性化误差可通过标准数字串行接口进行校准,从而消除了手动微调。非易失性外部EEPROM存储校准设置。 全模拟信号路径包含输入多路复用器,自动调零可编程增益仪表放大器,双可编程电流源,线性化电路,电压基准,子调节器,内部振荡器,控制逻辑和输出电流放大器。可编程电平转换补偿传感器DC偏移。可选择的上下比例输出表示每个NAMUR NE43的超出范围和烧坏。当电源丢失时,将启动自动复位。 特性 完成发送器+ RTD线V) 消除电位计和修剪 数字校准 5V亚稳压器输出 串行SPI ??总线封装 应用 远程RTD变送器 压力桥变送器 应变计变送器 SCADA远程数据采集 称重系统 工业过程...

本文链接:http://saskatoonflowers.net/dingdianyunsuan/105.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部