上期内容:AI Engine到底是什么?

众所周知,标准C或C++代码是没有HDL代码的并行性和时序性的,那么如何在C代码中插入寄存器呢?Vivado HLS提供了IP库,这些IP库使得HLS可直接从相应的C代码推断出对应的Vivado中的IP。其中,这个IP库里就包含了移位寄存器。移位寄存器本质上就是多个D触发器级联构成的触发器链,具体在RTL综合时如何映射到Xilinx FPGA上,可查看这篇文章(Vivado综合属性:SRL_STYLE)。在C代码中插入寄存器时,需要添加头文件ap_shift_reg.h,如下图所示。这个案例中移位寄存器的深度为4(由DEPTH确定),这可以理解为4个寄存器级联。输出q取0号寄存器(由ADDR确定)输出。定义移位寄存器时,需要声明其为static,这使得移位寄存器初始值为0。ap_shift_reg的第一个参数为数据类型,第二个参数为移位寄存器的深度,如下图第5行代码所示。在第8行代码中,使用了移位寄存器类型的方法shift,该方法同时实现移位寄存器的写入、移位和读出功能。在这里,将d[i]写入移位寄存器、移位、将0号寄存器的值输出给q[i]是同时执行的。为进一步理解,我们看下面这张图。由上至下三部分分别对应数组d、深度为4的移位寄存器和不同ADDR值时数组q获得的数据。可以得出结论,数组q中一定包含ADDR+1个0。结合C/RTL协同仿真,如果ADDR为1,仿真波形如下图所示。注意看图中的q_V_we0信号,其高脉冲表明了数据有效。可见仿真结果与上图的结果是一致的。最后,我们看看生成的Verilog代码的关键部分,如下图所示。第29到第33行是对移位寄存器进行初始化,初始值为0;第35到第43行,移位寄存器执行写入和移位功能;第45行,执行读出功能。这是很规范的移位寄存器的描述方式。

ACAP不可不知的几个基本概念

HLS IP Library?HLS Math Library:csim ?C/RTL co-sim(2)HLS Math Library:csim ?C/RTL co-sim(1)如何复用关键寄存器的位置信息部分可重配置都生成哪些.bit文件VIO你用对了吗Device视图下能看到什么Schematic视图下能看到什么学习笔记:神经网络模型学习笔记:ReLU的各种变形函数学习笔记:神经元模型(2)学习笔记:神经元模型(1)学习笔记:深度学习之“深”学习笔记:深度学习之“学习”学习笔记:人工智能、机器学习和深度学习都是pin,有什么区别都是net,有什么区别如何快速查找目标cell2019文章汇总

文 | Lauren 图 | Lauren

Copyright @ Lauren的FPGA

转载事宜请私信 | 获得授权后方可转载

如何在代码中让按钮高亮_如何在C代码中插入移位寄存器相关推荐

  1. 怎样在表格中选出同一类_如何在excel表格中同一个框选择下一行 - 卡饭网

    在excel表格中怎样设置选择下拉列表? 在excel表格中怎样设置选择下拉列表? 在excel表格制作中,经常会遇到固定选项输入,例如性别( 男  女),婚否(是, 否),在制作考勤表的时候也可以利 ...

  2. 如何在代码中让按钮高亮_各种博客的代码高亮是如何实现的

    本文来自 「Vue虚拟实验」的小伙伴  余xiaoy,在做 Lovue 项目的时候,他负责了代码高亮显示功能,目前实现了代码高亮.主题切换.某行代码特殊显示.显示行号等功能,效果如下. 下面介绍如何通 ...

  3. ux设计中的各种地图_如何在UX设计中使用颜色

    ux设计中的各种地图 Color is the mother tongue of the subconscious. 颜色是潜意识的母语. - Carl Jung -荣格 Color has more ...

  4. 如何提取edit control中输入的数据_如何在Power Query中提取数据——列表篇(1)

    表名为列表,第一步骤名称为源 (一)从头开始提取 1. 获取列表第一个 List.First(list as list, optionaldefaultValue as any)as any 返回列表 ...

  5. excel中 复制工作表_如何在Excel 2013中轻松移动或复制工作表

    excel中 复制工作表 There may be times when you want to create a new Excel worksheet based on an existing w ...

  6. wpfbutton按钮禁用_wpfbutton按钮禁用_如何在WPF窗口中隐藏关闭按钮?

    我只是遇到了类似的问题,乔·怀特的解决方案在我看来似乎简单而干净.我重用了它并将其定义为Window的附加属性 public class WindowBehavior { private static ...

  7. word中如何插入 符号_如何在Word 2013中使用符号

    word中如何插入 符号 Hundreds of symbols that are not available on your keyboard are provided in Microsoft W ...

  8. scala中map添加值_如何在Scala Map中反转键和值

    scala中map添加值 A Map is a data structure that stores data as key: value pair. 映射是一种将数据存储为键:值对的数据结构. Sy ...

  9. 如何在cad中导入谷歌地图_如何在Google地图中避开收费公路

    如何在cad中导入谷歌地图 No one likes to pay to be able to drive on a specific road, especially if you're just ...

最新文章

  1. Java学习总结:10
  2. jQuery中slice()方法用法实例
  3. php 动态显示数字,php – 如何动态创建具有指定数字的图像?
  4. c++ 顺序容器list的一个例子
  5. 《信息学奥赛一本通提高篇》第6章 组合数学
  6. 跨多个交换机VLAN的配置方案设计(H3C)
  7. 将本地代码同步到远程github上
  8. php 阿里云 批量 单个 发送短信 (拿来即用)
  9. Failed to start component [Connector[HTTP/1.1-20001]]报错
  10. 3lian网页素材网站
  11. PC端 宽高自适应问题
  12. 谷歌浏览器设置打开新标签页为指定网页?
  13. 如何用Diffusion models做interpolation插值任务?——原理解析和代码实战
  14. 软件产品检测测试报告找谁做?出测试报告机构推荐
  15. C++中的system(pause);
  16. 人机大战5个误区:人类没那么差阿尔法狗不会防水
  17. 2019-06-04 9个接私活的网站,你有码,我有钱
  18. 学生DW网页设计作业成品 简单的学校网站制作与实现 HTML+CSS+JS
  19. 甲乙两列客车的长分别为150m和200m,它们相向行驶在平行的轨道上,已知甲车上某乘客测得乙车在他窗口外经过的时间为10秒,那么,乙车上的乘客看见甲车在他窗口外经过的时间是()
  20. Java基础语法-条件语句

热门文章

  1. python散点图拟合曲线-python曲线拟合
  2. python中文编辑器推荐-python文本编辑器是什么
  3. python手机版怎么运行项目或脚本-python可以在手机上运行吗
  4. python单词意思-python 前面几个单词含义
  5. python实现文件下载-Python实现http文件下载
  6. 学python语言用什么软件-只会用 Python 的程序员应该学什么语言?
  7. python代码案例详解-Python运算符重载详解及实例代码
  8. python爬虫毕业设计题目-Python爬虫面试题170道:2019版【1】
  9. python能做什么游戏ll-学霸的黑科技系统
  10. spring中@Value的注解解析