运用SAD算法降低FPGA资源利用率

发布者:和谐相处最新更新时间:2011-08-04 关键字:SAD  算法  FPGA  ISELUT 手机看文章 扫描二维码
随时随地手机看文章
    基于FPGA的设计,需要仔细检查设计所占用的面积以及实施后的时序性能,以确保设计适合目标器件,并满足其时序或吞吐力要求。在基于FPGA的商用设计中,设计师通常会将查找表(LUT)的资源占用率上限设置为80%左右,以便为未来升级和功能改进留有资源,并可让时序收敛更容易。余下约20%的空闲LUT留下了空余的布线资源,有助于满足严格的时序约束。
 
    在设计中,FPGA结构里嵌入的逻辑越多,占用的布线资源就会越多。综合工具或许能将更多逻辑成功地映射到LUT和其它资源,但很可能无法在二者之间布线。因为现有的逻辑已经显著提高了互连使用率,已经没有端到端路径来路由更多连接的信号。即使可能存在布线空间,布线器也无法对其建立端到端连接。因此,虽然有可用的LUT资源,但设计受到了“互连限制”,所以有可能无法进行扩展。
 
     减少设计面积还具有经济意义。在符合应用要求的情况下,FPGA器件越小,设计和生产成本则越低。当然,如果有以太网模块、嵌入式处理器或收发器等特殊需求,就需要选择能通过硬IP或软IP支持这些模块的FPGA。不过在设计中,减少其它部件的使用面积,仍有助于从支持这类特殊模块的FPGA系列中进行选择。
 
资源共享
 
     资源共享是一种在保持功能性的同时减少面积或资源占用率的传统方法。其中包括通过将一个以上的运算映射到一个运算器,实现算术运算器(如加法器、乘法器等)的共享。例如,共享后3个加法器可执行6个而不是3个加运算,使用的加法器数量减少了一半,从而减少了资源占用率。通过Xilinx ISE软件,可以在合成属性对话框中开启相应开关(resource sharing)后进行资源共享。当在一个if-else程序块(图1)或case-endcase程序块(图2)中描述互斥的任务后,这些工具能检测并实施资源共享。
 
图1:if-else程序块
 
图2:case-endcase程序块
 
      如图所示,这些任务都是互斥的。因此,启用资源共享后,8个加运算可以共享两个加号。这类资源共享依赖于鉴别寄存器传输级(RTL)设计中可能存在的互斥任务。然而,如果不存在互斥任务,资源应该如何共享?这样做又有何利弊?为了回答这个问题,下面将从更高层次的抽象概念对资源共享进行深入研究。
 
比RTL更胜一筹

      “更高层次的抽象概念”是指比RTL更高级别的设计描述,可在RTL准备好前对要实施的应用进行分析。如果可以通过分析应用来了解其内在并行性,则在RTL设计中也可以这样做。此外,对应用的数据流程图进行分析有助于设计资源共享的实施。
 
     数据流程图能提供关于应用数据流的信息。数据从一个运算流向另一个运算,因此在运算之间可能存在着数据依赖关系。不相互依赖的运算可以并行执行。不过并行执行几乎总是造成很高的资源占用率,而目标是降低资源占用率,所以暂不讨论并行执行这种模式。
 
     下面将以绝对差值和(SAD)算法为例,介绍如何从比RTL更高层次的抽象层分析资源共享,让资源占用率比依赖RTL设计中的互斥任务的方法更低。
 
      SAD是MPEG-4解码器动作估计部分中的一种重要算法,也能用于物体识别。在这种以像素为基础的方法中,图像区块中每个像素的值都与另一幅图像中相应像素的值相减,以确定该图像的哪些部分从一帧移到了另一帧。如果图像区块大小为4x4,则最后会将全部16个绝对差值相加。在开源xvid解码器的sad.c文件末尾有代码示例。
 
      图3显示了用这一算法处理一个4x4图像区块时的数据流图(DFG)。这些减法运算可以并行,因为其中的减法运算不依赖于其它任何减法运算。但由于目的在于降低资源占用率,所以并不采用并行执行模式。而是采用一种称为基于扩展兼容路径(ECPB)硬件绑定的资源分配和绑定算法。
 
