Hyowinner的MBD技术论坛

 找回密码
 立即注册
搜索
楼主: RAIN

AI时代下的FPGA-MCU异构HIL技术链路讲解(长贴)

[复制链接]

79

主题

158

帖子

2554

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2554
发表于 2026-5-23 08:44:27 | 显示全部楼层
RAIN 发表于 2026-5-22 11:31
给出相同的指令时,AI运行的结果不一致,对标的是“不同的工程师对同一套模型有不同的搭法”。
因此我们 ...

Golden data能举个例子吗?
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-23 17:01:09 | 显示全部楼层
admin 发表于 2026-5-23 08:44
Golden data能举个例子吗?

就是算例下的数据输入和输出对应的txt。golden data是一个IP开发的术语,泛指两类,包括算法浮点数据的期望输入输出组合,和IP顶点层级的期望输入输出组合.
Golden Data 在 HLS 是必备的吗?其实可以参考这个
下一章会有带图实例,还在做,原工程不能搬。
回复

使用道具 举报

79

主题

158

帖子

2554

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2554
发表于 2026-5-23 17:51:30 | 显示全部楼层
RAIN 发表于 2026-5-23 17:01
就是算例下的数据输入和输出对应的txt。golden data是一个IP开发的术语,泛指两类,包括算法浮点数据的期 ...

Golden Data就是基线数据,Baseline。
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-23 19:20:55 | 显示全部楼层
admin 发表于 2026-5-23 17:51
Golden Data就是基线数据,Baseline。

校长还是懂得多
有时候我在想更大的场景下比如说会存在复杂算法非唯一解(如类LLM,推理),AI搞不好的原因就是因为这个Baseline不够准。像Cursor这种构建了很好的baseline,拿AI做这种非机理的东西东西就非常稳。
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-23 19:22:57 | 显示全部楼层
admin 发表于 2026-5-23 17:51
Golden Data就是基线数据,Baseline。

开贴的目标反正是把我自己做的每一环工作穿起来,稍微捅破一点AI的窗户纸。
这样的话对于场景每个人能够借助AI开发合适的自动化工具把流程通起来。
早晚大家都会这样做的。
回复

使用道具 举报

79

主题

158

帖子

2554

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2554
发表于 2026-5-24 20:32:14 | 显示全部楼层
RAIN 发表于 2026-5-23 19:22
开贴的目标反正是把我自己做的每一环工作穿起来,稍微捅破一点AI的窗户纸。
这样的话对于场景每个人能够 ...

等你分享你的基于AI的自动化工具,最好录制个视频,看看整个自动过程。
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-26 09:49:20 | 显示全部楼层
# 进行 FPGA 侧算法结构优化和实时性优化

在此处主要讨论基于HLS高阶综合技术为大前提的代码生成手段,以Xilinx HLS 2024.1为例。

工具安装可参考如下流程:

https://blog.csdn.net/sunshine_atk/article/details/144216065

VitisHLS 是安装FPGA开发环境Vivado的附赠品。


## 一、HLS工程的起点

回到我们最初的思路,以及问题的大前提:

1.将问题拉到AI更擅长的C语言领域解决。手段多种多样,可以是手写,可以是AI写,可以是模型建模生成。

2.存在测试用例的输入和输出,用于保证AI的黑匣结果

前者保证了HDL生成代码的设计,而后者保证了HDL生成代码的验证


## 二、HIL场景下:HLS与HDL Coder的优劣

HLS是FPGA厂商提供的向上游(MIL/SIL)环节兼容的工具。

HDL Coder是Matlab厂商提供的向下游FPGA烧录兼容的工具

二者的能力都是承上启下。

参考论文:《Comparison of Different Design Alternatives for Hardware-in-the-Loop of Power Converters》

其结论很简单:

1.浮点数算法中,HLS占绝对优势,无论是占用资源还是生成的HDL延迟。

2.定点数算法中,在小规模HIL的串流式算法的设计中,HLS总体占较大优势。

3.定点数算法中,在大规模的,存在算法数据域复用/闭环写回的逻辑中,HDL Coder占优势。但文中未讨论基于HLS对算法进行数据流重构,该方法可通过回避假性数据依赖大幅加快HLS工程性能。

4.在以大规模矩阵为主体的算法中,HLS占绝对优势。

5.所有工程的迭代中,HLS的迭代和修改速度为"Medium",开发效率高于手写的“Very High”和HDL Coder的“High”。


## 三、HLS的场景

以笔者的经验来说,HLS在POC模型阶段,和异构算法架构时,是非常合适的,如三环PMSM电机模型,LLC逆变器模型等迷你场景。

