【LabVIEW FPGA入门】FPGA中的数据流

        LabVIEW 以数据流方式执行代码。 当节点的所有输入上都存在数据时,该节点就会执行。 当节点完成执行时,节点的输出将数据传递到下游的下一个节点。 LabVIEW FPGA 使用三个组件来维护这种数据流范例。

         节点具有与其功能相对应的逻辑

        同步,该组件记录函数的输出,以便将逻辑与时序不确定性隔离

        启用链,附加逻辑通过验证输入和输出来协调数据流

启用链

        启用链是LabVIEW添加至FPGA代码的附加逻辑,用于强制执行FPGA的数据流。启用链包含两个部分:

  • 与程序框图上的实际数据流并行运行的一组寄存器。启用链的此部分仅位于单周期定时循环的外部。
  • 强制执行单周期定时循环内部数据流的隐式启用信号该信号扇出包含状态保持元素的循环内部的全部节点。

数据流编程概述

        数据流编程模型与用 C 等语言实现的控制流模型形成对比。

        由于自上而下的顺序编程方法,用 C 编写的应用程序在映射到并行硬件时具有固有的局限性。相反,在数据流模型中,框图上的节点相互连接以表达逻辑执行流,并且可以使用它们轻松地表达并行性。当框图节点接收到所有必需的输入时,它会生成输出数据并将该数据传递到数据流路径中的下一个节点。数据通过节点的移动决定了框图上功能的执行顺序。

        LabVIEW数据流编程范例允许LabVIEW执行系统在不同线程中运行两个循环。在许多基于文本的编程语言中,您必须显式创建和处理线程。

L        abVIEW 还提供特殊结构,将代码映射到并行硬件资源以实现显式线程。例如,一种这样的结构是定时循环。当定时循环中包含的代码在双核或多核系统上运行时,将创建一个唯一的线程。下图演示了两个定时循环如何创建两个独特的线程,这两个线程可以在多核系统的两个独立核心之间进行平衡。

        对于 FPGA,不存在线程概念,因此循环结构在 FPGA 结构上保留空间并作为独特的处理器内核执行。

        总之,由于数据流编程语言本质上是并行的,因此开发人员可以创建隐式并行的应用程序。编程语言的这一特性意味着开发人员无需成为多核处理器和 FPGA 等并行硬件的低级复杂性方面的专家即可获得性能优势 - 语言本身有助于代码的并行化。

 

FPGA内的数据流

        LabVIEW以数据流的方式执行代码。当所有输入都有数据时,节点才会执行。当节点完成执行时,节点的输出将数据传递给下游的下一个节点。

 

单周期定时循环外的数据流

        LabVIEW以数据流的方式执行代码。当数据在节点运行所需的全部输入端就绪时,节点开始执行。节点执行结束后,节点输出传送数据至下一节点。下列示意图显示了一个要在单周期定时循环外部实现布尔函数的FPGA硬件的范例。

1378

        启用链确保FPGA逻辑按照其在LabVIEW程序框图中的顺序执行。示意图显示了函数位于单周期定时循环外部时,布尔函数转换为FPGA逻辑的过程。下列示意图的函数部分显示了程序框图上相对于“取负数”函数的布尔逻辑。启用链部分包含额外的同步寄存器,仅在时钟的上升沿输出数据。

        下列示意图给出了一个执行算法操作的FPGA硬件的范例。

1378

        根据启用链的系统开销,每个函数或VI至少占用一个时钟周期。某些函数(例如,模拟输入运算)将占用几百个时钟周期。具体取决于运算的复杂程度及硬件限制。

单周期定时循环内的数据流

        放置在单周期定时循环内部的节点不包含启用链的寄存器部分。如排除启用链的系统开销,FPGA的整体空间使用量将有所下降。因为不再需要用于启用链的触发器。同样由于不再存在启用链,单周期定时循环内的所有运算均可在一个时钟周期内完成。但某些节点(例如,存储器方法节点或FFT Express VI)需要大于一个时钟周期的执行时间,因此该节点的输出要等待至单周期定时循环的下一次迭代时才有效。获取有效数据所需的时钟周期数量为节点的延时。

隐式启用信号对定时性能的影响

        单周期定时循环内的隐式启用信号扇出程序框图内的全部触发器。LabVIEW将门控与单周期定时循环相关的时钟,直至隐式启用信号被移除。该扇出的额外连线系统开销将限制大型设计的定时性能。如设计包含独立于程序框图上其他节点运行的单周期定时循环,请考虑从上述循环中移除隐式启用信号以改善定时性能。

        注:移除隐式启用信号的支持随终端变化。关于移除隐式启用信号支持的详细信息,见终端硬件文档。

下文描述了一个包含单周期定时循环代码的程序框图。

1378

下列示意图为上述程序框图代码的VHDL表示。

1378

注意,默认情况下,隐式启用信号扇出包含状态保持元素(例如,触发器或存储器块)的单周期定时循环的每个节点。该连线的系统开销限制了某些应用的定时性能。

下列示意图为移除了隐式启用信号的同一VHDL表达。

1378

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/465970.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

直播预告 | 同立海源联合景达生物、星奕昂生物共话“NK细胞药物研发进展及工艺开发策略”!

2023年,免疫细胞治疗领域的产业化步伐显著加快,多种新型细胞治疗药物的上市进程不断推进,为市场带来了多元化和差异化的发展机遇。通用型免疫细胞产品、TCR-T、TIL等创新药物的涌现,不仅丰富了治疗选择,还推动了整个行…

redis学习-redis介绍

目录 1.redis介绍 2.redis常用命令(可以在官网的命令中查看redis的所有命令) 2.1终端命令 2.2 redis通用命令 2.3五大基本类型的命令以及特殊情况分析 (导航) 3.事务 4. redis实现消息订阅 5. redis的两种持久化策略 …