图3:SAD算法的数据流图
 
    资源的分配和绑定主要是指为DFG中的运算分配加号、乘号等资源,然后将这些资源绑定到运算,以便降低器件的资源占用率、提高最大时钟频率,或同时实现两者。原则是在最终设计符合功能限制的前提下缩小面积。此算法可以检测已调度的DFG(即其运算已在不同步骤或时钟周期中进行了调度)中各运算间流程的依存关系,并分析出运算内部(intra-operation)流程的依存关系。
 
      此算法将可并行的运算调度在同一时间步骤中,并将需要依赖于其它运算数据的运算调度到不同的时间步骤中。它为已调度DFG中的每种运算都建立了一个加权的有序相容图(WOCG)。因此,减法运算有一个WOCG,加法运算则有另外一个WOCG。这种方法使用了加权关系Wij =1+α×Fij +β×Nij +y ×Rij来为WOCG中的各边(edges)分配权重。在这里,Wij即同类型的i和j运算之间的权重值。Fij是流程依存关系的权重值,而Nij是运算i和j之间的共模输入数量。如果运算i和j的输出结果可以存入同一个寄存器,则Rji的值为1,否则即为0。在本例中,将调整参数数α、β和γ的值分别设为1、1和2。
 
      接下来的步骤是用最长路径算法找出WOCG中使用的最长路径。该最长路径中的全部运算都被映射到同一运算器。将绑定运算从WOCG中移除后,重复最长路径和映射流程,直到处理完所有WOCG。由于这种算法会将多个运算映射到同一资源或运算器,所以运算器的容量相当大,足以满足最大规模的运算。在实施SAD方法的例子中,8位数据(灰度图像)处理了全部减法运算,因此,减法运算器的输入宽度是8位。我们将负责迭代计算SAD和的累加运算器位宽设定为23位和8位。
 
      图4显示了实施的SAD算法的数据路径。在这个设计中只使用了一个减法器和一个加法器/累加器。各个运算之间有着非常多的资源共享。如果直接在RTL行为层描述设计,这种资源共享将不可能实现,因为SAD算法中不存在互斥的任务。生成这个数据路径后,可用加法器、减法器和乘法器模块分层实施设计。这一包含模块实例化的实施方法比行为化的方法结构更为明晰,并且与后者的数据路径非常相似。
 
图4:采用SAD算法的数据路径
 
    在以数据为主导的大型应用中,在更高层次进行此类预处理有助于降低资源占用率。此外,这种方法也很容易实现自动化。
 
    为了比较ECPB算法生成的数据路径获得的物理综合结果,我们还进行了一次完全并行的实施,两次与图4中的数据路径相同的实施。后两次是无层次的行为设计,最终RTL描述没有分层,包含引起复用的“强制”互斥任务。“强制”是指实施与图4中相同的数据路径,但采用了包含互斥任务的行为描述。其中一种设计具有if-else结构,另一种具有case-endcase结构。表1展示了使用Xilinx ISE 12.2(M.63C)软件默认设置、以Virtex-4XC4VFX140-11FF1517为目标器件,且没有时间限制的情况下获得的后时序(post-place-and-route)结果。内部寄存器也进行了相应的初始化,所有实施过程中都没有重置。
 
    在这个表格中,RS和NRS分别表示在Xilinx ISE已启用或禁用资源共享的情况。设计方案I和II是因为不同的综合工具可以从不同格式的HDL代码(if-else、case-end-case)中推论出不同的复用类型。时钟周期没有考虑抖动的情况,所以应该根据时钟源规范降低一定数量。同时,任何方案都未使用预处理寄存器进行输入。
 
