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

在百度上做网站推广怎么弄网站后台有些不显示

在百度上做网站推广怎么弄,网站后台有些不显示,设计网站名字,一流高职院校建设工作网站这是迟到很久的卷积电路verilog设计的下篇。。。你看我还有机会吗。。。上回我们给出系统的层次结构、卷积计算模块以及用于数据缓存的fifo模块#xff0c;今天我们首先回顾一下上一次的关键内容。系统结构回顾RTL代码文件可以分为结构如下所示 ~|--top_conv_tb.v|--top_conv.… 这是迟到很久的卷积电路verilog设计的下篇。。。你看我还有机会吗。。。上回我们给出系统的层次结构、卷积计算模块以及用于数据缓存的fifo模块今天我们首先回顾一下上一次的关键内容。系统结构回顾RTL代码文件可以分为结构如下所示 ~|--top_conv_tb.v|--top_conv.v| |--sram_input.v| |--sram_weight.v| |--sram_output.v |--conv.v |--weight_addr_gen.v |--pixel_addr_gen.v |--conv_calculation.v |--conv_fifo.v |--fifo_wr_control.v其中top_conv.v为设计的顶层模块其只有startresetclk三个输入端口以及一个输出端口finishtop_conv.v模块负责例化各子模块完成conv.v, sram_input, sram_onput以及sram_weight之间的连接。 sram_input, sram_onput以及sram_weight三个子模块用于存储输入和输出直接例化所给代码。conv模块是实验中需要主要设计的模块共包含五个子模块各个子模块的功能概述如下•weight_addr_gen模块用于在每个时钟周期产生当前单元计算卷积所需要的权重在sram中的地址•pixel_addr_gen模块用于在每个时钟周期产生当前单元计算卷积所需要的像素值在sram中的地址•conv_calculation模块利用得到的像素值和权重完成相乘、累加并在当前窗口全部像素计算完成后产生输出请求信号并输出该窗口的卷积值•conv_fifo模块输入数据的sram和计算模块之间的缓冲模块接受像素数据存储器sram_input和权重数据存储器及sram_weight的输出数据并向conv_calculation模块输出缓存数据•fifo_wr_control模块这一模块较为简单为一级寄存器用于调整两个地址产生模块的读请求、读地址信号和写fifo之间的时序。整合后的系统框图如下所示下面就进入到今天的新内容我们将介绍系统中最后一个稍微麻烦的地址产生模块以及给出最后的结果展示。地址产生模块对于权重的地址产生模块较为简单只需要依次从0到8进行循环即可//generate output weight_addralways (*) beginif (start) begin case(weight_cnt) 4d0: weight_addr 0; 4d1: weight_addr 1; 4d2: weight_addr 2; 4d3: weight_addr 3; 4d4: weight_addr 4; 4d5: weight_addr 5; 4d6: weight_addr 6; 4d7: weight_addr 7; 4d8: weight_addr 8; default:weight_addr weight_addr_widthbx; endcaseendelseweight_addr 0;end而对于像素的地址产生模块要相应的复杂一些这里分两步进行首先产生每次计算时像素窗口第一个像素(左上角)的地址first_pixel然后依次遍历窗口内的各个元素//generate the first position(top-left) in the conv windowalways (posedge clk or negedge reset) beginif (!reset) first_pixel pixel_addr_widthb0;else if (startpixel_cnt8) begin case(first_pixel) 29,61,93,125,157,189,221,253,285,317,349,381,413, 445,477,509,541,573,605,637,669,701,733,765,797, 829,861,893,925: first_pixel first_pixel3; default:first_pixel first_pixel1; endcaseendelse first_pixel first_pixel;end//generate output pixel_addralways (*) beginif (start) begin case(pixel_cnt) 4d0: pixel_addr first_pixel 7d0; 4d1: pixel_addr first_pixel 7d1; 4d2: pixel_addr first_pixel 7d2; 4d3: pixel_addr first_pixel 7d32; 4d4: pixel_addr first_pixel 7d33; 4d5: pixel_addr first_pixel 7d34; 4d6: pixel_addr first_pixel 7d64; 4d7: pixel_addr first_pixel 7d65; 4d8: pixel_addr first_pixel 7d66; default:pixel_addr pixel_addr_widthbx; endcaseendelsepixel_addr 0;end结果展示1.波形仿真我们首先进行波形仿真验证。运行vivado对我们的设计进行仿真验证波形输出如下图所示仿真的关键信号大致可以分为读sram写fifo读fifo卷积计算以及输出这五组从图中可以看出各个信号的时序满足我们的设计需求在开始信号start拉高后conv_calculation模块发出数据请求信号s_read_reqfifo即开始从sram中读取数据。在fifo为非empty的后一个周期fifo_read信号有效conv_calculation开始从fifo中读取数据在开始计算后的第九个周期计算模块产生当前单元的正确卷积结果并发出完成信号sum_done用于输出请求。关于计算模块的仿真波形区域放大图展示如下通过sram_output.v中的以下语句我们将卷积输出结果输出到文本文件Write_Out_File .txt中。Write_Out_File $fopen(Write_Out_File .txt);$fdisplay(Write_Out_File,%h,s_write_data_b);Write_Out_File .txt文件共900行对应于输出图片的900个像素点安装实验要求load_txt_to_pic.py将txt中的矩阵结果转化为输出图片并显示。作为参考我们可以调用python中opencv库中的cv.filter2D函数进行卷积运算结果如下所示可以看出经过conv.v卷积边缘提取后的结果仍能大致看出原有图片轮廓,但是与直接运用python中cv.filter2D相比有些细节仍然有所丢失。这与我们实验中进行数据定点化处理以及cv.filter2D中卷积计算时的优化处理有关。另外我们可以看出使用cv.filter2D后图片的大小仍然保持不变这是由于在cv.filter2D中进行了一定的填充插值处理。2.计算资源消耗•计算延时整个计算过程开始于start信号拉高的23ns结束于finish信号拉高的89935ns在一个时钟周期为10ns的前提下完成计算共需要8995个时钟周期。•乘法器资源实验中一共进行了900次乘法运算但每9个时钟周期内只单独进行一次乘法运算所以总共需要一个乘法器。•访存次数访存需要的次数与参考设计中相同即每次计算一个3*3卷积窗从input ram和weight ram取数3*3次并存output到output ram一次。共访问input ram 30*30*3*3次访问weight ram 30*30*3*3次访问output ram 900次。总共访问次数为17100次。vivado综合后的资源使用情况如下优化方向在前面的设计中我们是按照卷积窗口的移动顺序每次从sram中依次取出数据对于这样方法计算一个卷积窗口需要9次访存总共900个窗口需要900*9次访存然而事实上窗口中的9个weight的数据在计算始终保持不变而计算相邻窗口时pixel的部分数据也可以重复利用(数据复用)因此我们可以通过减少访问模块外部的sram的次数来提高系统的运行速度。 对于weight来说如果我们将sram中的数据读取后存储在计算模块内的存储器中事实上总共只需要一次读weight_sram的操作从而可以大大减少访问weight时的访存次数。对于pixel来说相邻的窗口的部分数据读到conv模块后可以进行复用如下图所示使用数据复用也可以减少pixel时的访存次数。另一种更加普遍的思路是将卷积计算转化为矩阵乘法计算(im2col),对于矩阵乘法运算有大量的优化算法并可以进一步利用脉动阵列来实现计算的并行以及数据的重用(谷歌TPU的基本架构),或者使用加法器和多个并行乘法器组成的加法树完成计算的并行(寒武纪Diannao的基本架构)。这些优化方法由于时间原因没有进一步在现有的卷积电路上加以实现,但我们会在后续的推文中给出使用HSL搭建的卷积电路从中可以明显看出在使用了流水线以及循环展开unroll来获得226倍的加速比。
http://www.zqtcl.cn/news/254786/

