<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css">
<link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css">
<link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/626725874f8811599ed4cb4e/raw.css">
<script src="https://static.pudn.com/base/js/compatibility.min.js"></script>
<script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar" style="display: none">
<div id="outline">
</div>
</div>
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/626725874f8811599ed4cb4e/bg1.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x1 h3 y2 ff1 fs0 fc0 sc0 ls0 ws0">简单<span class="_ _0"> </span><span class="ff2 sc1">CNN<span class="_ _0"> </span></span>加速器的设计</div><div class="t m0 x2 h3 y3 ff1 fs0 fc0 sc0 ls0 ws0">目录</div><div class="t m0 x2 h4 y4 ff1 fs1 fc0 sc0 ls0 ws0">第<span class="_ _1"> </span><span class="ff2 sc1">1<span class="_ _1"> </span></span>章 文档说明(<span class="ff2 sc1">Introduction</span>)<span class="ff2 sc1">.....................................................<span class="_ _2"></span>...<span class="_ _2"></span>....<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>..<span class="_ _3"></span>3</span></div><div class="t m0 x2 h4 y5 ff1 fs1 fc0 sc0 ls0 ws0">第<span class="_ _1"> </span><span class="ff2 sc1">2<span class="_ _1"> </span></span>章 设计过程<span class="ff2 sc1">............................................................................................<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _3"></span>3</span></div><div class="t m0 x3 h5 y6 ff3 fs2 fc0 sc1 ls0 ws0">2.1 CNN<span class="_ _4"> </span><span class="ff1">加速器结构框图:</span>........<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>...................<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>...3</div><div class="t m0 x3 h5 y7 ff3 fs2 fc0 sc1 ls0 ws0">2.2 <span class="ff1">控制器的实现</span>.........<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _2"></span>.<span class="_ _5"></span>4</div><div class="t m0 x3 h5 y8 ff3 fs2 fc0 sc1 ls0 ws0">2.3 Pixel_cnt<span class="ff1">(像素计数模块)</span>........<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>........<span class="_ _2"></span>.....<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>...5</div><div class="t m0 x3 h5 y9 ff3 fs2 fc0 sc1 ls0 ws0">2.4 <span class="_ _6"></span>Addr_cal<span class="ff1">(地址计算模块)</span>......<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>..............<span class="_ _2"></span>....5</div><div class="t m0 x3 h5 ya ff3 fs2 fc0 sc1 ls0 ws0">2.5 Data_reg<span class="ff1">(数据寄存模块)</span>.......<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>..............<span class="_ _2"></span>....5</div><div class="t m0 x3 h5 yb ff3 fs2 fc0 sc1 ls0 ws0">2.6 Convolution<span class="ff1">(卷积运算模块)</span>..........<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>...............<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>...5</div><div class="t m0 x3 h5 yc ff3 fs2 fc0 sc1 ls0 ws0">2.7 Pool<span class="ff1">(池化运算模块)</span>.......<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>..........<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>...6</div><div class="t m0 x3 h5 yd ff3 fs2 fc0 sc1 ls0 ws0">2.8 Mux1<span class="ff1">(输出选择模块)</span>.....<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>..................<span class="_ _2"></span>....<span class="_ _2"></span>...6</div><div class="t m0 x2 h4 ye ff1 fs1 fc0 sc0 ls0 ws0">第<span class="_ _1"> </span><span class="ff2 sc1">3<span class="_ _1"> </span></span>章 功能仿真<span class="ff2 sc1">............................................................................................<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _3"></span>6</span></div><div class="t m0 x3 h5 yf ff3 fs2 fc0 sc1 ls0 ws0">3.1 <span class="ff1">卷积结果(</span>memory[65]-memory[128]<span class="ff1">)</span>...........<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>..........<span class="_ _2"></span>....<span class="_ _2"></span>....7</div><div class="t m0 x3 h5 y10 ff3 fs2 fc0 sc1 ls0 ws0">3.2 <span class="ff1">池化结果(</span>memory[129]-memory[144]<span class="ff1">)</span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>......<span class="_ _2"></span>....<span class="_ _2"></span>....8</div><div class="t m0 x2 h4 y11 ff1 fs1 fc0 sc0 ls0 ws0">第<span class="_ _1"> </span><span class="ff2 sc1">4<span class="_ _1"> </span></span>章 逻辑综合<span class="ff2 sc1">............................................................................................<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _3"></span>9</span></div><div class="t m0 x3 h5 y12 ff3 fs2 fc0 sc1 ls0 ws0">4.1 <span class="ff1">综合设置(</span>tcl<span class="_ _4"> </span><span class="ff1">命令)</span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>.9</div><div class="t m0 x3 h5 y13 ff3 fs2 fc0 sc1 ls0 ws0">4.2 <span class="ff1">综合结果</span>.........<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>..................<span class="_ _2"></span>.<span class="_ _6"></span>1<span class="_ _2"></span>0</div><div class="t m0 x2 h4 y14 ff1 fs1 fc0 sc0 ls0 ws0">第<span class="_ _1"> </span><span class="ff2 sc1">2<span class="_ _1"> </span></span>章 <span class="ff2 sc1">Timing report...........................................................................................<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>10</span></div><div class="t m0 x2 h4 y15 ff1 fs1 fc0 sc0 ls0 ws0">第<span class="_ _1"> </span><span class="ff2 sc1">3<span class="_ _1"> </span></span>章 <span class="ff2 sc1">Area report.............................................................................................<span class="_ _2"></span>....<span class="_ _2"></span>...<span class="_ _2"></span>.11</span></div><div class="t m0 x2 h4 y16 ff1 fs1 fc0 sc0 ls0 ws0">第<span class="_ _1"> </span><span class="ff2 sc1">4<span class="_ _1"> </span></span>章 <span class="ff2 sc1">Cells report..............................................................................................<span class="_ _2"></span>....<span class="_ _2"></span>...<span class="_ _2"></span>11</span></div><div class="t m0 x3 h5 y17 ff3 fs2 fc0 sc1 ls0 ws0">4.3 <span class="ff1">综合后门级仿真(包括加入反标文件)</span>.........<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>...............<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>...12</div><div class="t m0 x2 h4 y18 ff1 fs1 fc0 sc0 ls0 ws0">第<span class="_ _1"> </span><span class="ff2 sc1">2<span class="_ _1"> </span></span>章 存在延时<span class="ff2 sc1">..........................................................................................<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _3"></span>12</span></div><div class="t m0 x2 h4 y19 ff1 fs1 fc0 sc0 ls0 ws0">第<span class="_ _1"> </span><span class="ff2 sc1">5<span class="_ _1"> </span></span>章 布局布线<span class="ff2 sc1">..........................................................................................<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _3"></span>13</span></div><div class="t m0 x3 h5 y1a ff3 fs2 fc0 sc1 ls0 ws0">5.1 <span class="ff1">布局布线设置</span>.........<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>..........<span class="_ _2"></span>.<span class="_ _6"></span>1<span class="_ _2"></span>3</div><div class="t m0 x3 h5 y1b ff3 fs2 fc0 sc1 ls0 ws0">5.2 <span class="ff1">布局布线最终结果视图</span>.........<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>........<span class="_ _6"></span>19</div><div class="t m0 x3 h5 y1c ff3 fs2 fc0 sc1 ls0 ws0">5.3 <span class="ff1">时序检查</span>.........<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>..................<span class="_ _2"></span>.<span class="_ _6"></span>2<span class="_ _2"></span>0</div></div><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div>
</body>
</html>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/626725874f8811599ed4cb4e/bg2.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x3 h5 y1d ff3 fs2 fc0 sc1 ls0 ws0">5.4 verify<span class="_ _4"> </span><span class="ff1">结果</span>.........<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>..........<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>....<span class="_ _2"></span>...20</div><div class="t m0 x3 h5 y1e ff3 fs2 fc0 sc1 ls0 ws0">5.5 <span class="ff1">增加<span class="_ _4"> </span></span>sdf <span class="ff1">反标后的后端仿真</span>.........<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>.............<span class="_ _5"></span>............<span class="_ _5"></span>...........<span class="_ _2"></span>...21</div><div class="t m0 x2 h4 y1f ff1 fs1 fc0 sc0 ls0 ws0">第<span class="_ _1"> </span><span class="ff2 sc1">6<span class="_ _1"> </span></span>章 总结<span class="ff2 sc1">..................................................................................................<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _2"></span>...<span class="_ _3"></span>22</span></div></div><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div>
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/626725874f8811599ed4cb4e/bg3.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x4 h6 y20 ff1 fs3 fc0 sc1 ls0 ws0">第<span class="ff4">1</span>章<span class="_ _7"> </span>文档说明(<span class="ff4">Introduction</span>) </div><div class="t m0 x5 h4 y21 ff1 fs1 fc0 sc1 ls0 ws0">本文档描述<span class="_ _1"> </span><span class="ff3">CNN<span class="_ _1"> </span></span>加速器的总体设计,能实现一层卷积和池化操作,并将卷</div><div class="t m0 x2 h4 y22 ff1 fs1 fc0 sc1 ls0 ws0">积和池化输出的结果写回<span class="_ _1"> </span><span class="ff3">memory<span class="_ _1"> </span></span>中。本文档对<span class="_ _1"> </span><span class="ff3">CNN<span class="_ _1"> </span></span>加速器的结构进行了设计,</div><div class="t m0 x2 h4 y23 ff1 fs1 fc0 sc1 ls0 ws0">并对每个模块的实现都进行了详细的说明,通过测试程序验证了<span class="_ _1"> </span><span class="ff3">CNN<span class="_ _1"> </span></span>加速器结</div><div class="t m0 x2 h4 y24 ff1 fs1 fc0 sc1 ls0 ws0">构的正确性。</div><div class="t m0 x6 h6 y25 ff1 fs3 fc0 sc1 ls0 ws0">第<span class="ff4">2</span>章<span class="_ _7"> </span>设计过程</div><div class="t m0 x7 h7 y26 ff4 fs4 fc0 sc1 ls0 ws0">2.1 CNN<span class="_ _8"> </span><span class="ff1">加速器结构框图:</span></div><div class="t m0 x8 h8 y27 ff3 fs1 fc0 sc1 ls0 ws0"> </div><div class="t m0 x8 h4 y28 ff1 fs1 fc0 sc1 ls0 ws0">结构说明:</div></div></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div>
<div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/626725874f8811599ed4cb4e/bg4.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x8 h4 y29 ff1 fs1 fc0 sc1 ls0 ws0">该<span class="_ _1"> </span><span class="ff3">CNN<span class="_ _1"> </span></span>加速器结构主体分为两个部分:下部是<span class="sc0">控制器(</span><span class="ff2">controller</span><span class="sc0">)</span>部分,</div><div class="t m0 x2 h4 y2a ff1 fs1 fc0 sc1 ls0 ws0">上部是<span class="sc0">数据通路(</span><span class="ff2">datapath</span><span class="sc0">)</span>部分,<span class="sc0">数据通路</span>部分主要由像素计数模块</div><div class="t m0 x2 h4 y2b ff5 fs1 fc0 sc1 ls0 ws0">pix<span class="_ _6"></span>e<span class="_"> </span>l_cnt<span class="_"> </span><span class="ff1">、地址计算模块<span class="_ _1"> </span></span>a<span class="_ _2"></span>ddr_cal<span class="ff1">、卷积运算模块<span class="_ _1"> </span></span>convolution<span class="ff1">、池化运算</span></div><div class="t m0 x2 h4 y2c ff1 fs1 fc0 sc1 ls0 ws0">模块<span class="_ _1"> </span><span class="ff5">pool</span>、输出选择模块<span class="_ _1"> </span><span class="ff5">mux1</span>、数据寄存模块<span class="_ _1"> </span><span class="ff5">data_reg<span class="ff3"> </span></span>六个模块组成。</div><div class="t m0 x7 h7 y2d ff4 fs4 fc0 sc1 ls0 ws0">2.2 <span class="ff1">控制器的实现</span></div><div class="t m0 x9 h4 y2e ff1 fs1 fc0 sc1 ls0 ws0">控制器<span class="_ _2"></span>的状态转<span class="_ _2"></span>移图如<span class="_ _2"></span>下图所<span class="_ _2"></span>示。<span class="_ _3"></span><span class="ff3">CNN<span class="_ _8"> </span></span>加速器涉及到<span class="_ _2"></span>卷积和<span class="_ _2"></span>池化两<span class="_ _2"></span>种运算<span class="_ _3"></span>。</div><div class="t m0 x2 h4 y2f ff1 fs1 fc0 sc1 ls0 ws0">卷积<span class="_ _2"></span>和<span class="_ _2"></span>池化<span class="_ _2"></span>运<span class="_ _2"></span>算<span class="_ _2"></span>主要<span class="_ _2"></span>涉<span class="_ _2"></span>及<span class="_ _2"></span>到以<span class="_ _2"></span>下<span class="_ _2"></span>操<span class="_ _2"></span>作:<span class="_ _2"></span>计<span class="_ _2"></span>算<span class="_ _2"></span>当前<span class="_ _2"></span>参<span class="_ _2"></span>与<span class="_ _2"></span>卷积<span class="_ _2"></span>操<span class="_ _2"></span>作的<span class="_ _2"></span>四<span class="_ _2"></span>个<span class="_ _2"></span>数据<span class="_ _2"></span>在<span class="_ _2"></span>存</div><div class="t m0 x2 h4 y30 ff1 fs1 fc0 sc1 ls0 ws0">储器<span class="_ _2"></span>中<span class="_ _2"></span>的地<span class="_ _2"></span>址<span class="_ _2"></span>,<span class="_ _2"></span>依次<span class="_ _2"></span>取<span class="_ _2"></span>出<span class="_ _2"></span>这四<span class="_ _2"></span>个<span class="_ _2"></span>数<span class="_ _2"></span>并存<span class="_ _2"></span>放<span class="_ _2"></span>在<span class="_ _2"></span>寄存<span class="_ _2"></span>器<span class="_ _2"></span>中<span class="_ _2"></span>,使<span class="_ _2"></span>用<span class="_ _2"></span>这四<span class="_ _2"></span>个<span class="_ _2"></span>数<span class="_ _2"></span>据执<span class="_ _2"></span>行<span class="_ _2"></span>卷</div><div class="t m0 x2 h4 y31 ff1 fs1 fc0 sc1 ls0 ws0">积操<span class="_ _2"></span>作<span class="_ _2"></span>(乘<span class="_ _2"></span>法<span class="_ _2"></span>和<span class="_ _2"></span>加法<span class="_ _2"></span>)<span class="_ _2"></span>或<span class="_ _2"></span>池化<span class="_ _2"></span>操<span class="_ _2"></span>作<span class="_ _2"></span>(取<span class="_ _2"></span>出<span class="_ _2"></span>最<span class="_ _2"></span>大值<span class="_ _2"></span>)<span class="_ _2"></span>得<span class="_ _2"></span>到结<span class="_ _2"></span>果<span class="_ _2"></span>,将<span class="_ _2"></span>结<span class="_ _2"></span>果<span class="_ _2"></span>写回<span class="_ _2"></span>外<span class="_ _2"></span>部</div><div class="t m0 x2 h4 y32 ff1 fs1 fc0 sc1 ls0 ws0">存储器中。</div><div class="t m0 x9 h4 y33 ff1 fs1 fc0 sc1 ls0 ws0">数据<span class="_ _2"></span>地<span class="_ _2"></span>址的<span class="_ _2"></span>计<span class="_ _2"></span>算<span class="_ _2"></span>可以<span class="_ _2"></span>分<span class="_ _2"></span>为<span class="_ _2"></span>两步<span class="_ _2"></span>。<span class="_ _2"></span>首<span class="_ _2"></span>先需<span class="_ _2"></span>要<span class="_ _2"></span>知<span class="_ _2"></span>道当<span class="_ _2"></span>前<span class="_ _2"></span>参<span class="_ _2"></span>与卷<span class="_ _2"></span>积<span class="_ _2"></span>或池<span class="_ _2"></span>化<span class="_ _2"></span>运<span class="_ _2"></span>算的</div><div class="t m0 x2 h4 y34 ff1 fs1 fc0 sc1 ls0 ws0">四个数在图<span class="_ _2"></span>像中的相对位置,<span class="_ _2"></span>这可以通过计<span class="_ _2"></span>数器<span class="_ _0"> </span><span class="ff3">pixel<span class="_ _1"> </span></span>对每次<span class="_ _2"></span>运算进行计数<span class="_ _2"></span>来实</div><div class="t m0 x2 h4 y35 ff1 fs1 fc0 sc1 ls0 ws0">现<span class="_ _4"> </span>,<span class="_ _9"> </span>由<span class="_ _9"> </span>于<span class="_ _4"> </span>是<span class="_ _9"> </span>处<span class="_ _4"> </span>理<span class="_ _9"> </span>图<span class="_ _4"> </span>像<span class="_ _9"> </span>数<span class="_ _4"> </span>据<span class="_ _9"> </span>,<span class="_ _4"> </span>我<span class="_ _9"> </span>们<span class="_ _4"> </span>使<span class="_ _9"> </span>用<span class="_ _4"> </span>行<span class="_ _9"> </span>计<span class="_ _4"> </span>数<span class="_ _9"> </span>器<span class="_ _4"> </span>(<span class="_ _8"> </span><span class="ff3">row_cnt<span class="_ _9"> </span></span>)<span class="_ _4"> </span>和<span class="_ _9"> </span>列<span class="_ _4"> </span>计<span class="_ _9"> </span>数<span class="_ _4"> </span>器</div><div class="t m0 x2 h4 y36 ff1 fs1 fc0 sc1 ls0 ws0">(<span class="_ _2"></span><span class="ff3">col_cnt<span class="_ _2"></span></span>)<span class="_ _2"></span>来表<span class="_ _2"></span>示<span class="_ _2"></span>一<span class="_ _2"></span>个<span class="_ _2"></span>像<span class="_ _2"></span>素<span class="_ _2"></span>在<span class="_ _2"></span>图<span class="_ _2"></span>像<span class="_ _2"></span>中<span class="_ _2"></span>的<span class="_ _2"></span>位置<span class="_ _3"></span>。每<span class="_ _2"></span>进<span class="_ _2"></span>行<span class="_ _2"></span>一<span class="_ _2"></span>次<span class="_ _2"></span>运<span class="_ _2"></span>算<span class="_ _2"></span>,<span class="_ _2"></span>计<span class="_ _2"></span>数<span class="_ _2"></span>器<span class="_ _2"></span>加一<span class="_ _2"></span>。</div><div class="t m0 x2 h4 y37 ff1 fs1 fc0 sc1 ls0 ws0">其次<span class="_ _2"></span>,<span class="_ _2"></span>需要<span class="_ _2"></span>计<span class="_ _2"></span>算<span class="_ _2"></span>出每<span class="_ _2"></span>次<span class="_ _2"></span>参<span class="_ _2"></span>与运<span class="_ _2"></span>算<span class="_ _2"></span>的<span class="_ _2"></span>四个<span class="_ _2"></span>数<span class="_ _2"></span>据<span class="_ _2"></span>在存<span class="_ _2"></span>储<span class="_ _2"></span>器<span class="_ _2"></span>中的<span class="_ _2"></span>绝<span class="_ _2"></span>对地<span class="_ _2"></span>址<span class="_ _2"></span>,<span class="_ _2"></span>不难<span class="_ _2"></span>发<span class="_ _2"></span>现<span class="_ _a"></span>,</div><div class="t m0 x2 h4 y38 ff1 fs1 fc0 sc1 ls0 ws0">这<span class="_ _b"> </span>可<span class="_ _b"> </span>以<span class="_ _b"> </span>通<span class="_ _b"> </span>过<span class="_ _b"> </span>前<span class="_ _b"> </span>一<span class="_ _b"> </span>步<span class="_ _b"> </span>中<span class="_ _b"> </span>的<span class="_ _c"> </span><span class="ff3">pixel<span class="_ _c"> </span></span>来<span class="_ _b"> </span>实<span class="_ _b"> </span>现<span class="_ _b"> </span>,<span class="_ _b"> </span>四<span class="_ _b"> </span>个<span class="_ _b"> </span>数<span class="_ _b"> </span>的<span class="_ _b"> </span>地<span class="_ _b"> </span>址<span class="_ _b"> </span>分<span class="_ _b"> </span>别<span class="_ _b"> </span>为</div><div class="t m0 x2 h4 y39 ff3 fs1 fc0 sc1 ls0 ws0">pixel,pixel+1,pixel+8,pixel+9<span class="_ _2"></span><span class="ff1">。<span class="_ _3"></span>每<span class="_ _2"></span>次<span class="_ _2"></span>运<span class="_ _3"></span>算<span class="_ _2"></span>的<span class="_ _2"></span>四<span class="_ _3"></span>个<span class="_ _2"></span>单<span class="_ _2"></span>元<span class="_ _2"></span>为<span class="_ _3"></span>上<span class="_ _2"></span>一<span class="_ _2"></span>次<span class="_ _2"></span>的<span class="_ _3"></span>四<span class="_ _2"></span>个<span class="_ _2"></span>各<span class="_ _2"></span>自<span class="_ _3"></span>向<span class="_ _2"></span>右<span class="_ _3"></span>平</span></div><div class="t m0 x2 h4 y3a ff1 fs1 fc0 sc1 ls0 ws0">移<span class="_ _3"></span>一<span class="_ _3"></span>格<span class="_ _3"></span>得<span class="_ _3"></span>到<span class="_ _a"></span>(<span class="_ _2"></span>对<span class="_ _3"></span>于<span class="_ _3"></span>图<span class="_ _d"></span>像<span class="_ _3"></span>右<span class="_ _3"></span>边<span class="_ _3"></span>缘<span class="_ _3"></span>处<span class="_ _d"></span>的<span class="_ _3"></span>数<span class="_ _3"></span>据<span class="_ _3"></span>以<span class="_ _d"></span>及<span class="_ _3"></span>步<span class="_ _3"></span>长<span class="_ _3"></span>不<span class="_ _3"></span>为<span class="_ _e"> </span><span class="ff3">1<span class="_"> </span></span>时<span class="_ _3"></span>的<span class="_ _3"></span>情<span class="_ _3"></span>况<span class="_ _3"></span>会<span class="_ _d"></span>在<span class="_ _3"></span>后<span class="_ _3"></span>面<span class="_ _3"></span>说</div><div class="t m0 x2 h4 y3b ff1 fs1 fc0 sc1 ls0 ws0">明<span class="_ _a"></span>)<span class="_ _d"></span>。<span class="_ _a"></span>上<span class="_ _a"></span>述<span class="_ _a"></span>方<span class="_ _a"></span>法<span class="_ _a"></span>的<span class="_ _a"></span>第<span class="_ _a"></span>一<span class="_ _a"></span>步<span class="_ _a"></span>用<span class="_ _d"></span>一<span class="_ _f"></span>个<span class="_ _d"></span>状<span class="_ _a"></span>态<span class="_ _10"> </span><span class="ff3">pixel_cnt<span class="_ _11"> </span></span>完<span class="_ _d"></span>成<span class="_ _a"></span>。<span class="_ _a"></span>需<span class="_ _a"></span>要<span class="_ _a"></span>说<span class="_ _a"></span>明<span class="_ _a"></span>的<span class="_ _a"></span>是<span class="_ _a"></span>,<span class="_ _a"></span>由<span class="_ _d"></span>于</div><div class="t m0 x2 h4 y3c ff3 fs1 fc0 sc1 ls0 ws0">pixel_cnt<span class="_ _1"> </span><span class="ff1">复<span class="_ _2"></span>位后<span class="_ _2"></span>为<span class="_ _8"> </span></span>1<span class="ff1">,因<span class="_ _2"></span>此第<span class="_ _2"></span>一次<span class="_ _2"></span>运算<span class="_ _2"></span>时从<span class="_ _0"> </span></span>idle<span class="_ _8"> </span><span class="ff1">直接跳转<span class="_ _2"></span>到<span class="_ _8"> </span></span>load_d1,<span class="ff1">而无<span class="_ _2"></span>需进<span class="_ _2"></span>入</span></div><div class="t m0 x2 h4 y3d ff3 fs1 fc0 sc1 ls0 ws0">pixel_cnt<span class="_ _1"> </span><span class="ff1">状态。</span></div><div class="t m0 x9 h4 y3e ff1 fs1 fc0 sc1 ls0 ws0">之<span class="_ _3"></span>后<span class="_ _3"></span>就<span class="_ _3"></span>可<span class="_ _3"></span>以<span class="_ _d"></span>进<span class="_ _3"></span>行<span class="_ _3"></span>上<span class="_ _3"></span>述<span class="_ _d"></span>方<span class="_ _3"></span>法<span class="_ _3"></span>的<span class="_ _3"></span>第<span class="_ _3"></span>二<span class="_ _d"></span>步<span class="_ _3"></span>计<span class="_ _3"></span>算<span class="_ _3"></span>出<span class="_ _d"></span>数<span class="_ _3"></span>据<span class="_ _3"></span>地<span class="_ _3"></span>址<span class="_ _3"></span>并<span class="_ _d"></span>放<span class="_ _3"></span>入<span class="_ _3"></span>寄<span class="_ _3"></span>存<span class="_ _3"></span>器<span class="_ _d"></span>中<span class="_ _3"></span>,<span class="_ _3"></span>即</div><div class="t m0 x2 h4 y3f ff3 fs1 fc0 sc1 ls0 ws0">load_d1<span class="_ _1"> </span><span class="ff1">到<span class="_ _1"> </span></span>load_d4<span class="_ _1"> </span><span class="ff1">状态<span class="_ _2"></span>。之后根据当<span class="_ _2"></span>前卷积池化选<span class="_ _2"></span>择位(<span class="_ _2"></span></span>c_p<span class="ff1">)判断下<span class="_ _2"></span>一步是卷</span></div><div class="t m0 x2 h4 y40 ff1 fs1 fc0 sc1 ls0 ws0">积还<span class="_ _2"></span>是池<span class="_ _2"></span>化操<span class="_ _2"></span>作,<span class="_ _2"></span>分<span class="_ _2"></span>别进<span class="_ _2"></span>入相<span class="_ _2"></span>应的<span class="_ _2"></span>运算<span class="_ _2"></span>状态<span class="_ _2"></span>(<span class="_ _a"></span><span class="ff3">conv<span class="_ _8"> </span></span>或<span class="_ _1"> </span><span class="ff3">pool</span>)<span class="_ _2"></span>。对<span class="_ _2"></span>于卷<span class="_ _2"></span>积操<span class="_ _2"></span>作,</div><div class="t m0 x2 h4 y41 ff1 fs1 fc0 sc1 ls0 ws0">由于<span class="_ _2"></span>每<span class="_ _2"></span>一次<span class="_ _2"></span>卷<span class="_ _2"></span>积<span class="_ _2"></span>后得<span class="_ _2"></span>到<span class="_ _2"></span>的<span class="_ _2"></span>结果<span class="_ _2"></span>都<span class="_ _2"></span>需<span class="_ _2"></span>要写<span class="_ _2"></span>回<span class="_ _2"></span>外<span class="_ _2"></span>部存<span class="_ _2"></span>储<span class="_ _2"></span>器<span class="_ _2"></span>中,<span class="_ _2"></span>因<span class="_ _2"></span>此下<span class="_ _2"></span>一<span class="_ _2"></span>步<span class="_ _2"></span>是写<span class="_ _2"></span>状<span class="_ _2"></span>态</div><div class="t m0 x2 h4 y42 ff1 fs1 fc0 sc1 ls0 ws0">(<span class="ff3">write_stage<span class="_ _2"></span></span>)。而对<span class="_ _2"></span>于池化<span class="_ _2"></span>操作,<span class="_ _2"></span>由于步<span class="_ _2"></span>长为<span class="_ _0"> </span><span class="ff3">2</span>,并不<span class="_ _2"></span>是每次<span class="_ _2"></span>运算的<span class="_ _2"></span>结果都<span class="_ _2"></span>是</div><div class="t m0 x2 h4 y43 ff1 fs1 fc0 sc1 ls0 ws0">需要<span class="_ _2"></span>的<span class="_ _2"></span>,因<span class="_ _2"></span>此<span class="_ _2"></span>只<span class="_ _2"></span>对需<span class="_ _2"></span>要<span class="_ _2"></span>的<span class="_ _2"></span>那部<span class="_ _2"></span>分<span class="_ _2"></span>结<span class="_ _2"></span>果写<span class="_ _2"></span>入<span class="_ _2"></span>存<span class="_ _2"></span>储器<span class="_ _2"></span>,<span class="_ _2"></span>即<span class="_ _2"></span>只有<span class="_ _2"></span>当<span class="_ _2"></span>参与<span class="_ _2"></span>运<span class="_ _2"></span>算<span class="_ _2"></span>的四<span class="_ _2"></span>个<span class="_ _2"></span>数</div><div class="t m0 x2 h4 y44 ff1 fs1 fc0 sc1 ls0 ws0">据中<span class="_ _2"></span>左<span class="_ _2"></span>上角<span class="_ _2"></span>那<span class="_ _2"></span>个<span class="_ _2"></span>数据<span class="_ _2"></span>的<span class="_ _2"></span>行<span class="_ _2"></span>序号<span class="_ _2"></span>和<span class="_ _2"></span>列<span class="_ _2"></span>序号<span class="_ _2"></span>均<span class="_ _2"></span>为<span class="_ _2"></span>奇数<span class="_ _2"></span>时<span class="_ _2"></span>才<span class="_ _2"></span>写入<span class="_ _2"></span>。<span class="_ _2"></span>这样<span class="_ _2"></span>就<span class="_ _2"></span>完<span class="_ _2"></span>成了<span class="_ _2"></span>一<span class="_ _2"></span>次</div><div class="t m0 x2 h4 y45 ff1 fs1 fc0 sc1 ls0 ws0">完整的卷积或池化操作,可以跳转到<span class="_ _1"> </span><span class="ff3">pixe_cnt<span class="_ _1"> </span></span>状态,计算下一组数据的地址。</div></div></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div>
<div id="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/626725874f8811599ed4cb4e/bg5.jpg"><div class="c x0 y1 w2 h2"><div class="t m0 x7 h7 y46 ff4 fs4 fc0 sc1 ls0 ws0">2.3 Pixel_cnt<span class="ff1">(像素计数模块)</span></div><div class="t m0 x8 h4 y47 ff1 fs1 fc0 sc1 ls0 ws0">计算<span class="_ _2"></span>参<span class="_ _2"></span>与卷<span class="_ _2"></span>积<span class="_ _2"></span>或<span class="_ _2"></span>池化<span class="_ _2"></span>运<span class="_ _2"></span>算<span class="_ _2"></span>的四<span class="_ _2"></span>个<span class="_ _2"></span>数<span class="_ _2"></span>在图<span class="_ _2"></span>像<span class="_ _2"></span>中<span class="_ _2"></span>的相<span class="_ _2"></span>对<span class="_ _2"></span>位<span class="_ _2"></span>置,<span class="_ _2"></span>使<span class="_ _2"></span>用计<span class="_ _2"></span>数<span class="_ _2"></span>器<span class="_ _8"> </span><span class="ff3">pixe<span class="_ _2"></span>l</span></div><div class="t m0 x2 h4 y48 ff1 fs1 fc0 sc1 ls0 ws0">对<span class="_ _f"></span>每<span class="_ _f"></span>次<span class="_ _f"></span>运<span class="_ _f"> </span>算<span class="_ _9"> </span>进<span class="_ _a"></span>行<span class="_ _9"> </span>计<span class="_ _a"></span>数<span class="_ _9"> </span>来<span class="_ _a"></span>实<span class="_ _9"> </span>现<span class="_ _a"></span>。<span class="_ _9"> </span>由<span class="_ _a"></span>于<span class="_ _9"> </span>是<span class="_ _a"></span>处<span class="_ _9"> </span>理<span class="_ _a"></span>图<span class="_ _9"> </span>像<span class="_ _a"></span>数<span class="_ _9"> </span>据<span class="_ _a"></span>,<span class="_ _9"> </span>我<span class="_ _a"></span>们<span class="_ _9"> </span>使<span class="_ _a"></span>用<span class="_ _9"> </span>行<span class="_ _a"></span>计<span class="_ _9"> </span>数<span class="_ _a"></span>器</div><div class="t m0 x2 h4 y49 ff1 fs1 fc0 sc1 ls0 ws0">(<span class="_ _9"> </span><span class="ff3">row_cnt<span class="_ _f"> </span></span>)<span class="_ _9"> </span>和<span class="_ _f"></span>列<span class="_ _9"> </span>计<span class="_ _f"></span>数<span class="_ _9"> </span>器<span class="_ _f"></span>(<span class="_ _9"> </span><span class="ff3">col_cnt<span class="_ _9"> </span></span>)<span class="_ _f"></span>来<span class="_ _9"> </span>表<span class="_ _f"></span>示<span class="_ _9"> </span>一<span class="_ _f"></span>个<span class="_ _9"> </span>像<span class="_ _f"> </span>素<span class="_ _9"> </span>在<span class="_ _f"> </span>图<span class="_ _9"> </span>像<span class="_ _f"> </span>中<span class="_ _9"> </span>的<span class="_ _f"> </span>位<span class="_ _9"> </span>置<span class="_ _f"> </span>,<span class="_ _9"> </span>由</div><div class="t m0 x2 h4 y4a ff3 fs1 fc0 sc1 ls0 ws0">pixel=(row_cnt-1)*8+col_cnt<span class="_ _1"> </span><span class="ff1">可得<span class="_ _1"> </span></span>pixel<span class="ff1">。每进行一次运算,</span>pixel<span class="_ _1"> </span><span class="ff1">加一。</span></div><div class="t m0 x7 h7 y4b ff4 fs4 fc0 sc1 ls0 ws0">2.4 Addr_cal<span class="ff1">(地址计算模块) </span></div><div class="t m0 x8 h4 y4c ff1 fs1 fc0 sc1 ls0 ws0">根据<span class="_ _1"> </span><span class="ff5">pix<span class="_ _6"></span>e<span class="_"> </span>l_cnt<span class="_ _8"> </span><span class="ff1">输出的当前<span class="_ _4"> </span></span>pixel<span class="_ _4"> </span><span class="ff1">值和<span class="_ _1"> </span></span>col<span class="ff1">、</span>row<span class="_ _1"> </span><span class="ff1">值,计算每次参与运算的</span></span></div><div class="t m0 x2 h4 y4d ff1 fs1 fc0 sc1 ls0 ws0">四个数据的地址以及运算结果将存入单元的地址。</div><div class="t m0 x7 h7 y4e ff4 fs4 fc0 sc1 ls0 ws0">2.5 Data_reg<span class="ff1">(数据寄存模块)</span></div><div class="t m0 x8 h4 y4f ff1 fs1 fc0 sc1 ls0 ws0">存放由<span class="_ _1"> </span><span class="ff3">addr_cal<span class="_ _1"> </span></span>模块计算出的地址从<span class="_ _1"> </span><span class="ff3">memory<span class="_ _1"> </span></span>取回的数据,以供下一步卷积</div><div class="t m0 x2 h4 y50 ff1 fs1 fc0 sc1 ls0 ws0">或池化运算使用。</div><div class="t m0 x7 h7 y51 ff4 fs4 fc0 sc1 ls0 ws0">2.6 Convolution<span class="ff1">(卷积运算模块)</span></div><div class="t m0 x8 h4 y52 ff1 fs1 fc0 sc1 ls0 ws0">根据<span class="_ _1"> </span><span class="ff3">data_reg<span class="_ _1"> </span></span>中存放的四个数据,以及设定的卷积核,完成计算并输出结</div><div class="t m0 x2 h4 y53 ff1 fs1 fc0 sc1 ls0 ws0">果。</div></div></div><div class="pi" data-data='{"ctm":[1.611850,0.000000,0.000000,1.611850,0.000000,0.000000]}'></div></div>