tag 标签: 硬件加速

相关博文
  • 热度 3
    2023-11-24 16:54
    782 次阅读|
    0 个评论
    作者:郭道正, A chronix S emiconductor 中国区总经理 在日前落幕的“中国集成电路设计业 2023 年会暨广州集成电路产业创新发展高峰论坛( ICCAD 2023 )”上, Achronix 的 Speedcore ™嵌入式 FPGA 硅知识产权( eFPGA IP )受到了广泛关注,预约会议、专程前往或者驻足询问的芯片设计业人士的数量超过了往届,表明了越来越多的国内开发者正在考虑为其 A SIC 或 S oC 设计添加高性能 e FPGA 逻辑阵列。 众多潜在用户的需求,反映了当前各行各业都在加速导入智能化技术,并利用 eF PGA 来在其 A SIC 或 S oC 中添加硬件数据处理加速功能,并为不断演进的算法或者标准保留可编程性。 S peedcore eFPGA IP 包括了查找表、存储器、数字信号处理器( DSP )和机器学习处理器( MLP )等构建模块。它们都采用了模组化的结构设计,以支持客户根据其客制化终端系统的需求,来量身定制相应的资源组合。 Achronix 的 Speedcore IP 以 GDSII 格式提供,同时提供相应的文档,以支持设计师将 Speedcore eFPGA 实例集成到其特有的 ASIC 之中。 Achronix 还提供配套的 ACE 设计工具,用于编译针对 Speedcore eFPGA 的设计。目前, S peedcore eFPGA IP 已被全球数十家领先的科技企业采用,总的出货量超过了 1500 万。 简要功能介绍 由于 Speedcore eFPGA 是一款嵌入式 IP ,因此它被设计为整个 A SIC 的一个单元组件,被 A SIC 的其他完全定制的单元模组所包围(见下图)。 Speedcore eFPGA 包括以下功能 : ·可编程内核逻辑阵列,具有客户自定义的功能 ·内核 I/O 环 · FPGA 配置单元( FCU ) ·配置存储器( CMEM ) ·用于调试和编程的接口 ·用于测试的接口( DFT ) 核心资源介绍 通过选择下列每种资源的数量,就可以定义一个定制 Speedcore eFPGA IP 的功能: ·逻辑 - 6 输入查找表( LUT ),加上集成的快速加法器 ·逻辑 RAM - 两种选择: ·用于 LRAM2k 的每个存储器单元的容量最多可达 2Kb ,其中包括与 MLP 紧耦合的存储器 ·用于 LRAM4k 的每个存储器单元的容量最多可达 4Kb · Block RAM - 两种选择: ·用于 BRAM20k 的每个存储器单元的容量最多可达 20Kb ·用于 BRAM72k 的每个存储器单元的容量最多可达 72Kb ,包括与 MLP 紧 耦合的存储器 · DSP64 - 每个单元模块有一个 18 x 27 乘法器、 64 位累加器和 27 位预加法器 · MLP - 机器学习处理器( MLP )模块,包含乘法器、加法器、累加器和紧耦合存储器(包括 BRAM72k 和 LRAM2k ) 交付与应用价值 由于 Achroni x 采用了根据客户需求来定制 GDS II 的商业模式,每个 Speedcore eFPGA 实例的资源模块的数量和组合都是基于客户需求来搭配提供。 Achron ix 的 Speedcore eFPGA IP 可用于台积电( TSMC )的 16FF+ 、 16FFC 、 12FFC 、 7nm 、 5nm 和 3nm 工艺技术节点,也可以移植到其他工艺节点上。 在 A SIC 或者 SoC 中嵌入 Speedcore eFPGA 将带来诸多好处,与一款独立的 FPGA 芯片相比, Speedcore eFPGA IP 提供了以下优点: · 降低功耗多达 75% ·节省 90% 的成本 ·延迟缩短到 1/100 ,同时带宽提高了 10 倍。 因此, Sp eedcore eFPGA 具有极高的应用价值。 开发与编程 Achronix 是唯一一家可以同时大批量生产并交付 eFPGA IP 和独立 FPGA 芯片的公司,而且它们都采用同一套 A CE 开发工具来支持。设计人员可以 100 %确信 Speedcore eFPGA IP 将会正常工作,因为它在 A chronix 的 S peedster 系列独立 FPGA 芯片中已得到了全面的验证,并且经过了大量的流片验证。 由于 S peedcore eFPGA IP 采用的是与 A chronix 的独立 F PGA 芯片和搭载 Achronix Speedster7t FPGA 芯片的 V ectorPath 加速卡相同的工具,开发人员可以先在这些独立 F PGA 芯片或者加速卡上完成设计,然后再移植到 S peedcore eFPGA 上。客户可以选择以下所列配置接口中的一项或多项组合来进行编程: · JTAG ·并行 CPU ( x1 、 x8 、 x16 、 x32 、 x128 数据宽度模式) ·串行闪存( 1 个或 4 个闪存器件) · 128 位 AXI 总线 总结与展望 Achronix 的 Speedcore eFPGA IP 保持了高端 F PGA 的性能,最高运行频率可达 750MHz ,典型的运行频率也可以达到 300MHz-500MHz ,可以为 A SIC 或者 S oC 提供高性能硬件加速,是诸多智能化应用和边缘计算的理想选择,因而被领先科技企业选择用于通信基础设备、网络加速、智能驾驶和金融科技等多种应用中。 从我们在 ICCAD 2023 上与客户的交流来看,一些领先的国内系统公司和芯片设计企业已经认识到 e FPGA 的优点与价值,并进一步在探讨与 A chronix 进行基于 e FPGA 的 c hiplet 等新的合作模式。因此,我们可以展望在未来几年中,集成了 S peedcore 等 eFPGA 的 A SIC 或者 S oC 将是智能化和高速网联等领域内 芯片设计企业的一条重要的创新之道。 联系本文作者,请发送邮件到:dawson.guo@achronix.com
  • 热度 19
    2015-3-20 10:39
    1393 次阅读|
    0 个评论
    日前,赛灵思公司(Xilinx)面向全可编程SoC和MPSoC推出了一款软件定义SoC的开发环境SDSoC。这款开发环境极大地简化了SoC的编程体验,让嵌入式控制领域的系统架构师和软件工程师可以利用C/C++来同时做算法和功能的开发,并且在基础的硬件平台搭建好之后,便可以自由发挥,不再需要去求助于硬件工程师。 自赛灵思公司全球总裁兼CEO Moshe Gavrielov提出All Programmable Imperative(全可编程势在必行)的行业趋势后,该公司便一直在引领这个趋势——首先是取代标准芯片和定制芯片,其次是进入更广阔的嵌入式应用蓝海。那么,怎么样才能让更多的人能够使用赛灵思的产品呢?赛灵思推出了SDx的战略。 赛灵思自2014年4月开始先后发布了三款面向软件和系统工程师的软件定义开发环境SDx(图1,“SD”是软件定义的意思)。首先是针对网络推出的SDnet(“软”定义网络)。它能够让厂商用行为模型级的描述,把通信系统迅速实现出来。其次是针对数据中心推出的SDAccel(软件定义加速器)。在数据中心里要解决性能和功耗的问题,有很多应用场景要通过X86加FPGA的加速处理能力来做加速算法,SDAccel可以协助软件工程师把创意快速实现到整个X86和FPGA的流程中。此次推出的针对嵌入式设计SoC应用的SDSoC(软件定义SoC)意义更大,因为嵌入式控制无处不在,很多系统的设计和创新都是基于SoC平台进行设计的。这款设计环境将能使软件工程师也能够做硬件工程师的工作,在整个行业内必将产生出更大的影响力。那么,SDSoC具体是个怎么样的开发环境呢?它又有什么样的技术可以实现这样的目标呢? 图1:SDx三大法宝将FPGA运用拓展到软件工程师人群。 【 分页导航 】 • 第1页: SDSoC:软件工程师开发SoC的福音 • 第2页: 软件工程师直接参与硬件设计 • 第3页: 提供类似ASSP编程体验的设计环境 • 第4页: 基于Eclipse IDE设计轻松上手 • 第5页: 平台开发人员专家级使用模型的意义 • 第6页: SDSoC早两年推出该有多好! • 第7页: 从演示看SDSoC给用户带来什么价值 《电子技术设计》网站版权所有,谢绝转载 SDSoC让嵌入式系统软件设计人员直接参与到硬件设计 “今天我们介绍的是SDSoC,为什么我们要做这个软件开发的环境呢?最主要是在我们的产品系列里有SoC产品,全可编程SoC。这些产品系列有一个共同特点——它们之中都有ARM处理器和FPGA可编程资源。它们是全部硬件、全部软件可编程的产品,在使用的过程中,可以面向很多不同应用的场景。传统上我们面向开发的对象是硬件工程师更多,我们想通过这个开发的环境,让做软件的人员可以直接参与到产品的设计,把软件的创意通过它来很快地实现,变成一个真实的产品。这就是为什么我们要做SDSoC开发环境的最主要的理由。”赛灵思全球销售与市场亚太地区副总裁杨飞先生首先解释说(图2)。 图2:赛灵思全球销售与市场亚太地区副总裁杨飞讲述设计SDSoC开发环境的初衷。 赛灵思除了在半导体芯片领域持续领先,在设计方法论上更是不断创新。该公司五年前打造的Vivado设计套件,让设计工程师可以把他们设计通过该套件在硬件层面实现出来。同时,其还把设计层次拉高,可以让整个抽象性提高。这样做的好处是除了让传统硬件工程师可以参与以外,软件工程师和所有熟悉这样环境的工程师也可以有效地把FPGA给利用起来。SDx开发环境的推出,也是赛灵思认为很重要的一个策略方向,因为器件如果没有相关的设计方法论,整个设计时间和生产力就达不到用户想要的效果。 SDSoC工具面向Zynq全可编程SoC和MPSoC两个产品类型(都是基于ARM核的产品),其中包括28nm的Zynq SoC和16nm的MPSoC。 【 分页导航 】 • 第1页: SDSoC:软件工程师开发SoC的福音 • 第2页: 软件工程师直接参与硬件设计 • 第3页: 提供类似ASSP编程体验的设计环境 • 第4页: 基于Eclipse IDE设计轻松上手 • 第5页: 平台开发人员专家级使用模型的意义 • 第6页: SDSoC早两年推出该有多好! • 第7页: 从演示看SDSoC给用户带来什么价值 《电子技术设计》网站版权所有,谢绝转载 SDSoC提供类似ASSP编程体验的C/C++设计环境 工程师在做嵌入式设计的时候,可以用不同的方法论来解决相关问题——可以用CPU解决,也可以用ASSP(专用标准产品)来解决。CPU是纯软件编程的技术,有很多人会写C代码,因此CPU利用起来是比较灵活的。标准的ASSP是基于ARM和硬加速内核设计的,没有CPU这么灵活,但是也比较简单、比较容易。全可编程SoC性能很高、功能很好,但是其局限性是对硬件描述语言有认识的工程师才能开发相关产品。因此,其以前的应用环境没有CPU的开发环境这么好。“我们这次做的工作就是克服业界出现的问题,把整个SoC和MPSoC产品的开发环境做成跟平时习惯开发ASSP的软件工程师所习惯的环境,这样可以拉齐跟它们开发的关系。”杨总指出。 图3是SDSoC开发环境中所包含的资源功能。它与习惯开发的ASSP完全相同,可以用C/C++来做算法和功能的开发。它提供的系统级的特性描述功能可以做一些描述,比如有哪些函数希望用硬件来做,有哪些是希望用处理器来做,其中可以设计一些加速用的C和C++函数。最后是一个全系统优化的编译器。 图3:SDSoC开发环境与软件工程师习惯开发的ASSP完全相同,可以用C/C++来做算法和功能的开发。 这样的流程与传统的Zynq开发流程不一样的是,它面对的对象不是传统的硬件工程师,而是面向的是系统架构师和软件工程师。软件工程师很多时候对底层的硬件(包括数据流怎么去连接)这个概念不太清楚,以前他们没法去做相关的工作。而通过这个自动化的开发环境,它可以面向软件类的工程师,让他们也可以有效地来开发相关产品。 【 分页导航 】 • 第1页: SDSoC:软件工程师开发SoC的福音 • 第2页: 软件工程师直接参与硬件设计 • 第3页: 提供类似ASSP编程体验的设计环境 • 第4页: 基于Eclipse IDE设计轻松上手 • 第5页: 平台开发人员专家级使用模型的意义 • 第6页: SDSoC早两年推出该有多好! • 第7页: 从演示看SDSoC给用户带来什么价值 《电子技术设计》网站版权所有,谢绝转载 SDSoC基于Eclipse IDE设计,让软件工程师轻松上手 SDSoC基于软件工程师所熟悉的Eclipse IDE开发环境设计(图4)。软件工程师所要做的工作只是要把设计通过C/C++编好,在Eclipse IDE环境里形成不同函数;然后右击函数,就会跳出菜单,从而便可选择是通过硬件还是通过软件来实现。此外,这些选项里所调用的资源还有很多是经过优化的库,这样,软件工程师的工作效率就会得到很大程度的提高。 图4:SDSoC基于Eclipse IDE开发环境设计,可以在硬件实现和软件实现之间进行切换。 在SDSoC开发环境里有和ASSP开发一致的环境。为了让用户了解做这个设计,架构怎样才是最优,哪些功能可以用硬件来实现,哪些功能可以用软件来实现,该开发环境可以帮助做系统级的特性描述(图5)。这样便能让用户知道哪些部分要耗费多少资源,需要多少周期才能把事情做完;整个系统的设计里,有哪些通道是最关键的通道,对性能的影响在什么地方;应该怎么样选择来做最优设计等。嵌入式开发人员基本上都很熟悉相关环境,因此这对他们来说没有一个需要重新学习的过程。同时,这样还能使用户能够很快通过这个流程,找到系统级最优的设计。 图5:系统级的特性描述可对系统性能进行快速估算和自动测量。 此外,在做完这些工作后,就可以进行全系统优化的编译工作(图6)。整个设计中可利用的资源包括CPU和用来做硬加速的FPGA。整个函数拆分起来,有一部分是ARM代码,一部分是硬件加速的函数。ARM代码与硬件加速器怎么样才能把其中的数据通道给打通呢?这个全系统优化的编译器里有自动连接的功能,可以让这些数据自动生成,令ARM和硬加速的部分连接在一起。 图6:全系统优化编译器可实现ARM代码与硬件加速器之间的自动连接。 “这个流程的好处是,有了硬件和软件的整体化、全系统化优化的过程,与纯软件的设计相比,整个性能可以提升一百倍以上。对一个做系统的工程师来说,他感兴趣的是怎么样可以在把系统性能提高的同时,还可以用最低的功耗把设计给做出来。”杨总表示。 【 分页导航 】 • 第1页: SDSoC:软件工程师开发SoC的福音 • 第2页: 软件工程师直接参与硬件设计 • 第3页: 提供类似ASSP编程体验的设计环境 • 第4页: 基于Eclipse IDE设计轻松上手 • 第5页: 平台开发人员专家级使用模型的意义 • 第6页: SDSoC早两年推出该有多好! • 第7页: 从演示看SDSoC给用户带来什么价值 《电子技术设计》网站版权所有,谢绝转载 平台开发人员专家级使用模型对性能和功耗实现最佳平衡 “我们还支持另外一个模式,叫做平台开发人员专家级使用模型(图7)。比如你要做一个挑战性很大的应用的时候,做视频的分析,视频流量很大,它里面系统的结构要怎么优化、怎么设计。我们可以让这个系统架构工程师来看看原始的数据,这里头的算法怎么去切割、怎么去复制,然后在处理器的部分和逻辑的部分,怎么可以把它给安排好,找到最佳的路径。找到之后,就可以直接把这个成果交给这个工程师,让这个工程师继续编程软件,那很快这个设计就可以做完。”杨总说道,“本来一个开发的工作需要十来个月的时间,可能现在三到六个月就可以做完,整个设计周期可以提高很多。这就是我们提供的专家级使用的模型,令开发人员可以更加优化、更加快速地完成开发的工作。” 图7:平台开发人员专家级使用模型可针对性能和功耗找到理想的系统架构;令开发人员可以更加快速地完成开发优化的工作。 一个例子是在做自动生成系统连接的时候,软件工程师并不知道其中数据是怎样流动的。处理器与逻辑之间可以通过ACP,也可以通过高性能带cache的、高性能不带cache的,或是通用接口的方式连接。它可以用软件,可以用DMA,可以用分散DMA,可以用处理器直接连接,也可以用FIFO的方式。用不同的资源来做,数据的移动速度是不一样的,当然速度越快越好,延时越小越好,因为这样系统的功能可以做到更高。SDSoC的工具就可以为软件工程师挑出一个最优的路径来走,这样他就不需要花时间来学习相关的工作,也不需要去计算这些报表,去决定怎么做。这是该工具可以帮助到他的地方,最重要的是可以缩短整个开发的流程。 为了加快开发的进度,SDSoC提供了很多库,包括赛灵思的库和其他第三方的库,有DSP、视频、定点、线性代数、BLAS、openCV的算法。用户不需要去做很多计算,就有很多现成的库可以使用。 SDSoC是一个综合的开发环境。接下来,赛灵思还将在该开发环境下,陆陆续续地提供一些针对某些特定应用场景的工具,即瞄准特定应用场景的库和支持。比如做视频、做图像、做软件无线电等相关应用的场景,赛灵思将会推出相关的配套元素。 【 分页导航 】 • 第1页: SDSoC:软件工程师开发SoC的福音 • 第2页: 软件工程师直接参与硬件设计 • 第3页: 提供类似ASSP编程体验的设计环境 • 第4页: 基于Eclipse IDE设计轻松上手 • 第5页: 平台开发人员专家级使用模型的意义 • 第6页: SDSoC早两年推出该有多好! • 第7页: 从演示看SDSoC给用户带来什么价值 《电子技术设计》网站版权所有,谢绝转载 SDSoC用户反馈:要早两年推出该有多好! 赛灵思SDSoC目前已有一些和客户合作的成功案例。赛灵思与ADI公司合作开发了一款Zynq SDR系统开发套件,通过SDSoC的开发环境,可以很快地把SDR平台的开发做出来(图8)。 图8:赛灵思与合作伙伴安富利、ADI开发的各种Zynq开发板,可令开发人员运用SDSoC和Vivado设计套件快速构建自己的定制平台。 一家做医疗和无人机等开发的公司Van Gogh Imaging,目前正在做3D计算机视觉的开发。ARM架构在智能性视觉方面优势很大,因为其中有算法和很高的数据带宽,通过硬加速可以做到很高性能的视频分析。有了SDSoC,在一个月之内就能把3D对象识别从概念变成现实的加速Zynq设计。 DAVE也是做嵌入式系统的公司。该公司利用SDSoC将Zynq SoC运用在一些医疗器械里,也是用很快的时间就把这些事情给做了出来。 “在国内推出SDSoC,很多客户反映,为什么两年前不推出来呢?以前需要一两年才能做好的事情,现在一两个月就可以做好。他们很期待这样的算法,可以令他们的生产力大幅提高。”杨总谈道。 【 分页导航 】 • 第1页: SDSoC:软件工程师开发SoC的福音 • 第2页: 软件工程师直接参与硬件设计 • 第3页: 提供类似ASSP编程体验的设计环境 • 第4页: 基于Eclipse IDE设计轻松上手 • 第5页: 平台开发人员专家级使用模型的意义 • 第6页: SDSoC早两年推出该有多好! • 第7页: 从演示看SDSoC给用户带来什么价值 《电子技术设计》网站版权所有,谢绝转载 从演示效果看SDSoC能够给用户带来什么价值 在介绍完SDSoC之后,让我们再来看下SDSoC的实际演示效果,了解一下这个工具是怎么用的,用了之后有什么好处,又会给客户带来什么价值? 赛灵思亚太地区Zynq业务拓展经理罗霖先生演示的例子是视频监控(图9)——对前后两人的图像分别做一次滤波;然后把这两幅图像相减,得到一个差分图像;再做一次中值滤波,合并输出。在整个画面上如果有运动物体的话,可以用红线把边缘勾勒出来。整个开发的例子是C代码和SDSoC开发工具。整个设计,包括优化多次迭代,在两个礼拜内就能完成;过去做完优化可能需要两个月的时间。因此,这样对大家的生产力是一个极大的提高。 图9:赛灵思亚太地区Zynq业务拓展经理罗霖先生演示视频监控的例子。通过对比可以看出,视频监控在采用硬件加速后可以做到实时效果。 SDSoC目前支持的主流操作系统有Linux、FreeRTOS和裸机三种,今后赛灵思还会继续增加操作系统列表。“过去如果你用Zynq,光是把linux弄到Zynq上就需要很长时间。现在不需要担心要驱动任何程序,在这一部分就节省了大量的时间,我们全给弄好了。”罗经理表示。 最后,在演示效果时,罗霖对着摄像头挥手,谈道:“如果我不动,我手上是没有这个红色的边缘;如果我手稍微动一下,我手运动的轮廓都会有红色的边缘出来。现在这是硬件演示效果,大家可以看到非常流畅,是实时的。 “下面来看一下软件的效果。软件特别卡,一秒钟大概可以做到还不到一帧,非常不流畅。而硬件可以做到每秒60帧,就是可以看到系统的性能通过我们的SDSoC工具可以完全释放出来,有上百倍性能的提升。同时,在开发效率方面,可能过去要用两个月做的事情,现在用两个星期就可以做完。这就是SDSoC给开发者带来的价值。我们提供给软件工程师一个他们非常熟悉、非常易用的开发工具,这样他们能从第一天就上手,可以做SDSoC的开发。同时,他不用管上面的硬件细节,他只专注于他本身的算法和核心技术的开发。这样对于他来说,可以充分释放他的想象力跟创造力,打造出非常差异化的产品。” 【 分页导航 】 • 第1页: SDSoC:软件工程师开发SoC的福音 • 第2页: 软件工程师直接参与硬件设计 • 第3页: 提供类似ASSP编程体验的设计环境 • 第4页: 基于Eclipse IDE设计轻松上手 • 第5页: 平台开发人员专家级使用模型的意义 • 第6页: SDSoC早两年推出该有多好! • 第7页: 从演示看SDSoC给用户带来什么价值 《电子技术设计》网站版权所有,谢绝转载
  • 热度 30
    2011-4-22 13:35
    3872 次阅读|
    13 个评论
      在特权同学的博文《别忘了随手关上“门”》中卖了个关子,现在就要来讲讲用硬件做消抖的方法,当然其实这个任务并没有太多新意,也没有太多“技术含量”可言,但是在某些应用场合,这个硬消抖却对系统性能的提升有着非常大的助益。     我们先来了解一下一般的软件消抖(本文主要以按键的消抖为例)方式。有如下一段序:          If(value == 0)    //一旦检测到键值          {                    Delay();    //延时20ms,有效滤除按键的抖动                    If(value == 0)    //再次确定键值是否有效                    {          ……         //执行相应处理 } }   这段软消抖程序从机理上看不会有什么问题,通常在软件程序不太“繁忙”的情况下也能够很好的消抖并做相应处理。也许value值的产生也是系统的一个中断(如PIO边沿检测产生的中断),通常系统中也不会就此一个中断,那么在多个中断共存的情况下,该程序的消抖延时就很可能成为系统性能提升的一个瓶颈。为什么这么说呢?举个简单的实例。在这个实例中,系统中除了按键检测外,还有一个中断A以及相应的中断处理函数。在主函数中,我们通常会这么编写程序:          Void main(void)          {                    If(中断A标志位有效)                    {                             Clear_A;  //清除A标志位                             Processing_A();        //中断A处理函数 }                    If(value == 0)    //一旦检测到键值                    {                             Delay();    //延时20ms,有效滤除按键的抖动                             If(value == 0)    //再次确定键值是否有效                             {                    ……         //执行相应处理 } } }   假设这个系统两次产生中断A的最小间隔时间是5ms,A中断处理函数需要1ms,按键中断处理需要1ms。那么,系统中断A有可能出现产生了中断却无法得到相应。在下面的状况中就可能出现如图1所示的问题。 图1   在这种情况下,中断A产生若干次后却只有最后一次能够得到响应处理,这是由于软件消抖延时影响了系统响应的实时性。当然了,如果非得用软件来解决这个问题,也许办法还是有的(不过特权同学没有深究,也不是很精于此道,欢迎软件高手们指点;当时遇到类似问题时朋友提过用状态机的思想来做消抖,不过特权同学潜意识里感觉状态机处理消抖可能会让整个软件编程思路混乱,所以也没有深入去思考过)。但是既然特权同学的系统是软硬协同架构,那么软硬都是可以互补的,也就是说有些工作的分工是可以重新调配的,因此就提出了用硬件来减轻软件工作量,从而提升软件的实时性。     硬件分担软件的任务我们通常称之为“硬件加速”,这个实例中的硬消抖替代软消抖归根结底也是“硬件加速”。在按键信号输入到软件系统前用逻辑对其进行一下简单的处理即可实现所谓的“硬件消抖”,verilog代码如下: //----------------------------------------------------------------------          //对输入信号inpio硬件滤波,每20ms采样一次当前值 reg cnt;  //20ms计数器   always @(posedge clk_25m or negedge rst_n)          if(!rst_n) cnt = 19'd0;          else if(cnt 19’d500000) cnt = cnt+1'b1;          else cnt = 19’d0;   reg inpior;                   //当前inpio信号锁存,每20ms锁存一拍   always @(posedge clk_25m or negedge rst_n)          if(!rst_n)  inpior = 2'b11;          else if(cnt == 19'h7ffff) inpior = {inpior ,inpior};   wire inpio_swin =inpior | inpior ;     //前后20ms两次锁存值都为0时才为0                  原先直接给软件处理的信号是inpio,它的抖动必须用delay()来滤除。而用硬件逻辑处理后得到的inpio_swin信号则是消抖处理过的信号。软件程序就不再需要delay()来滤波了。软件程序简化可以如下:          Void main(void)          {                    If(中断A标志位有效)                    {                             Clear_A;  //清除A标志位                             Processing_A();        //中断A处理函数 }                    If(value == 0)    //一旦检测到键值                    {                             If(value == 0)    //再次确定键值是否有效                             {                    ……         //执行相应处理 } } }   重新回到图1所示的状况,其实已经不再会出现中断A被“丢帧”的尴尬了。这就是“硬件加速”的效果,虽然这只是很简单的一个技巧,但也不禁让特权同学感慨:有逻辑(资源)真好!
