第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…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
vue3 定时器-定义全局方法 vue+ts
1.创建ts文件 路径:src/utils/timer.ts 完整代码: import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...
TJCTF 2025
还以为是天津的。这个比较容易,虽然绕了点弯,可还是把CP AK了,不过我会的别人也会,还是没啥名次。记录一下吧。 Crypto bacon-bits with open(flag.txt) as f: flag f.read().strip() with open(text.txt) as t: text t.read…...