第2章:LabVIEW FPGA未来发展方向《LabVIEW ZYNQ FPGA宝典》
2.1:NI的LabVIEW FPGA未来战略部署
在展望NI公司的LabVIEW FPGA技术未来发展趋势之前,让我们先来回顾一下LabVIEW与FPGA的技术发展历程,如图2-1所示。可以看出,NI公司的LabVIEW FPGA软件一方面是跟随Xilinx最新的FPGA硬件可持续发展,另外一方面则是发展自己的IP核,同时开发出IPNet,类似开源软件社区,构建一个完善的生态圈,NI以及客户都可以将实际的工程应用案例、IP核、算法放在IPNet上面共享共助。
图2-1:LabVIEW FPGA发展历程
NI正在加倍努力地开发LabVIEW FPGA及其相关的硬件产品,虽然LabVIEW FPGA已经帮助客户解决了很多FPGA技术难题,但是为了能够继续将FPGA技术提供给新的领域专家和工程师们使用,NI针对LabVIEW FPGA技术本身始终坚持以下几点:
- 对于一些由于编程和系统复杂程度原因而放弃考虑使用FPGA技术的工程师和科学家而言,为他们提供了一个可行方法。
- 跨越存在于顺序算法设计与并行FPGA实现之间的鸿沟。
- 通过抽象减轻实际数字设计的负担,使设计者能够关注更高层次、更为复杂的目标。
- 直观地表示仅仅适用于FPGA编程的并行、流水线、数据流设计方法。
在未来20年中,对更高层次抽象以及更好开发工具的需求是显而易见的,特别是FPGA实现在不断蚕食曾经被应用程序专用集成电路(ASIC)所主导的市场。LabVIEW FPGA和各种NI FPGA硬件平台将会继续在嵌入式系统和测试与测量中,和NI的产品一起继续成长-NI官网。
以上这段话是NI官方给出的答案,这里我们的结论是:NI的LabVIEW FPGA工具包会朝着两个方向发展,一是软件IP核算法的不断增加和更新,包括最新的5G算法、雷达仿真模型、电机模型、新型控制算法、CNN神经网络、自适应算法、多通道数字滤波器、人工智能、机器视觉算法等等;二是NI会持续推出基于Xilinx最新的FPGA芯片的RIO硬件平台,以适应越来越复杂的应用,将FPGA性能、参数、指标发挥到极致,将应用场合拓展到需要更高更强性能的领域,这类FPGA硬件会非常高端,甚至禁运。
2.2:神电测控My_FPGA未来发展方向(高中低端,走量,专注细分行业)
我们专注于通用型LabVIEW FPGA软件工具包的开发,FPGA硬件则交给客户自己定义。因此,我们未来的发展方向始终坚持的是My FPGA软件工具包IP核的开发,面向的客户群体则是需要能做项目或者产品走量,并且需要完善的软件和外设接口驱动IP的。通过图形化的LabVIEW方便客户自己集成,也就是更专注于细分行业,比如传统的工业自动化、运动控制、嵌入式开发、数据采集、信号处理、总线通信、物联网、边缘计算、人工智能、机器学习等需要FPGA注入新活力的领域。通常这类FPGA芯片性价比非常高,能够走量,可以实现传统MCU和MPU无法达到的性能。结合我们提供的My FPGA软件工具包里面的函数VI可以快速实现产品开发与原型验证。
我们在软件开发方面会投入更多的精力,主要细分为以下几类。
- LabVIEW FPGA Communication工具包,顾名思义就是FPGA通信接口软件,包括UART串口、CAN总线、USB2.0、USB3.0、千兆以太网UDP/TCP、万兆SFP+光纤TCP、SPI、IIC、VGA、HDMI、RTC、EEPROM、Flash,目前已经完成。本书会着重告诉大家如果使用LabVIEW自己一个人同时开发ZYNQ芯片里面的PS(ARM)和PL(FPGA)两部分的开发以及二者之间的通信和交互。
- LabVIEW FPGA Motion工具包,就是FPGA运动控制领域IP核,包括PID闭环控制算法、增量式编码器采集、SSI编码器采集、PWM脉冲生成、T型加减速、直线插补,多轴联合运动,目前已经完成。新增了带死区互补输出的PWM VI。
- LabVIEW FPGA DAQ工具包,就是FPGA数据采集软件,包括8位、12位、16位、24位AD/DA芯片接口驱动、SD卡存储、脉冲宽度测量等,已经开发完成。新增了32位ADC芯片采集驱动VI。
- LabVIEW FPGA Vision工具包,就是FPGA图像视觉软件,目前已经开发完成了图像采集、视频传输,后续会重点开发图像处理算法IP核,目前已经完成全部开发。
- LabVIEW FPGA Signal工具包,即FPGA信号处理软件,包括信号生成、信号滤波、FFT与逆FFT变换、极坐标转换、三角函数、陷波器、信号测量等,开发完成。新增了FPGA端的滤波器系数自动加载VI。
我们所开发的通用型My FPGA工具包都是围绕着FPGA芯片展开的,可以最大程度节省硬件开发成本。My FPGA软件工具包对于Xilinx FPGA芯片的硬件支持,我们分为以下3个阶段。
初级阶段:支持Spartan3E、Spartan6、Virtex5,目前已经开发完成。如图2-2所示。
中间阶段:支持ZYNQ和ARTIX7,已于2019年7月份全部完成。
高级阶段:支持Virtex7和KINTEX7,已经完成全部封装测试, 2019年10月完成。
提升阶段:支持LabVIEW直接对7系列FPGA芯片里面的PCIe DMA IP核进行开发。提供一整套完整的LabVIEW FPGA PCIe/PXIe软硬件解决方案,包括下位机PCIe DMA程序开发、中间层固件代码开发、上位机LabVIEW/C#/C++程序开发。2020年9月完成。
升华阶段:支持Xilinx ZYNQ芯片开发,也就是本书的重点内容。学完之后,用户能够自己独立自主的使用图形化的LabVIEW软件对ZYNQ芯片里面的PS(ARM)和PL(FPGA)程序开发,真正将芯片领域最难的SOC架构FPGA轻松拿下。
注意:以上所有芯片不限制封装、引脚数量和速度等级。这样用户就可以根据实际需求选择不同封装和资源的FPGA芯片,多达上百种。
图2-2:已经开发完成的My_FPGA支持的芯片列表
为了让客户更好的选择不同的FPGA芯片进行实际项目或者产品开发,我们将同一个系列里面不同的FPGA采取以下命名规则:芯片家族_具体型号_速度等级封装,例如本书我们重点用到的原子ZYNQ7020领航者开发板上的FPGA主芯片就是ZYNQ_XC7Z020_2CLG400,如图2-3所示。这样用户直接可以在LabVIEW里面选择对应的芯片,然后创建一个FPGA项目即可。一般FPGA芯片速度等级是2、3、4,我们取最常见的2和3,如果有用户需要用到4或者2L,也可以联系我们加进去。这本书重点讲解Xilinx的ZYNQ芯片程序开发,所以这里我们把所有ZYNQ家族的FPGA目标终端设备全部新建出来,右击“我的电脑”,然后选择新建“终端和设备”即可,对应的项目浏览器,如图2-4所示。
图2-3:已经开发完成的My FPGA支持的芯片-命名规则(ZYNQ)
图2-4:新建出来的My FPGA(ZYNQ)目标终端设备-项目浏览器
目前LabVIEW My FPGA ZYNQ Pro20工具包已经开发完成的ZYNQ配套案例程序多达100多个。为了方便讲解和演示,我们将ZYNQ范例程序分成PS(ARM)端例程和PL(FPGA)端例程两部分,其中,PL(FPGA)端的范例程序如图2-5所示,PS(ARM)端的范例程序如图2-6所示,但是二者内部是可以相互通信的,PS与PL的交互通信原理以及每个案例程序的编写过程、实现的功能可以参考后续第6~8章的实验详解部分。
图2-5:My FPGA工具包配套的ZYNQ里面的PL(FPGA)端案例实验程
(后续会持续补充)
图2-6:My FPGA工具包配套的ZYNQ里面的PS(ARM)端案例实验程
(后续会持续补充)
相关文章:

第2章:LabVIEW FPGA未来发展方向《LabVIEW ZYNQ FPGA宝典》
2.1:NI的LabVIEW FPGA未来战略部署 在展望NI公司的LabVIEW FPGA技术未来发展趋势之前,让我们先来回顾一下LabVIEW与FPGA的技术发展历程,如图2-1所示。可以看出,NI公司的LabVIEW FPGA软件一方面是跟随Xilinx最新的FPGA硬件可持续发…...

苹果电脑维护工具:CleanMyMac X让你的Mac焕发新生!
在我们的数字生活中,苹果电脑(Mac)已成为不可或缺的一部分,无论是为工作披星戴月,还是为娱乐畅游云端。但是,就像任何长时间运行的机器一样,Mac也可能会因为积累的文件和不必要的数据而开始变慢…...
MySQL2 DML数据操纵语言和SQL约束
DML和SQL约束 SQL-DML1.添加数据2.修改数据3.删除 TRUNCATE和DELETE的区别:SQL-约束Primary Key创建主键约束单列主键联合主键**验证主键约束**删除主键约束设置主键自增AUTO_INCREMENTdelete和truncate删除后,主键的自增 SQL-唯一约束UNIQUE创建唯一约束…...

Ubuntu 20.04 中安装 Nginx (通过传包编译的方式)、开启关闭防火墙、开放端口号
文章目录 前言一、安装包下载二、上传服务器并解压缩三、依赖配置安装四、生成编译脚本五、编译六、查看是否编译完成七、开始安装八、查看是否安装成功九、设置为开机自启动 前言 参考大佬文章并在基础上做了点修改,发篇文章记录下 防止下次遇到。 参考文章&#…...

