分布式结构的FPGA实现

分布式算法是一种专门针对于乘加运算的运算方法,与传统的算法相比,分布式算法可以极大地减少硬件规模,很容易实现流水线处理提高硬件的执行速度,也就是提高硬件系统运算速度,而这一点正是很多系统极力追求的目标。正如我们大家所知的那样,在FPGA设计中,通常情况下速度与硬件资源是不可以兼得的,分布式算法不仅可以节省硬件资源又可以提高运算速度。要实现这一目标,自然与其他算法有着本质的区别。

所谓分布式算法,就是指在完成乘加功能时通过将各输入数据每一对应位产生的运算结果预先进行相加形成相应的部分积,在对各部分积进行累加形成最终结果;而传统的算法则是等到所有乘积结果产生之后再进行相加,从而完成整个运算。但是分布式算法应用有一个限定的条件在于,每个乘法运算中必须有一个乘数为常数,这一要求在FIR滤波器中比较吻合。估计大家看到这里,仍然是云里雾里的,就像我刚接触时一样。

如何来理解分布式算法呢?这要从最基本的固定系数乘法运算说起。对于一个乘数是常数的运算,很容易想到用存储器来完成。存储器的运算速度比乘法器快得多,且又可以减少资源。比如 10xA 及100xA 、1000xA(A为3bit的补码数据)则可以构造两个存储器,其中A为存储器的寻地址信号,存储器的内容则为对应的乘法运算结果(用10进制来表示)

表1-a两个常系数乘法运算的存储器实现

输入信号(A)存储地址 10XA运算结果/存储内容 100xA运算结果/存储内容 1000xA运算结果/存储内容
000 0 0 0
001 10 100 1000
010 20 200 2000
011 30 300 3000
100 -40 -400 -4000
101 -30 -300 -3000
110 -20 -200 -2000
111 -10 -100 -1000

因此,乘数中一个为常数的乘法运算可采用查找表来实现,而FPGA的结构本身就是基于查找表接否(LUT)构建的。因此FPGA十分适合查找表来实现常系数乘法运算。FPGA分布式算法的基本思想即采用查找方法实现的结构形式。先来举个4个乘加运算的实例。如 10xA+20xB+30xC+40xD 其中A、B、C、D均是4位二进制补码数据。如果分别采用4个深度为16的存储器来实现4个乘法运算,再将运行结果相加得出输出,显然不会降低多少硬件资源。分布式算法高明之处在于,仍然只采用一个存储器即可实现乘加运算我们将运算形式进行逐位分解:

10xA+20xB+30xC+40xD=  10(-2^3A(3)+2^2A(2)+2A(1)+A(0))

+20(-2^3B(3)+2^2B(2)+2B(1)+B(0))

+30(-2^3C(3)+2^2C(2)+2C(1)+C(0))

+40(-2^3D(3)+2^2D(2)+2D(1)+D(0))

=-2^3(10A(3)+20B(3)+30C(3)+40D(3))

+2^2(10A(2)+20B(2)+30C(2)+40D(2))

+2(10A(1)+20B(1)+30C(1)+40D(1))

+(10A(0)+20B(0)+30C(0)+40D(0))

仔细分析,如果将A(3)B(3)C(3)D(3)组成的4位地址输入信号对应的存储器的输入内容,与将A(2)B(2)C(2)D(2)组成的4位地址输入信号的存储器内容只差2的整数倍次幂倍,在FPGA中可以通过位移来实现。对于上面的例子可以只构造一个深度为16的存储器查找表,通过4次查找表运算,3次移位运算以及一次4输入加法运算,即可完成乘加运算。因此对于长度为N的乘加运算,只需构造一个深度为N的存储器查找表,通过M(M为变量的数据长度)次查找运算、M-1次移位运算及1次M输入的加法运算即可完成乘加运算。这种运算结构极易实现流水线结构,且运算速度受限于加法与查找表的速度,与运算的数据长度无关,从而实现完美的“鱼与熊掌兼得”。

时间: 2024-10-24 08:26:34

分布式结构的FPGA实现的相关文章

fir分布式滤波的fpga实现

此设计的结构包括:1.移位寄存器链,n阶的有n-1个寄存器. 2.第一次累加部分.由fir滤波系数对称可得到对称的寄存器相加可以减小电路规模,所以第一次累加很有必要. 3,锁存并移位部分.此部分是为了通过移出lut地址,通过给出lut地址即可得到lut输出. 4,lut部分,该部分实现的主要功能是输出不同地址情况下的结果. 5,二次累加部分.该部分是将每一位卷积得到的结果加权累加,需要注意的是,由于是采用补码运算,最高位加权后应该是被减去而不是被加上. 分布式滤波器的原理如下 查找表的实现可参考

Memcached的分布式结构和并发机制