第二证券|换手率高代表什么?

换手率是衡量一只股票交易是否活泼的重要目标之一,换手率越高阐明该股交易越活泼,换手率越低阐明该股越不活泼,其所呈现的方位不同,其含义也有所不同。 当股票经过长期的上涨之后,在高位呈现较高的换手率时&#xff0c…

使用ChatGPT高效完成简历制作[中篇2]-有爱AI实战教程(九)

演示站点: https://ai.uaai.cn 对话模块 官方论坛: www.jingyuai.com 京娱AI 一、导读: 在使用 ChatGPT 时,当你给的指令越精确,它的回答会越到位,举例来说,假如你要请它帮忙写文案&#xff0c…

算法——贪心

「贪心的本质是选择每一阶段的局部最优,从而达到全局最优」 贪心无套路 1. 分发饼干 贪心策略: (1)局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩 &#xff08…

智能化代采系统在供应链管理中的应用探讨

随着信息技术的飞速发展和智能化技术的应用,供应链管理领域迎来了巨大的变革。智能化代采系统作为一种先进的供应链管理工具,正在逐渐改变传统的采购和供应链管理模式。本文将从系统集成与优化、数据分析与预测、智能采购决策、供应商管理、风险控制与优…

[HackMyVM] Quick

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Un…

总说上下文切换耗性能,那他到底耗了多少性能?

大家好,我是「云舒编程」,今天我们来聊聊上下文切换性能消耗。 文章首发于微信公众号:云舒编程 关注公众号获取: 1、大厂项目分享 2、各种技术原理分享 3、部门内推 一、前言 众所周知,操作系统是一个分时复用系统&…

天童美语开学季|开启“热辣滚烫”的新学期

新学期伊始,孩子们即将踏入一个充满挑战和机遇的学习环境。在这个关键时刻,学校和家庭需要更加紧密地协调合作,以确保孩子们能够得到充分的支持和帮助,顺利成长。    在假期生活分享中开启新学期第一课      寒假里孩子们…

深度学习 精选笔记(12)卷积神经网络-理论基础2

学习参考: 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增),以达到集多方教程的精华于一文的目的。 ③非常推荐上面(学习参考&#x…

【leetcode】二叉树的前序遍历➕中序遍历➕后序遍历

大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 1. 二叉树的前序遍历2. 二叉树的中序遍历3. 二叉树的后序遍历 1. 二叉树的前序遍历 点击查看题目 根…

保护IP地址安全:维护网络安全

在今天的数字化时代,IP地址是互联网通信的基础,也是网络安全的重要组成部分。保护IP地址安全至关重要,因为恶意攻击者可能利用IP地址进行网络入侵、数据泄露、服务拒绝等攻击。因此,制定有效的保护措施,维护IP地址的安…

【算法】火柴排队(离散化、归并排序)

涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。现在将每盒中的火柴各自排成一列,同一列火柴的高度互不相同,两列火柴之间的距离定义为: ∑i(ai−bi)^2,其中 ai 表示第一列火柴中第 i个火柴…

网络工程师之路由交换协议篇

网络工程师之路由交换篇 路由交换静态路由RIPOSPFISISBGP 以下均为个人笔记,摘录到csdn做备份 路由交换 路由 优先级 RIP 100 OSPF ASE 150 OSPF NSSA 150 IBGP 255 EBGP 255 IS-IS 15 OSPF 10 静态 60 默认开销是0 路由算法类型 D-V: 距离矢量算法 RI…

正信晟锦:老板拖工资怎么说比较合适

在职场中,老板拖欠工资是一个敏感而棘手的问题。面对这一情况,员工应保持冷静与专业,采取合适的方式表达自己的合理关切,并寻求问题的解决。 私下与老板进行沟通。选择一个适当的时机,以尊重和理解的态度开场&#xff…

【小黑送书—第十三期】>>《ARM汇编与逆向工程 蓝狐卷 基础知识》(文末送书)

与传统的CISC(Complex Instruction Set Computer,复杂指令集计算机)架构相比,Arm架构的指令集更加简洁明了,指令执行效率更高,能够在更低的功耗下完成同样的计算任务,因此在低功耗、嵌入式等领域…

FPGA高端项目:FPGA基于GS2971+GS2972架构的SDI视频收发+HLS多路视频融合叠加,提供1套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案的SDI接收发送本方案的SDI接收图像缩放应用本方案的SDI接收纯verilog图像缩放纯verilog多路视频拼接应用本方案的SDI接收HLS图像缩放HLS多路视频拼接应用本方案的SDI接收OSD多路视频融合叠加应用本方案的S…

Unity中PICO中手柄按键返回值

文章目录 前言一、我们看一下每个按键返回值获取按键返回值的方法 二、我们实现一个左摇杆控制平滑移动的功能1、创建一个左摇杆控制移动的脚本2、传入XR Origin对象,并且定义一个公开变量控制移动速度3、获取到摇杆是否移动,以及移动的偏移量4、如果摇杆…

一个简单的Vue2例子讲明白拖拽drag、移入dragover、放下drop的触发机制先后顺序

几个小细节说明: 执行顺序dragstart→dragover→drop被拖拽的物体必须要设置draggable"true"(实际上只需要draggable就可以了,默认就是true),否者默认一般是不允许被拖拽的(图片除外)…

WEB前端 HTML 列表表格

列表 有序列表 使用“ol”创建“有序列表”&#xff0c;使用“li”表示“列表项” <body><ol type"1"><li>列表1</li><li>列表2</li><li>列表3</li></ol><ol type"A"><li>列表A<…