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

怎么样做网站卖东西长沙制作公园仿竹围栏供货商

怎么样做网站卖东西,长沙制作公园仿竹围栏供货商,品牌推广外包,广州网站建设网站推广目录 1. 简介 2. 极简的对比 3. 硬件模块的多次触发 4. 进一步探讨 do-while 5. 总结 1. 简介 在这篇博文中《Vitis HLS 学习笔记--AXI_STREAM_TO_MASTER-CSDN博客》#xff0c;我分享了关于 AXI Stream 接口的实际应用案例。然而#xff0c;尽管文章中提供了代码示例我分享了关于 AXI Stream 接口的实际应用案例。然而尽管文章中提供了代码示例对于代码中使用的编码格式并未进行深入探讨。例如其中使用了 do-while 循环但我们需要进一步思考这个循环是否是必须的我们如何理解硬件电路是如何实现一个无边界的循环呢 这一问题的探讨将有助于读者更好地理解硬件描述语言HDL与软件编程之间的差异以及如何在硬件层面有效地利用循环结构。 2. 极简的对比 请仔细对比一下两段代码 代码一包含 do-while #include complex #include ap_axi_sdata.h #include hls_stream.htypedef hls::axisstd::complexshort int, 0, 0, 0 data_t; typedef hls::streamdata_t mystream;void example_1(mystream A, mystream B) { #pragma HLS INTERFACE axis portA #pragma HLS INTERFACE axis portBdata_t tmp_a;do {tmp_a A.read();data_t tmp_b;tmp_b.data.real(tmp_a.data.real() 5);tmp_b.data.imag(tmp_a.data.imag() 1);B.write(tmp_b);} while (!tmp_a.last); } 代码二不包含 do-while #include complex #include ap_axi_sdata.h #include hls_stream.htypedef hls::axisstd::complexshort int, 0, 0, 0 data_t; typedef hls::streamdata_t mystream;void example_2(mystream A, mystream B) { #pragma HLS INTERFACE axis portA #pragma HLS INTERFACE axis portBdata_t tmp_a;tmp_a A.read();data_t tmp_b;tmp_b.data.real(tmp_a.data.real() 5);tmp_b.data.imag(tmp_a.data.imag() 1);B.write(tmp_b); } 从软件调用的角度来理解  在 example_1 中使用了一个 do-while 循环它会一直执行直到 tmp_a.last 的值为真。这表示在读取完所有输入数据后才会停止循环。 在 example_2 中没有使用循环结构而是直接从输入流 A 中读取一个数据处理后写入输出流 B。因此它只执行一次读取、处理和写入操作。 从软件调用的角度来看以上的分析没有错但是我们的代码会被硬件来实现怎么会容忍硬件“只能被调用一次” 在软件中我们很容易理解并执行一次性的操作例如在 example_2 中所示。然而在硬件描述中情况稍有不同。 在硬件中一般情况下每个操作都会对应一个硬件电路的状态变化或者时钟周期。因此虽然在软件中我们可以简单地想象每个函数被调用一次但在硬件中我们需要考虑每个操作如何在时钟周期内完成。 这里提出一个出人意料的结论尽管两端代码在软件层面看起来有所不同但对应的硬件实现功能却完全相同。 3. 硬件模块的多次触发 对于example_2函数当提到它“只能处理单个数据项”意思是在一个函数调用中它只从输入流A读取并处理一个数据项然后将处理后的数据写入输出流B。在硬件实现上这意味着它被设计为一次处理一个数据项的操作。 然而硬件模块本身是可以被多次触发的可以持续给这个模块喂数据每次喂一个数据项模块就处理一次。这是通过在硬件设计中实现一个接口允许数据连续流入模块并在每个数据项到来时触发处理逻辑。 在连续运行的情况下example_2的硬件实现可以看作是一个流水线的单元每接收到一个新的数据项就处理这个数据项并将结果输出。因此尽管在单次函数调用中它只处理一个数据项但在连续运行时它可以连续处理多个数据项每次处理一个。 当持续给这个硬件模块喂数据时模块将会在每个时钟周期或多个时钟周期取决于模块的设计和优化处理一个数据项。 如果模块设计为非阻塞且具有足够的吞吐率它将能够连续不断地处理流入的数据项每处理完一个就准备接收下一个。 如果数据到达速度超过模块处理能力或者模块设计中存在阻塞操作可能需要引入缓冲机制或调整设计以确保数据可以被有效处理。 4. 进一步探讨 do-while 在这个《Vitis HLS 学习笔记--AXI_STREAM_TO_MASTER-CSDN博客》博文中有一段示例代码如下 ...void getinstream(hls::streamtrans_pkt in_stream,hls::streamdata out_stream, hls::streamint out_counts) {int count 0;trans_pkt in_val;do { #pragma HLS PIPELINEin_val in_stream.read();data out_val {in_val.data, in_val.last};out_stream.write(out_val);count;if (count MAX_BURST_LENGTH || in_val.last) {out_counts.write(count);count 0;}} while (!in_val.last); }void example(hls::streamtrans_pkt inStreamTop, ap_uint64 outTop[1024]) { #pragma HLS INTERFACE axis register_mode both register port inStreamTop #pragma HLS INTERFACE m_axi max_write_burst_length 256 latency 10 depth 1024 bundle gmem0 port outTop #pragma HLS INTERFACE s_axilite port outTop bundle control #pragma HLS INTERFACE s_axilite port return bundle control#pragma HLS DATAFLOWhls::streamdata, DATA_DEPTH buf;hls::streamint, COUNT_DEPTH count;getinstream(inStreamTop, buf, count);streamtoparallelwithburst(buf, count, outTop); } 软件层面的 do-while 循环它实际上映射了一个硬件状态机的概念。 而这里的循环最重要的功能就是实现对 count 变量的操作。count 被初始化为 0 后就进入状态机中执行直到 count MAX_BURST_LENGTH || in_val.last 条件满足输出 out_counts被再次清零。 然而清零后并不意味 do-while 循环终止这段“代码”代码将会继续执行没有终点。 5. 总结 example_2在硬件中可以被设计为连续处理数据的模块尽管其代码表面上看只处理一次数据。重要的是要理解硬件设计和软件逻辑之间的差异硬件模块可以被设计为重复触发以连续处理数据流而不仅仅是单个数据项。
http://www.dnsts.com.cn/news/200139.html

相关文章:

  • 环球国际网站建设检察门户网站建设情况
  • 深圳市保障房申请网站阳江 网站开发
  • 重庆营销网站建设平台安监局网站做模拟
  • 网站做系统叫什么名字服务器网站备案
  • 网站建设目标定位数据查询插件 wordpress
  • 网站建设陆金手指科捷14wordpress the7 4..4.8
  • 网站备案 域名过期青海互动网站建设
  • 化学商城网站建设杭州网站搭建公司
  • 企业网站公众号安徽建设工程信息网查
  • 做网站需要icp经营许可证山东省建设公司网站
  • 沈阳网站设计推广云服务器搭建wordpress
  • 上海网站建设 亿速软件app下载免费
  • 做网站如何避免商标侵权全国统一信息查询平台
  • 有哪个网站教人做美食爱站网长尾
  • 个人建站建设长沙电商网站
  • 做的好的手机网站有哪些工信部网站备案通知
  • 中国视觉设计网站网站代码怎么查看
  • 电大网上作业代做网站应用商店wordpress
  • 建网站做外贸wordpress theme
  • 公司网站建设网站七台河做网站
  • 广西seo网站目前网络最好的挣钱平台
  • 公司网站建设全包推广手段有哪些
  • 如何做慕课网站网站开发安全小贴士
  • 深圳做网站商wordpress文章分享到QQ空间
  • 英国男女做那个视频网站如何制作网页快捷方式
  • 做视频网站什么平台好搜索引擎谷歌入口
  • 网站开发的过程中遇到的难题微信公众平台高级开发
  • 深圳做营销网站的公司简介网络推广是网络营销的基础
  • 出口手工艺品网站建设方案wordpress美化导航菜单
  • 室内装饰设计网站的网站