解决no main manifest attribute错误
文章目录 0. 背景1. java程序如何运行2. jar是什么3. java -jar test-1.0-SNAPSHOT.jar:4. 添加执行入口 0. 背景 在开发Spring boot项目的时候,有时候会需要使用java -jar test-1.0-SNAPSHOT.jar指令来运行开发的java应用,但是很不幸&#…...

002 | 常见的金融量化指标计算
金融量化指标 在金融量化分析中,常用的指标可以帮助我们判断市场走势、评估风险和收益,以及构建交易策略。以下是一些常见的金融量化指标及其计算方法的详细教程,包括公式与Python代码实现。 1. 移动平均线(Moving Average, MA&…...
Web Vitals:提升用户体验的关键指标
Web Vitals 是 Google 提出的一套核心网页性能指标,旨在帮助开发者理解和优化网站的用户体验。这些指标分为核心 Web Vitals 和附加 Web Vitals,涵盖了加载性能、交互性和视觉稳定性三个方面。以下是详细的介绍和如何使用 Web Vitals 来优化你的网站。 …...
c#中的约束、TimeSpan、defult、operator
c#中的约束 在C#中,约束(Constraints)用于限制泛型类型参数的类型,以确保泛型类型或方法在编译时能够满足特定的要求。约束允许开发者指定泛型类型参数必须满足的条件,比如实现特定的接口或继承自特定的类。以下是一些…...

挖矿木马攻破了服务器
最近被国外的挖矿木马攻破了服务器 根据非法登录,用 #last指令查看登录ip 首先删掉登录主机 #kill -9 pts/0 第二步 #top 看看什么占用cpu高 第三步杀死狂刷CPU的服务 过一分钟后,服务又开始狂刷cpu。 第四步根据pid查到服务地址 #systemctl status…...
从容应对技术面试:策略、技巧与成功案例
欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: 工💗重💗hao💗:野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、应用领域等内容。 ⭐…...
Spring Boot 整合 RestTemplate:详解与实战
Spring Boot 整合 RestTemplate:详解与实战指南 一、引言二、依赖添加Maven 示例:Gradle 示例: 三、创建 RestTemplate 实例四、使用 RestTemplate 发起请求五、处理响应六、高级用法1. 自定义 RestTemplate 实例2. 文件上传、下载以及常见的…...

【利用模板模式和责任链模式实现数据校验】
利用模板模式和责任链模式实现数据校验 一、业务背景二、模板模式和责任链模式代码实现1、数据校验抽象处理器ValidateHandler2、数据校验责任链工具类ValidateChainUtil3、网元调整数据校验抽象类AbstractNodeCheckHandler4、依次定义3个责任链handler,通过Order注…...
学习笔记第十九天
1.标准I/O的基本概念 标准输入(stdin):默认是指键盘输入。 标准输出(stdout):默认是指显示器输出。 标准错误(stderr):用于输出错误信息,也是指向显示器&…...
设计模式 - 单例模式
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、单例模…...

fastapi之WebSockets
文章目录 WebSockets基本概念FastAPI 中的 WebSocket 支持WebSocket 应用示例示例 1: 简单的 WebSocket 连接解释 示例 2: 广播消息的 WebSocket 实现解释 客户端代码示例 完整示例项目结构服务器端代码 (main.py)解释 简单的前端客户端 (static/index.html)解释 测试 相关代码…...
Kotlin 和 Java区别
Kotlin 和 Java 是两种主要用于 Android 开发的编程语言,它们之间有一些关键的区别: 1. 语法简洁性: Kotlin:具有更简洁的语法,减少了冗余代码。例如,Kotlin 支持类型推断,避免了大量的样板…...

windows 达梦到ORACLE dblink
达梦通过DBLINK访问Oracle数据库有两种: 方式一:通过Oracle oci接口; 方式二:一种是通过ODBC数据源的方式。 本案例选择使用Oralce OCI的方式去访问Oracle数据库。 配置Oracle OCI客户端 下载地址:https://www.oracle.com/database/techno…...
大数据应用组件
1、数据存储1.1、hive->hdfs、mapredus1.2、ClickHouse1.3、Elasticsearch1.4、PostgreSQL1.5、HBase 2、数据抽取2.1、Kettle2.2、DataX2.3、Canal2.4、Flink CDC2.5、Sqoop2.6、Filebeat&Logstash(日志) 3、任务编排3.1、Apache DolphinScheduler 4、数据处理4.1、spa…...

Docker Remote API未授权访问漏洞
9.Docker Remote API未授权访问漏洞 步骤一:使用以下Fofa语句对Docker产品进行搜索. port"2375" 步骤二:直接使用浏览器访问以下路径 /version#查看版本信息 /info#查看容器信息 漏洞修复 1.端口访问控制 对2375端口做网络访问控制,如设置iptables…...

算法训练.
一.扩散 题解: 计算点之间的距离,然后对图进行处理即可,这个数据规模较小,因此我使用了floyd,还有最小生成树和二份答案加并查集的写法; 代码: #include <iostream> #include <cstring> #in…...

TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...