资源节省
 
     如表所示, LUT消耗显著降低,最高可达56%,最少也有20%。不过,资源共享与完全并行的实施方法不同,后者的数据样本大体上在每个时钟周期都可用,而资源共享使用数据样本处理的过程会有一些限制。由于资源被共享,只有在前一份数据样本部分或完全处理后,才能处理新的数据样本。在ECPB实施中,新的P和R系列值至少要在16个时钟周期后才能使用。
 
     虽然这一技术不是任何地方都适用,但它非常适合运用在类似采样率(sample rate)的应用中。例如,ECPB设计能够轻松地在1.016毫秒内处理一个尺寸为720x576的DV-PAL帧,而不会对25帧/秒的PAL帧速率产生任何影响。
 
          表1:结果对比(RS和NRS分别表示已启用或禁用资源共享的情况)
关键字:SAD  算法  FPGA  ISELUT 引用地址:运用SAD算法降低FPGA资源利用率

上一篇:FPGA发展策略和新方案盘点
下一篇:利用FPGA平台架构提升信息娱乐系统设计灵活性

推荐阅读最新更新时间:2024-05-02 21:31

专注于IP内核开发,印度成为Xilinx全球研发中心
Xilinx公司在海德拉巴的中心将成为其全球研发中心。直到目前为止,印度中心一直专注于开发IP内核。这个中心已经开发了大约60个内核,其中的许多内核都基于65nm工艺技术。 这个中心将进行软件、系统和应用开发,并配备专注于各个领域的团队。系统和应用中心将专注于针对为消费电子、电信和视频市场开发产品的Xilinx客户的特定领域平台。软件中心将致力于EDA工具和算法开发、验证和FPGA基准。 Xilinx公司最初通过与软件和系统开发公司CMC公司(现在的TCS)合作将工程设计业务外包到印度。CMC是一家大约一年前通过重组而成立的Xilinx India Technology Services公司的独立子公司。该公司目前雇佣的工程师
[焦点新闻]
紫光同创与国微思尔芯战略合作,加速国产FPGA产业发展!
近日,深圳市紫光同创电子有限公司(以下简称“紫光同创”)与思尔芯(上海)信息科技有限公司(以下简称“国微思尔芯”)正式签署战略合作协议,加速国产FPGA产业化发展! 紫光同创是中国 FPGA 领导厂商,专业从事可编程逻辑器件(FPGA、CPLD 等)研发与生产销售,致力于为客户提供完善的、具有自主知识产权的可编程逻辑器件平台和系统解决方案,拥有高中低端全系列产品,覆盖通信、网络安全、工业控制、视频监控、汽车电子、消费电子、数据中心等应用领域。 国微思尔芯是业内领先的 FPGA 快速原型验证解决方案提供商,十多年来一直专注于集成电路电子设计自动化 (“EDA”)解决方案的高科技公司。国微思尔芯作为上海市重点 EDA 企业,其业务主要
[手机便携]
基于AVR和FPGA高精度数字式移相发生器的设计
1引 言   语音编码算法利用语音信号的冗余信息及某些人耳不敏感的信息,可以在低比特率上获得较高质量的重建语音,压缩编码一直是通信中的关键技术。语音信号研究者们一直在寻求一种在保持语音质量不显著下降的情况下使语音信号的编码比特率最小的方法,特别地,低比特率语音编码体制(比特率在4.8 kb/s以下)因其广泛的需求而得到研究者的重视。   语音编码器的性能常常用比特率、延时、复杂度和质量4个属性来进行衡量,因此,在分析语音编码器的性能时,主要应该考虑这些属性。值得注意的是,这些属性之间不是孤立的,而是相互紧密联系的,例如,低比特率的编码器一般比高比特率的编码器有更大的延时、更高的算法复杂度和较低的语音质量。因此在对各种编码算法进
[单片机]
基于AVR和<font color='red'>FPGA</font>高精度数字式移相发生器的设计
LabVIEW、多核技术及FPGA技术如何改变自动测试
编辑笔记:Eric Starkloff,美国国家仪器的模块化仪器和仪器控制产品营销总监。他将和我们一起讨论影响仪器技术和自动测试的一些变化,以及 NI 的 LabVIEW ,多核处理器技术和现场可编程逻辑门阵列( FPGA )技术如何推动下一代测试技术的产生。 问题: 在最近这几年里,仪器技术和自动化测试领域发生了什么样的变化? Starkloff回答: 我们现在正将处于软件定义的世界里。我们每天使用的设备如智能手机,机顶盒,甚至汽车,这些都是建立在嵌入式软件系统发展的基础之上。对于测试工程师们来说,在开发时间和预算减少的情况下对这些复杂的设备进行测试给他们带来了挑战。现在,测试管理人员和工程师们利用模块化仪器,软件定义体
[测试测量]
Tensilica和Tallika共同发布安全SoC FPGA平台
美国加州SANTA CLARA 2007年9月20日讯 –Tensilica公司和Tallika公司日前共同发布基于Tensilica公司Xtensa处理器IP核的可配置安全SoC FPGA/ASIC平台。该完全经过验证和硅验证的硬件/软件平台对于任意一个需要完整RSA实现方案(包括加密、解密、密钥对生成加速)和/或集成了硬件安全功能的SoC设计团队而言皆是理想选择。 Tallika安全解决方案包括一颗Tensilica带有32位AHB/APB骨干总线的Xtensa处理器IP核以及Tallika公司基于链表结构的DMA控制器,后者集成了其安全IP核模块 – AHB总线上AES/TDES/SHA/MD5和APB总线上2048位自然求
[焦点新闻]
技术文章—FPGA器件的负载点解决方案
描述电源系统的需求很容易,执行这些需求却更具挑战性。只要它比上一代产品更小、更可靠、更有效且成本更低,那么设计经理、营销团队和用户就会很高兴。FPGA等现代半导体器件使这项具有挑战性的任务变得更加困难,它们需要以大电流提供多个容限严格的电压轨,并涉及到时序等其他复杂问题。 在这篇技术文章中,Aimtec公司将研究现代电源架构如何帮助解决这些挑战,并讨论如何选择电源模块。本文还将考虑设计与购买这些模块化解决方案哪种更好。 现代电源架构及向中间总线的过渡 在早期的系统中,大多数半导体采用5V供电,电源通常只是一个单元,有时带有多个电压轨,以便适应多个模拟器件,并通过布线将电能分配到系统各处。可靠性至关重要的系统有时会以冗余
[嵌入式]
技术文章—<font color='red'>FPGA</font>器件的负载点解决方案
自动驾驶算法谁家强?零跑上汽并列第一
目前,学术圈还是用“打榜”来对 自动驾驶 算法评分。所谓“打榜”就是在某一数据集上利用其训练数据集来测试算法的优劣,目前自动驾驶圈内最常用的打榜数据集是安波福Aptiv旗下的nuScenes。严格意义上的自动驾驶算法评分对比几乎是不可能的,单独对比算法不够公允,此外还必须考虑算法的效率和落地可行性。训练数据集的数据结构也会影响算法的发挥。同时由于深度学习的不可解释性,在nuScenes数据集上表现好不代表在其他数据集也会表现好,也许会表现得很差,同样道理在nuScenes数据集上表现不好不代表在其他数据集也表现不好。当然 算力 大小无关算法的准确度。 nuScenes数据集的任务包括六大类,分别是3D目标检测detection
[汽车电子]
自动驾驶<font color='red'>算法</font>谁家强?零跑上汽并列第一
ARM、DSP、FPGA的技术特点和区别有哪些
ARM、DSP、FPGA与什么区别?各自有什么特点?这是一个很基础的问题,本文对ARM、DSP、FPGA的各自特点和技术进行了分析。 ARM(Advanced RISC Machines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软 件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四 个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前ARM在手持设备 市场占有90以上的份额,可以有效地缩短应用程序开发与测试
[单片机]
小广播
热门活动
换一批
更多
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved