LabVIEWCompactRIO 开发指南37 在第三方模拟器中执行

news2024/12/24 20:42:47

LabVIEWCompactRIO 开发指南37

在第三方模拟器中执行

如果需要验证时序和功能,在将LabVIEW FPGA VI编译到硬件之前,可以与三款第三方仿真器进行交互:MentorGraphicsModelSim(LabVIEW2013及更早版本)、MentorGraphicsQuesta和XilinxISim。可以使用这些模拟器的设计验证和调试功能来调试功能行为和基于时序的错误。要将ISim与LabVIEW FPGA模块配合,应熟悉HDL仿真器和VHDL,这是编写测试台所需的。现在可以选择使用VHDL或LabVIEW为ModelSim编写测试工作台。白皮书Cycle-AccurateCoSimulationwithMentorGraphicsModelSim提供了与ModelSim接口的教程。

在硬件中执行

在仿真模式或桌面环境中进行调试可以节省时间,但确实会出现需要将代码编译到FPGA目标,然后实时运行和调试的情况。在这些情况下,必须将其他代码写入应用程序,以测试和验证应用程序的核心功能。调试完成后,通常会删除或禁用此代码。NIFPGA Debug Librar组件提供了一组简单函数,可实时地调试LabVIEW FPGA应用程序。除了执行常见的简单任务外,这些函数还提供模块化编程接口,帮助快速构建高级调试结构。

图5.40.高级I/O计数器

优化LabVIEW FPGA代码

在LabVIEWFPGA中使用常规的LabVIEW编程技术时,会立即获得基于FPGA的方法的优势。有时,可能需要在以下一个或多个相关维度上进一步推动系统:吞吐量、时序、资源和数值精度。

图5.41.借进一步推动系统实现吞吐量、定时控制、资源利用或数值精度

这些维度通常是相互关联的,因此使用其中一个维度改进设计有时会对其他维度产生积极影响,但更多时候是以牺牲它们为代价的。了解这些维度以及它们之间的关系非常重要,因此本指南在下面列出了一些基本定义,并在后面的章节中探讨了相关技术。

吞吐量

吞吐量是DSP和数据处理应用的关键问题。它以每单位时间的工时来衡量。在大多数使用NIRIO硬件的应用中,工作是指处理或传输样本,因此其吞吐量通常以每秒样本或某种等效形式(如字节、像素、图像、帧或每秒操作数)来测量。快速傅里叶变换(FFT)是吞吐量的处理函数的一个示例,其吞吐量可以以FFT、帧或每秒样本数来测量。

High-PerformanceRIO Developer’s Guide更深入地讨论了影响吞吐量的因素,以及一套技术,可帮助在创建LabVIEW FPGA应用程序时实现更高的吞吐量。

定时控制

时序控制是指规定和测量系统中感兴趣事件之间的时间量的能力。使用LabVIEW FPGA时,设计会转换到硬件电路,因此可以创建具有快速时时响应且抖动极小的设计。控制应用通常需要保证系统采样和控制信号更新之间的最大响应时间。此时间量称为延迟。在数字协议应用中,定时规范可以指与正在传输的数据或信号相关的事件之间的目标、最小或最大时间。精确的定时控制对于控制和数字协议应用领域都很重要。

High-PerformanceRIO Developer’s Guide,更深入地讨论了延迟以及一套技术,可帮助在使用LabVIEW FPGA时实现更低或更精确的定时响应。

资源利用率

FPGA的资源数量有限,并且通常比处理器或微控制器在存储和存储器元件方面受到更多的限制。能够将设计融入FPGA是整个开发过程的硬约束。FPGA也由不同类型的资源组成,因此用完一种类型的资源可能会阻止在应用程序中取得进展。

更重要的是,资源利用率会对其他性能维度产生巨大影响,尤其是吞吐量和满足时间限制。请参阅High-PerformanceRIO Developer’s Guide,了解组成FPGA的不同资源的描述,以及如何平衡这些资源以使设计适合并提高性能。

数值精度

数值精度问题围绕着是否有足够的数字或位,以便应用程序可以正常工作。数值精度不足被认为是必须避免和测试的功能问题。用于表示系统变量的位数(包括用于整数的位数、定点数的整数和小数部分以及浮点数的动态范围)可能会对应用程序的性能和资源利用率产生重大影响,因此应考虑这一点。

编译LabVIEW FPGA代码

LabVIEW FPGA编译过程已在本章第一部分中介绍。此过程最多可能需要几个小时,具体取决于设计有多复杂。本节提供了一些减少编译时间和理解编译报告的提示。

减少编译时间

NI提供了多种用于编译LabVIEW FPGA代码的选项。在LabVIEW项目中创建LabVIEW FPGA构建规范时,会在类似图5.42的对话框中看到选项。

图5.42可用于选择编译服务器的几个选项

使用本地编译服务器-默认情况下,可以在本地开发电脑上进行编译。这是编译小型VI的可行解决方案,但如果担心编译时间过长,则应考虑以下其他选项。

连接到网络编译服务器(单个服务器)-可以选择将编译卸载到网络上基于Windows或Linux的单个计算机。事实证明,在Linux机器上编译与在Windows机器上编译时,编译时间会减少。

连接到网络编译服务器(场)—如果在团队中工作,则可以使用LabVIEWFPGA
Compile Farm Toolkit来设置包含多个工作程序的编译场。该工具包可帮助创建现场服务器来管理FPGA编译。可以根据需要连接任意数量的工作计算机,中央服务器软件通过并行编译和队列来管理。如果无法将云技术用于项目,这是减少编译时间的有效方法。

连接LabVIEW FPGA编译云服务—此服务可帮助使用最新的专用高RAM高端计算机在Linux上编译FPGA VI。根据LabVIEW FPGA VI的大小,可能会注意到,与在Windows桌面上编译相比,编译时间大大缩短。在云中编译还增加了并行编译许多VI的能力。

阅读编译报告

编译FPGA VI后,LabVIEW显示一个编译报告,其中包含有关应用程序整体大小和速度的信息。此信息可以帮助决定如何在必要时优化代码。

请注意,编译器算法不是确定性的,即使不更改VI或编译器设置,也可能从一次编译到下一次编译获得不同的结果。如果编译失败,可以更改编译器设置,方法是右键单击LabVIEW项目中的构建规范,然后从上下文菜单中选择属性。在“属性”页面中,选择Xilinx Options.。

VI大小

成功编译对话框中显示的最终设备利用率(映射)报告提供有关使用的切片寄存器、切片查找表和乘法器数量以及使用的块RAM量的信息。建议的最佳实践是将最终应用中的整体FPGA使用率保持在90%以下。如果将来升级软件并需要重新编译VI,可能会发现不同版本的Xilinx编译工具链或多或少地使用结构。在这种情况下,需要一些额外的空间来使用。

图5.43.最终设备利用率报告

VI速度

“成功编译报告”对话框还包含有关应用程序时钟速率的信息。

■请求—显示已编译的FPGA VI运行的时钟速率。默认设置为40MHz。

■最大值—显示FPGA VI的理论最大编译速率。

图5.44.最终时间报告

如果最大速率慢于请求的速率,则会产生错误,编译过程将停止。必须将应用程序修改为最大速率等于或大于请求的速率。使用SCTL时的一个常见问题是请求的速率超过理论最大值。

需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。附件中的资料这里无法上传,可去公司网站搜索下载。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL】MySQL主从同步延迟原因与解决方案

文章目录 一、MySQL数据库主从同步延迟产生的原因二、关于DDL和DML三、主从延时排查方法四、解决方案3.1 解决从库复制延迟的问题:3.2 MySql数据库从库同步其他问题及解决方案 一、MySQL数据库主从同步延迟产生的原因 MySQL的主从复制都是单线程的操作,…

JS CSS 关于 Shadow dom 的用法

一、什么是 Shadow DOM 你是否好奇过,浏览器自带的元素的样式是如何实现的,例如 video、input ,又或者在某些网站中看到一些非浏览器自带且没见过的元素? 如果你打开 F12 查看定位该元素的信息,你会发现啥都没看到&am…

Spring Cloud Alibaba 完整使用及与各中间件集成

目录 前言 官方中文文档 使用版本 spring 中间件 使用到的组件与功能 环境安装 虚拟机 nexus nacos 集成过程 工程搭建 父工程搭建 子工程 服务集成 nacos 配置文件: 服务注册与发现-discovery 服务注册 启动 服务发现 测试 配置管理-config…

网络安全是一个好专业吗?

前言 网络安全作为一个专业领域,在当今数字时代正变得越发重要和关键。无论是企业还是个人,面对着越来越频繁的网络威胁和攻击,网络安全领域的专业人员扮演着至关重要的角色。那么,从一个资深网安工程师的角度来看,网…

nest context.switchToHttp().getRequest() 获取不到user

把你该死的Public注释掉,这玩意开了后不走JWT验证token,所以拿不到那该死的user。

pdf怎么合并在一起?软件操作更高效

PDF格式已经成为了许多文档和表格的首选格式。然而,当你需要合并多个PDF文件时,可能会遇到一些麻烦,在本篇文章中,我们将向您介绍一种简单易用的方法来合并PDF文件。 以下是可以用来合并PDF文件的软件: - PDF转换器&a…

当你在浏览器中输入 URL 时会发生什么?

下面的图解说明了步骤。 1.Bob 在浏览器中输入 URL 并按下 Enter。在这个例子中,URL 由 4 部分组成: 🔹 协议 - http://. 这告诉浏览器使用 HTTP 发送连接到服务器。 🔹 域名 - example.com. 这是站点的域名。 🔹 路径…

C++STL— priority_queue的使用与模拟实现

priority_queue的使用 priority_queue的介绍 优先级队列默认使用vector作为其底层存储数据的容器,在vector上又使用了堆算法将vector中的元素构造成堆的结构,因此priority_queue就是堆,所有需要用到堆的位置,都可以考虑使用prio…

极米十年巅峰之作极米Z7X,能带走的百吋大屏

近年来,随着人们娱乐消费的升级,家用投影仪消费市场不断扩大,增长速度也非常可观。据IDC最新发布的数据显示,2022年中国投影机市场总出货量505万台,同比增长7.4%。其中,智能投影机市场(搭载有OS…

ChatGPT:免费可用 ChatGPT 网页版(免登录、免注册、不限制使用次数)

一、什么是chatgpt ChatGPT是一种基于GPT-3(Generative Pre-trained Transformer 3)的聊天机器人。GPT-3是由OpenAI公司开发的自然语言处理模型,具有非常强的语言理解和生成能力。 ChatGPT使用了GPT-3的预训练模型,在此基础上进行了微调和优化&#xf…

机器学习:基于Apriori算法对中医病症辩证关联规则分析

系列文章目录 作者:i阿极 作者简介:Python领域新星作者、多项比赛获奖者:博主个人首页 😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒关注…

【Linux】进程间通信的有关基础概念

在以前我们使用多进程时,我们一般都是让父子进程分别执行各自的代码,进程之间几乎没有通信,但是实际过程中,进程间的通信是十分重要的的一件事情,一个复杂的程序一般都是有多个进程相互通信,协调进行来完成…

重磅发布 |《2023年消费品企业数字化转型调研白皮书》

数字经济时代,数字化转型对于消费品企业越来越重要,已成为消费品企业增加经济效益、提升竞争力的重要策略之一。随着数字化转型进入深水区,越来越多涉及到商业模式、业务模式和产业链生态的创新变革开始出现,给消费品企业带来了一…

【UE】windows包蓝图分辨率设置

【UE】windows包蓝图分辨率设置 屏幕模式(SetFullscreenMode) 模式说明全屏可以任意修改分辨率的全屏窗口化全屏适配显示器分辨率的全屏窗口化窗口化 分辨率修改方法(SetScreenResolution) 控制台修改分辨率方法(ExecuteConsoleCommand) 命令 &#xf…

股票量化分析工具QTYX使用攻略——挖掘主升浪中的人气个股(更新2.6.5)

搭建自己的量化系统 如果要长期在市场中立于不败之地!必须要形成一套自己的交易系统。 行情不等人!边学习边实战,在实战中学习才是最有效地方式。于是我们分享一个即可以用于学习,也可以用于实战炒股分析的量化系统——QTYX。 QTY…

如何有效运用测评自养号来提升阿里国际店铺权重

在阿里国际平台上提升销售并非易事,但是借助强大的营销策略和有效的自养号技术,你可以大幅度提升你的店铺销量。以下是一些具体的步骤和技巧。 1. 数据分析和市场调研 首先,要了解你的目标客户群体和市场趋势。分析你的销售数据&#xff0c…

chatgpt赋能python:Python编程教程:使用Python生成0到100的列表

Python编程教程:使用Python生成0到100的列表 Python是一种流行的编程语言,因其简单易学、强大而受到广泛欢迎。本文将介绍如何使用Python编程语言来生成0到100的数字列表。 什么是Python? Python是一种高级编程语言,由Guido van Rossum 在…

PHP+vue高校教学考研资料分享系统

运行环境:phpstudy/wamp/xammp等 开发语言:php 后端框架:Thinkphp5 前端框架:vue.js 服务器:apache 数据库:mysql 数据库工具:Navicat/phpmyadmin用户首次登录系统需要注册一个用户,用户在登陆平…

day4-项目软硬件环境分析和通讯结构体

硬件部分 fs4412开发板 3*zigbee模块 摄像头 gprs(用于通讯) fs4412部分 3个USB接口分别用于zigbee协调器、usb摄像头、gprs模块 陀螺仪与加速计作为数据采集端,发送到HTML USB-OTG用于安卓下载 电位器用于测量电压 蜂鸣器基于PWM来…

【LeetCode中等】二进制矩阵中的最短路径

给你一个 n x n 的二进制矩阵 grid 中,返回矩阵中最短 畅通路径 的长度。如果不存在这样的路径,返回 -1 。 二进制矩阵中的 畅通路径 是一条从 左上角 单元格(即,(0, 0))到 右下角 单元格(即,(…