Memcached是基于CS结构的,并非是基于BS结构,因为他和apache没有任何的关系,主要是依赖于php的.是依靠libevent来处理并发的. Memcached是利用内置内存的方式维护数据,从而提高数据的处理速度.而且内存大大小可以进行配置,如果内存溢出,则按照时间的顺序优先保存,旧的东西要么缓存掉,要么删除掉.即使用RUL算法. 测试分布式如下: Memcached.exe -p 新的端口号(记住,不要关闭cmd) 这个时候,我们的Memcached就有两个端口号了,就意味着存在着两

素有高冷之称,曾被微软放言取代冯氏结构的FPGA,被阿里云玩“活”了

摘要: 对于专业人士来说,FPGA (现场可编程门阵列)并不陌生,由于其硬件并行加速能力和可编程特性,在传统通信领域和IC设计领域可谓是大放异彩,一直都被广泛使用.但是,大部分人还不是太了解它. 对于专业人士来说,FPGA (现场可编程门阵列)并不陌生,由于其硬件并行加速能力和可编程特性,在传统通信领域和IC设计领域可谓是大放异彩,一直都被广泛使用.但是,大部分人还不是太了解它. 开发门槛过高,硬件加速算法的发布和部署保护要求非常高,FPGA的使用一直没有走入平常百姓家.也就导致FPGA的计算潜

单机、集群和分布式(微服务结构)

一.单机 单机就是所有的业务全部写在一个项目中,部署服务到一台服务器上,所有的请求业务都由这台服务器处理.显然,当业务增长到一定程度的时候,服务器的硬件会无法满足业务需求.自然而然地想到一个程序不行就部署多个喽, 这就是集群. 二. 集群 集群就是单机的多实例,在多个服务器上部署多个服务,每个服务就是一个节点,部署N个节点,处理业务的能力就提升 N倍(大约),这些节点的集合就叫做集群. 负载均衡:协调集群里的每个节点均衡地接受业务请求.通俗的讲就是服务A和服务B相同时间段内处理的同类业务请求数量

FIR滤波器的FPGA实现方法

FIR滤波器的FPGA实现方法 2011-02-21 23:34:15   来源:互联网    非常重要的基本单元.近年来,由于FPGA具有高速度.高集成度和高可靠性的特点而得到快速发展.随着现代数字通信系统对于高精度.高处理速度的需求,越来越多的研究转向采用FPGA来实现FIR滤波器.而对于FIR滤波器要充分考虑其资源与运行速度的合理优化,各种不同的FIR滤波结构各具优缺点,在了解各种结构优缺点后才能更好地选择合适结构来实现FIR滤波. 1 FIR数字滤波器    FIR数字滤波器由有限个采样

彩讯重磅推出6000系列处理器--成功将集中式和分布式两种处理器有机融为一体

大屏拼接系统作为一种高端显示系统,目前被广泛应用于社会各行各业,每个行业对大屏的显示方式及实现功能的要求并不一致,因此大屏显示系统就需要采用不同的图像拼接处理器来满足这些不同要求.处理器和拼接屏.控制系统有机组成了大屏显示系统.而大屏显示系统功能的最终差异则越来越多地取决于图像处理控制器系统(包括硬件和软件)的性能.    早在2000年北京彩讯科技股份有限公司(TRIOLION)成立之初,公司的三位原始股东就研制出了国内第一台PC架构的拼接控制器,从那时起彩讯就成为了以大屏幕拼接控制器的研发生

CPLD VS FPGA

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL.GAL.CPLD等可编程器件的基础上进一步发展的产物.它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点.目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简 单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流.这些可编辑元件可以被用来实现一些基本的逻辑门

FPGA的嵌入式RAM

FPGA中的嵌入式RAM分为两种:专用的BRAM和分布是RAM(用LUT实现的).这两种RAM又可以配置成单端口和双端口的RAM和ROM.双端口RAM又可以根据读写地址是否在同一块分为Double Port 和Two Port.读取方式也有多种方式,包括:Read first, Write first, No change 等. Block RAM和分布式RAM 在FPGA实现RAM时,可在专用Block RAM和分布式RAM中实现.这两者的选择不仅会影响资源选择,同时还会严重地影响性能和功耗.

分布式和集群的区别

在IDF05(Intel Developer Forum 2005)上,Intel首席执行官Craig Barrett就取消4GHz芯片计划一事,半开玩笑当众单膝下跪致歉,给广大软件开发者一个明显的信号,单纯依靠垂直提升硬件性能来提高系统性能的时代已结束,分布式开发的时代实际上早已悄悄地成为了时代的主流,吵得很热的云计算实际上只是包装在分布式之外的商业概念,很多开发者(包括我)都想加入研究云计算这个潮流,在google上通过"云计算"这个关键词来查询资料,查到的都是些概念性或商业性的宣