广告

【博客大赛】脉动阵列的设计

2013-12-7 16:50 483 0 分类: FPGA/CPLD

一:定义

脉动阵列:数据流同步流过相邻的二维阵列单元的处理器结构,一般不同方向流过不同数据。如下图:

20131207164700863001.jpg

20131207164706680002.jpg

二维不同数据在同一时钟下依次输入每个处理单元,而后完成乘法并存在其寄存器中。

二:举例

20131207164711660003.jpg

20131207164716333004.jpg

20131207164722430005.jpg

20131207164727239006.jpg

20131207164733198007.jpg

20131207164738276008.jpg

20131207164745175009.jpg

20131207164750850010.jpg

20131207164754450011.jpg

三:设计

结构:

20131207164801580012.jpg

单个PE的代码

module pe(clk, reset, coeff, in_x, in_y, out_x, out_y);

parameter size = 8;

input               clk, reset;

input     [size-1:0]          in_x, coeff;

input     [size+size-1:0]  in_y;

output   [size-1:0]          out_x;

output   [size+size-1:0]  out_y;

reg        [size+size-1:0]  out_y;

reg        [size-1:0]           out_x;

always@(posedge clk)

 begin

   if(reset) begin

     out_x <= 0;

     out_y <= 0;

     end

   else begin

     out_y <= in_y + (in_x * coeff);

     out_x <= in_x;

     end

 end

endmodule

 

20131207164807811013.gif

四个PE,其余类推

//***** main ****************************

module systolic(clk, reset, input_x, output_y);

parameter   size = 8;

input   clk, reset;

input   [size-1:0]          input_x;

output [size+size-1:0]  output_y;

wire    [size-1:0]           pe0_x, pe1_x, pe2_x, pe3_x;       

wire    [size+size-1:0]  pe1_y, pe2_y, pe3_y;

wire   [size-1:0]       h0 = 8'h01;

wire   [size-1:0]       h1 = 8'h01;

wire   [size-1:0]       h2 = 8'h01;

wire   [size-1:0]       h3 = 8'h01;

wire   [size+size-1:0]  pe4_y = 16'h0000;  

pe pe_0(clk, reset, h0, input_x, pe1_y, pe0_x, output_y);

pe pe_1(clk, reset, h1, pe0_x, pe2_y, pe1_x, pe1_y);

pe pe_2(clk, reset, h2, pe1_x, pe3_y, pe2_x, pe2_y);

pe pe_3(clk, reset, h3, pe2_x, pe4_y, pe3_x, pe3_y);

endmodule

广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
sunyzz 2017-08-19 10:38
【博客大赛】AVALON总线介绍
1、AVALON总线简介Avalon总线是一种协议较为简单的片内总线,是ALTERA公司定义的片上互联总线,该总线可以将诸如NIOS II的CPU与其他外设连接起来,进而进行数据交换。AVALON总线...
sunyzz 2017-08-17 21:36
【博客大赛】不要轻易做职场滥好人
小A毕业于国内普通高校,但是他聪明,勤奋,能干,动手能力强,可是即便有这些优点也不能让小A轻轻松松找到一份好工作。这不,去年9月份小A好不容易找到一份工作,然后立马就入职了C公司,生怕C公司过两天不要...
sunyzz 2017-08-16 21:15
【博客大赛】IC设计低功耗技术四
五:工艺层面的降低功耗前面几节都是在讨论设计人员如何在前期阶段,中期阶段降低功耗,涉及到软件层面的,硬件层面的,这些技巧基本都是前辈总结出来的,或者根据理论推论出来的。但是到了后期,想降低功耗基本就要...
sunyzz 2017-08-14 22:35
【博客大赛】IC设计之低功耗技术三
四:RTL(寄存器传输)级的低功耗设计4.1 状态机的设计状态机编码中一般有两种方式,普通的二进制编码,特殊的格雷码,格雷码的特点是两个数据之间的跳变时只会有一个bit在toggle,显然比起多bit...
sunyzz 2017-08-12 16:51
【博客大赛】IC设计之低功耗技术二
三、架构层面的降低功耗系统的实现有很多的方式,每种方式对功耗的影响都不相同,本节主要介绍架构对功耗的影响。3.1 高级门口电路 在同步电路系统中,时钟占据了大部分的动态功耗,因而在一些情况下,如果有些...
sunyzz 2017-08-12 10:37
【博客大赛】IC 设计之低功耗技术一
一、前言随着计算机技术和微电子技术的迅速发展,嵌入式系统应用领域越来越广泛。节能是全球化的热潮,如计算机里的许多芯片过去用5V供电,现在用3.3V,1.8V,甚至更低的电压。目前的低功耗设计主要从芯片...
我要评论
0
0
广告