当前位置: 首页 > news >正文

建设网站商城特色美食网站建设策划书

建设网站商城,特色美食网站建设策划书,长春网站建设开发,网站改版 域名03–单格乘加运算单元PE 单窗口卷积块CU 文章目录 03--单格乘加运算单元PE 单窗口卷积块CU前言单格乘加运算单元PE代码模块结构时序逻辑分析对其上层模块CU的要求 单窗口卷积块CU代码逻辑分析 前言 ​ 第一和第二篇日志已经详细阐述了半精度浮点数的加…03–单格乘加运算单元PE 单窗口卷积块CU 文章目录 03--单格乘加运算单元PE 单窗口卷积块CU前言单格乘加运算单元PE代码模块结构时序逻辑分析对其上层模块CU的要求 单窗口卷积块CU代码逻辑分析 前言 ​ 第一和第二篇日志已经详细阐述了半精度浮点数的加法和乘法模块了。需要注意他们的输入和输出均是16bit的半精度浮点数。现在我们自下而上向着更顶层进发用floatMult16和floatAdd16模块搭建基本的卷积运算模块。 ​ 另外对于卷积神经网络中基本的卷积运算方法、卷积核、卷积层结构和参数等基础知识这里不会赘述默认读者已经掌握。 单格乘加运算单元PE ​ 在进行Image与filter的完整卷积运算之前我们需要更小的模块去支持这样的操作。首先最基本的是image的一格与filter的一格进行的乘法运算。在一个卷积窗口内这样一次又一次的乘法操作结束后需要进行累加得到最后的卷积结果。 代码 timescale 100 ns / 10 psmodule processingElement16(clk,reset,floatA,floatB,result);parameter DATA_WIDTH 16;input clk, reset; input [DATA_WIDTH-1:0] floatA, floatB; output reg [DATA_WIDTH-1:0] result;wire [DATA_WIDTH-1:0] multResult; wire [DATA_WIDTH-1:0] addResult;floatMult16 FM (floatA,floatB,multResult); floatAdd16 FADD (multResult,result,addResult);always (posedge clk or posedge reset) beginif (reset 1b1) beginresult 0;end else beginresult addResult;end endendmodule模块结构 floatA和floatB分别是image和filter中的一格数据他们输入到PE里来进行运算。实例化floatMult16和floatAdd16依先乘后累加的逻辑将他们连接起来。 ​ 值得注意的是这里用到了latch的结构进行累加即把输出addResult作为输入再次参与加运算。 时序逻辑分析 ① 每个时钟周期上升沿到来时两个16bit数A和B输入进来。在很短的时间里(一个clk周期内)Mult模块计算出乘积结果AB并交付于Add模块。 ② 上一个时钟周期运算完的累加结果addResult输入到Add模块在极短的时间内(一个clk周期内)与AB进行加运算得到本次的累加结果sumAB交付给后方寄存器result。 ③ 在下个时钟上升沿到来时result内存储的累加结果更新为本次的运算结果。同时result也作为本模块的输出。 ④ 下一个时钟上升沿到来… 对其上层模块CU的要求 ​ 每一个时钟周期都必须输入新的两个数A和B或者当没有新的卷积任务时将输入口置零。否则将会一直对同一格进行乘加造作导致重复运算的错误。 单窗口卷积块CU ​ CU是PE的上一层负责完成一整个窗口卷积结果的输出。换言之在每一个时钟上升沿到来时CU需要将一个窗口内n*n个格的数依次输入给PE。 ​ 本工程中使用的filter大小是5*5单通道的因此一个窗口的大小也是1*5*525格也就是25*16400bit。 代码 timescale 100 ns / 10 psmodule convUnit(clk,reset,image,filter,result);parameter DATA_WIDTH 16; parameter D 1; //depth of the filter parameter F 5; //size of the filterinput clk, reset; input [0:D*F*F*DATA_WIDTH-1] image, filter; output [0:DATA_WIDTH-1] result;reg [DATA_WIDTH-1:0] selectedInput1, selectedInput2;integer i;processingElement16 PE(.clk(clk),.reset(reset),.floatA(selectedInput1),.floatB(selectedInput2),.result(result));// The convolution is calculated in a sequential process to save hardware // The result of the element wise matrix multiplication is finished after (F*F2) cycles (2 cycles to reset the processing element and F*F cycles to accumulate the result of the F*F multiplications) always (posedge clk, posedge reset) beginif (reset 1b1) begin // reseti 0;selectedInput1 0;selectedInput2 0;end else if (i D*F*F-1) begin selectedInput1 0;selectedInput2 0;end else beginselectedInput1 image[DATA_WIDTH*i:DATA_WIDTH];selectedInput2 filter[DATA_WIDTH*i:DATA_WIDTH];i i 1;end endendmodule重要变量说明 selectedInput1和 selectedInput2在遍历时分别存储image和filter的一格输入到PE。i 索引变量。 逻辑分析 ​ 其实逻辑非常清晰易懂 每个时钟上升沿选择从DATA_WIDTH*i位置开始往低位DATA_WIDTH位的数据即一格16bit数据。image的一格交给input1filter的一格交给input2。当一个窗口全都交付运算i D*F*F-1时A与B均输入16bit的0防止重复运算最后一格的数据。此模块的reset受其上层模块convLayerSingle控制。每完成一个窗口的卷积操作中顿2个时钟周期随后进行复位重新开始新的卷积任务。 图片和卷积核本是二维数据矩阵但经过了RFselector后被展平为一维数据可以通过单变量索引拿取 开源项目github-URLCNN-FPGA
http://www.hkea.cn/news/14371023/

相关文章:

  • 专业的盐城网站建设公司查询网站查询系统
  • 设计网站建设常州wordpress培训机构
  • 外贸建站服务微商城运营的主要工作
  • 好的html5网站模板企业名称注册查询系统
  • 提高关键词排名的软文案例seo搜索引擎优化费用
  • 邢台网站制作济南网站建设服务
  • 在线建站成都营销型网站建设熊掌号
  • 做网站挣钱经历热门职业培训班
  • 多语言网站建设方案免费html代码烟花特效
  • 做网站留言板需要什么条件网站 建设 公司
  • 成都建站优化公司大收录量的网站怎么做
  • 电子商务网站建设与设计论文建设局和住建局的区别
  • 网站建设合同付款约定安徽省建设工程信息管理平台
  • 中国建设银行网站功能模块做微商卖产品在哪个网站销量能好点
  • 汕头市门户网站建设泰州网站关键词优化软件咨询
  • 做医疗类网站有什么需要审核的徐州地区网站建设
  • 邢台市住房和城乡建设局网站擦边球网站怎么做
  • 欧赛网站建设wordpress博客文章tdk设置
  • ui设计的推荐网站及网址wordpress跳转自适应
  • 宁波市镇海建设交通局网站唐山做网站企业
  • 深圳网站建设电话咨询人工智能网站应怎么做
  • 网站里的聊天怎么做广告设计制作公司经营范围
  • 网站建设类型有哪些方面中铁建设集团门户网登录不上去
  • 产品推广词南宁软件优化网站建设
  • 出版社类网站模板辉煌电商seo
  • 好的建站网站上海中国国际进口博览会
  • 个人网站建设需要多少钱网站建设faq系统指什么
  • 做印刷哪个网站好WordPress为什么卡
  • 外贸网站平台有几个163网易邮箱
  • 局域网站建设教程申报教学成果奖网站建设