相关资源
  • 所需E币: 1
    时间: 2023-4-15 13:39
    大小: 393.61KB
    上传者: 张红川
    基于硬件加速的快速傅里叶变换.pdf
  • 所需E币: 5
    时间: 2023-2-21 20:28
    大小: 2.85MB
    上传者: ZHUANG
    基于FPGA的RNN硬件加速架构.
  • 所需E币: 2
    时间: 2022-3-4 10:42
    大小: 174.3KB
    上传者: ZHUANG
    机器人控制器片上系统的硬件加速
  • 所需E币: 3
    时间: 2022-1-8 09:14
    大小: 1.39MB
    上传者: ZHUANG
    基于FPGA的机器学习硬件加速研究进展
  • 所需E币: 1
    时间: 2022-1-3 23:18
    大小: 6.23MB
    上传者: czd886
    基于FPGA的油棕检测和硬件加速设计及实现
  • 所需E币: 1
    时间: 2021-4-8 10:15
    大小: 1.84MB
    上传者: czd886
    基于多核DSP的深度学习算法硬件加速技术研究
  • 所需E币: 0
    时间: 2021-3-11 22:56
    大小: 1.05MB
    上传者: ZHUANG
    MCU的DSP硬件加速芯片整合技术
  • 所需E币: 2
    时间: 2020-12-9 14:49
    大小: 66.27MB
    上传者: gwb982_724325667
    FPGA开发中HLS加速实现
  • 所需E币: 3
    时间: 2019-12-26 12:44
    大小: 1.47MB
    上传者: 2iot
    WilsonResearchGroup公司于2012年进行的功能验证研究表明,在ASIC和FPGA开发过程中,一半以上的时间花在了设计验证上,而这是有原因的。很多设计缺陷如果不能在早期阶段进行隔离和修复,后期会更难以解决,成本也会成倍增加。因此,确保验证过程完整非常重要,在流片之前尽可能多地验证各种场景。这一点则与范围更大的半导体生态系统技术进步形成鲜明对比,后者是尽量缩短芯片面市的时间。图1显示了验证过程中工程师在各种任务上花费的平均时间。……
  • 所需E币: 5
    时间: 2019-12-25 12:48
    大小: 972.38KB
    上传者: 238112554_qq
    在嵌入式设备上运行高性能JavaTECHNOLOGYIN-DEPTH在嵌入式设备上运行高性能JavaJazelleDBX――来自ARM的Java加速技术应用广泛的移动Java的Java应用需要更强的图形处理能力,以作者:Java已经在各个领域得到了广泛的及一个强大的Java虚拟机。ARM中国应用,尤其是无线移动领域,全球超过100个移动运营商已经推出了Java下载服说到手持设备上的Java性能,我们摘要:务。Java也正成为其它嵌入式设备的支持不得不提一下Java性能评测。理论上,在过去几年里,无线手持设备标准,比如机顶盒。Java应用的快速增长任何Java程序都能在支持Java的设备上市场对Java产生了巨大的需求增源于以下几点:运行,Java评测程序当然也不例外。许长,主要的增长力量来自于移动游1Java的设计初衷“一次编译,到处多网站提供了各种各样的Java评测程序,戏。广大消费者,网络运营商,服……
  • 所需E币: 4
    时间: 2020-1-4 23:15
    大小: 122.15KB
    上传者: 二不过三
    在软件无线电调制解调器功能中使用硬件加速单元……
  • 所需E币: 3
    时间: 2019-6-10 22:06
    大小: 1.02MB
    上传者: royalark_912907664
    针对一种基于PCIExpress和SerialRapidIO混合式互连架构的硬件加速系统,介绍了其中基于FPGA实现的低延迟、多通道、跨平台的PCIe-SRIO桥接方法。介绍了该PCIe-SRIO桥的逻辑架构,详细叙述了数据调度方法,给出了系统实现成果以及性能测试结果。该成果解决了标准计算机与硬件加速部件的高速接口问题,比同功能的专用ASIC器件具有更好的适应性以及扩展性。