相关文章:

  • 怎么做网站导航栏个性化定制产品
  • 如何做企业网站排名优化工业设计公司logo
  • 怎样制作网站教程中国建设银行总部网站
  • 美食网站建设规划书辽宁建设工程信息网中标通知
  • iis搭建网站教程深圳注册公司条件
  • 怎么优化网站关键词排名api接口开发网站开发
  • 如何提升网站的搜索排名秦皇岛黄页大全秦皇岛本地信息网
  • 学生作业网站笔记本可以做网站吗
  • 网站开发毕设开题报告在线设计网站源码
  • 优普南通网站建设申请注册公司流程
  • 越南网站建设河南企业做网站
  • 优化免费网站建设做网站领券收佣金
  • 网站常用图标素材办公用品十大购物网站排名
  • 网络门户网站站长要维护网站
  • 网上有做衣服的网站有哪些做网站推广怎样才能省钱
  • 网站专题设计欣赏找网站公司做网站是怎样的流程
  • 网站上传后如何设置首页制作网络游戏
  • 外贸接单网站排名榜珠宝行网站建设方案
  • 酒店门户网站建设背景门户网站的发布特点
  • 网站营销与推广汕头澄海
  • php和asp做网站哪个好阿里云wordpress配置
  • 东莞响应式网站建设网络营销策略和营销策略的区别
  • 番禺做网站哪家强合肥网页网站制作
  • 100个免费推广网站阜阳网站建设价格低
  • 广西茶叶学会 网站建设给人做网站能赚钱吗
  • 网站建设的发展目标西湖区住房和城乡建设局网站
  • 佛山市手机网站建设网页制作教程第三版赵丰年pdf
  • 做的好的装修公司网站网页制作搜题软件
  • 网站公告栏代码铁路建设标准网站
  • 网站设计工具更好的做网站禅城技术支持骏域网站建设