在异构算法中,我们往往为了保证算法在硬件中的速度,会将需要加速的部分拆出给FPGA运算,此时算法复杂度更低,而运算量更高,也是非常适合HLS的场景。

但是,在复杂程度等同于或大于EMTP完整算法(包含索引分配,大矩阵,多元器件模型,数据流重组)的算例下,不建议使用HLS,尽管它也可以做得很好。

因为此时HLS的门槛更高,为了达到高效率和可重构,工程师需要大量学习算法,C++及HLS底层,“为了解决问题而产生新的问题”是不可取的策略。


## 四、PMSM电机实时HIL中的异构架构

在通常仿真中,HIL的目的不用和大家多讲,而PMSM用FPGA仿真的好处就是能做到硬实时仿真。

我们考虑PMSM-FOC算法的闭环架构中,高低频侧结合硬件可以分为4个部分:

1.SVPWM部分(低频,MCU)

2.FOC控制部分(低频,MCU)

3.逆变器部分(高频,FPGA)

4.电机本体部分(高频,FPGA)
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-26 09:55:26 | 显示全部楼层
本帖最后由 RAIN 于 2026-5-26 10:06 编辑

## 五、基于AI的FPGA侧算法HLS工程

工程输入如下:

1.FPGA侧的算法C代码,包括电机本体部分及逆变器部分,参考此前的“基于AI完成MIL”

2.基于MIL验证导出的golden data.txt, 即预期的输入和输出结果

工程输出如下:

无时序问题且符合对应板卡资源映射的,端口为自由协议指定的浮点数高精度 HDL IP核。

工程Skill如下:

输入指令:在该目录下建立Vitis_Proj文件夹,在该文件夹内建立Vitis_hls工程,该工程的FPGA型号xc7a35tfgg484-2, clk cycle=10ns, time uncertainty=5%。将顶层目录路径下的PMSM_Inv.c,PMSM_Inv.h文件(包含电机本体及逆变器)算法作为source导入该工程,顶层函数为MM_Selfdrive。



AI会通过编写脚本,调用Powershell完成工程的构建,同时编写,tcl脚本借助Xilinx Vitis HLS 2024的控制台进行项目的初始化。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-26 09:58:10 | 显示全部楼层
本帖最后由 RAIN 于 2026-5-26 09:59 编辑

输入指令:将该PMSM算法的C代码进行结构检查优化,确认符合HLS综合需求,保证该电机算法的顶层函数输入接口为逆变器开关信号S0-S5,修改输出信号为电机三相电流Ia,Ib,Ic,wm,Te,theta,IP核接口基于ap_none协议。


AI会将之前的代码在该阶段生成为优化过的HLS-C,同时会尝试进行C-Synthesis确保生成C的格式符合IP核生成需求。但是该步骤只能保证功能成立,通过后续增加约束做二次综合以确保AI的综合结果符合预期。


输入指令:在Vitis_Proj文件夹下的VitisHLS工程编写C Sim流程用测试例,命名为PMSM_Inv_tb.c,该测试例的输入为signalData_tb.c对应的输入,输出结果命名为IaIbIc_HLS.txt,并将输出结果与Goldendata文件夹内的理想输出结果IaIbIc.csv进行对比分析。

通过对goldendata引入,让AI对生成的逻辑进行自查,从而保证生成行为不会偏离预期,用来预防“某些变量在HLS路径中由于算法构建产生了延迟关键路径的行为,AI进行了逻辑重组导致跨周期数据无锁存,连续运行结果出现偏差的情况”。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-26 10:05:38 | 显示全部楼层
输入指令:进行综合,对顶层函数使用pragma pipeline,并进行报告分析,接受latency不为1的情况

焚诀。可以理解为对应大部分(几乎所有的)的工程算法的非串流形式。存在自我更新的通用优化策略。往往能够得到一个70分左右的优化结果,此处为双精度浮点HDL IP核生成,单精度速度和资源均能各快一倍,定点化基于自适应定点精度会比单精度再快60%以上,基于AI的浮点+定点混合精度预测本人已申请专利,请自行探索。


输入指令:在工作目录下新建export_IP文件夹,将IP核导出在该文件夹内。

导出IP核,给后面的Vivado工程用

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|MBD全栈技术学校|苏ICP备2025212294号-1|Hyowinner校长B站首页|手机版|小黑屋|Hyowinner的MBD技术论坛

GMT+8, 2026-6-25 06:38 , Processed in 0.193564 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表