Hyowinner的MBD技术论坛

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

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

[复制链接]

79

主题

158

帖子

2554

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2554
发表于 2026-5-13 10:51:25 | 显示全部楼层
RAIN 发表于 2026-5-13 10:47
原理上能跑,但是可能存在时序问题需要修。

用Simulink的HDL Coder遇到过什么时序不对的情况吗?
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-13 10:54:12 | 显示全部楼层
admin 发表于 2026-5-13 10:51
用Simulink的HDL Coder遇到过什么时序不对的情况吗?

HDL Coder生成的不管时序,需要你烧进去过Synthesis测试才知道。
HLS管时序,不需要烧就知道。
编译器行为不同
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-13 11:02:36 | 显示全部楼层
admin 发表于 2026-5-13 10:51
用Simulink的HDL Coder遇到过什么时序不对的情况吗?

Matlab官方提供了三种解法:
1.子系统级流水线,缺点是子系统级流水线存在大量空泡,对应的是HLS的DATA Flow优化,由于grinding level不够,指令空隙大,性能慢资源量大。
2.放宽时序约束,这个是纯粹的Timing Cheating
3.调基频,调频影响time glitch以及FPGA时钟约束。
后两个在IC领域是红线,一般在SPEC定好后是不能碰,在FPGA领域仍然有使用风险

点评

太赞了!  发表于 2026-5-13 18:39
回复

使用道具 举报

79

主题

158

帖子

2554

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2554
发表于 2026-5-13 18:40:24 | 显示全部楼层
RAIN 发表于 2026-5-13 10:54
HDL Coder生成的不管时序,需要你烧进去过Synthesis测试才知道。
HLS管时序,不需要烧就知道。
编译器行 ...

牛逼Plus!
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-15 21:34:36 | 显示全部楼层
# MIL:基于场景需求进行系统级建模与功能拆分

## 一、MBD、HIL 与 AI 的关系

MBD 工程开发好比中华武术。

武是实力,是个人的强壮程度,也就是力量。  
术是方法,是把力量打出去的手段。

放在工程场景下,武就是工程师对模型的理解,体现为自身的架构能力;而术则是工程师的代码能力、硬件调适能力。

AI 好比一把绝世利器,能够大幅度提高术的杀伤能力。

MBD 是 HIL 的武,HIL 是 MBD 的术,AI 是强化术的兵器。

也就是说,HIL 并不是单纯把模型烧进硬件里跑起来,而是要建立在前期系统级建模、功能拆分和模型验证的基础上。

如果没有 MBD,HIL 很容易变成单纯的硬件调试。  
如果没有 HIL,MBD 又容易停留在离线仿真阶段。  
如果没有 AI,工程效率依然会受限于人工建模、人工改代码、人工测试和人工分析。

所以,AI 的价值不在于把工程师变没,而在于把工程师从大量重复性的术里面解放出来。

模型怎么拆,系统边界怎么定,物理机理是否正确,最终仍然要回到工程师判断。

---

## 二、AI 与自动化建模

MBD 的起点在于模型。

然而,随着 AI 时代的到来,各家系统级仿真软件都开始推出自己的 MCP 工具,建模行为从过去的人工手动建模,逐渐转变为 AI 辅助自动建模。

老板说过一句话:

> “凡是人工能操作的,AI 一定能干。如果 AI 干得不够好,那肯定是人工给的输入不到位。”

因此,AI 时代的建模流程,不再只是工程师手动拖模块、连线和调参数,而是逐渐变成:

```text
人工给信息
    ↓
AI 建模
    ↓
AI 测试
    ↓
AI 分析
    ↓
回到人工判断
```

这里的关键不在于 AI 是否能够完全替代工程师,而在于工程师能不能把需求、边界、输入输出、模型结构和验证标准讲清楚。

AI 本质上是一个放大器。

工程师给出的信息越具体,AI 的输出就越接近可用模型。  
工程师给出的信息越模糊,AI 就越容易自由发挥,最后生成一个看似完整,但实际偏离工程目标的模型。

此处将基于 Codex + ChatGPT 5.5,进行后续 AI 相关工作。

---

## 三、成功的 AI 建模

很多工程师在最初接触 AI 的时候,都会遇到一个问题:

> “我描述了我的需求,但是 AI 给出了一个不准确的答案。后续我对需求不断修正,AI 不断为模型做出负优化,导致生成结果风马牛不相及,越做越偏离主线。”

这个问题的原因主要有两点:

1. 大模型在长对话中容易受到最新上下文和局部修正的影响,导致最初的建模约束被弱化。
2. 最初的建模约束不够具体,在存在多种实现路径的情况下,AI 会自行判断,最终生成的模型可能并不是工程师真正想要的模型。

举一个最简单的例子。

### 1. 模糊需求

```text
我需要一个 SVPWM 模型。
```

这个需求本身没有错,但是太宽泛。

AI 不知道你需要的是算法模型、控制模型、逆变器控制模型,还是用于实时仿真的工程模型。

它也不知道输入是什么、输出是什么、是否需要载波、是否需要过调制、是否需要内部信号可观测、是否需要和逆变器模型连接。

因此,AI 只能根据通用理解自行补全。

一旦 AI 自行补全,就会引入大量不受控的工程假设。

### 2. 结构化需求

```text
我需要一个 SVPWM,其结构包括 PARK 变换、CLARK 变换、扇区判断计算、Tcm 计算、过调制处理,以及合适的三角载波。

输入信号为内置的 3 相幅值为 311、相位差为 120° 的对称电压源。

输出结果为用于控制逆变器的 S1-S6 信号。
```

这段描述虽然仍然可以继续细化,但已经具备了基本的工程约束。

它告诉了 AI 模型结构、关键算法模块、输入信号、输出信号和工程用途。

两者的区别不在于有没有使用 AI,而在于有没有把工程约束说清楚。

AI 不是不能建模,而是不能在缺少约束的情况下,稳定地猜中工程师真正想要的模型。

在 MATLAB、MWORKS 等系统级建模软件中,都会有对应的 AI 接口或辅助建模工具。具体使用方式可以参考校长的帖子,或者对应软件的使用说明书。

---

## 四、更精细化的 Skill

由于上面的描述,不由得引入了一个新的问题:

> “过于简单的 Skill 没有用处,而过于复杂的 Skill 难以编写,其效率不如自己手动建模。”

这个问题本质上属于 AI 通用大模型与工程师之间的磨合问题。

如果 Skill 写得太简单,本质上只是换了一种方式提问,无法约束 AI 的输出。  
如果 Skill 写得太复杂,又会变成重新写一套建模规范,维护成本高,实际效率未必比手动建模更高。

因此,Skill 的价值不应该是一次性写出一个万能建模模板,而是把重复性的建模输入约束整理成标准格式,让 AI 从“自由发挥”变成“按字段生成”。

比较可行的方法是:

```text
先做一个简单工程
        ↓
让 AI 反向输出建模时需要提供的信息
        ↓
人工筛选、修正和固化这些字段
        ↓
形成 Skill 格式
        ↓
作为后续填表式建模模板
```

也就是说,不是人一开始就凭空设计 Skill,而是通过一个真实工程,让 AI 反推出自己需要哪些输入条件。

这些输入条件经过人工筛选、修正和固化之后,就可以成为后续“基于 AI 的填表式建模”的范式。

结合工作经验,我认为可以补充两种更工程化的 AI 建模思路:
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-15 21:36:10 | 显示全部楼层
本帖最后由 RAIN 于 2026-5-15 21:37 编辑

## 五、两种更工程化的 AI 建模思路

1. 模型物理公式 + 库模型指定建模。
2. C 代码 + 流程图建模。

### 1. 模型物理公式 + 库模型指定建模

第一种方式是:

> 物理公式 + 明确的库模型指定。


这种方式适合物理机理明确、模块边界清楚的场景。

例如,在搭建电机、逆变器、DC/DC、LLC、滤波器等模型时,不能只告诉 AI:

```text
我要一个电机模型。
```

或者:

```text
我要一个逆变器模型。
```

更好的方式是直接给出:

```text
物理公式
输入输出定义
参数表
模型层级结构
需要调用的软件库模块
模型验证方式
```

这样做的好处是,AI 不需要自行猜测物理机理,也不需要自行发明模块结构。

工程师把物理边界和库模型边界定义清楚,AI 只负责把这些信息转化为可执行的建模过程。

这种方式的核心是:

> 人负责定义物理正确性,AI 负责提高建模效率。

### 2. C 代码 + 流程图建模

第二种方式是:

> C 代码 + 流程图建模。


这种方式适合算法逻辑清晰、工程实现路径明确的场景。

很多控制算法本身已经存在 C 代码,或者可以通过伪代码、流程图描述清楚。

此时不一定要让 AI 从自然语言直接生成模型,而是可以先让 AI 读取 C 代码和流程图,再根据代码逻辑反向生成模型结构。

这种方式的优势在于:

```text
C 代码已经包含明确的执行顺序
流程图可以补充算法结构和模块关系
AI 更容易判断模块边界
生成模型后更容易和原始代码进行一致性验证
```

对于 MBD 工程来说,这种方式尤其适合从已有算法向模型迁移,或者从模型向代码实现反推结构。

它的核心是:

> 不让 AI 凭空理解需求,而是给 AI 一个已经具备工程逻辑的中间表达。

---

这也是后续基于 Codex + ChatGPT 5.5 开展 AI 建模工作的基本逻辑。

本帖子中包含更多资源

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

x

点评

RAIN大神,V5!  发表于 2026-5-16 08:11
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-18 09:19:13 | 显示全部楼层
RAIN 发表于 2026-5-15 21:36
## 五、两种更工程化的 AI 建模思路

1. 模型物理公式 + 库模型指定建模。

校长,抛砖引玉而已
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-20 09:45:37 | 显示全部楼层
# 完成 MIL 仿真,对控制逻辑和对象模型进行初步验证

## 一、AI 构建激励源与测试场景

在模型搭建完成后,工程师往往需要构建模型应用场景,以进行 MIL 测试。

测试激励源和测试场景是可以由 AI 构建的。

其方式可以是自然语言生成、脚本生成、边界工况组合生成,也可以是基于历史测试数据的自动扩展。

在传统 MBD 工程中,MIL、SIL、PIL、HIL 任何一环的推进都离不开验证。

尽管存在自动化工具,工程师仍然需要一定的跨领域能力,去构建对应不同层级的测试例。

而在 AI 介入的工程中,验证工作的重点可以前移。

这里的“前移”并不是指后续 SIL、PIL、HIL 不再需要验证。

而是指:

> 在 MIL 阶段尽可能提前构建测试场景、输入输出基准和功能判据,为后续 SIL、PIL、HIL 提供统一的验证标准。

也就是说,MIL 不能替代 SIL、PIL、HIL。

MIL 能够提前固化的是功能逻辑、对象模型和测试基准。

SIL 仍然需要验证 C 代码和模型语义是否一致。  
PIL 仍然需要验证代码在目标处理器、编译器和运行环境下是否一致。  
HIL 仍然需要验证实时性、IO 接口、采样周期、量化误差、板级通信和闭环稳定性。

AI 的作用,是让同一套测试场景能够被快速迁移到不同平台。

```text
MIL 测试场景
    ↓
形成标准输入输出数据
    ↓
迁移到 C 代码测试
    ↓
迁移到 HDL 测试
    ↓
迁移到板级 IO 测试
    ↓
对标同一套 golden data
```

通过这种方式,AI 可以基于同一套测试数据,生成不同平台的测试例,大幅提高后续工程落地效率。

---

## 二、一切的起点:标准 MIL 测试例构建

MIL 是整个 AI + MBD 流程中最重要的起点。

人工需要在 MIL 环节开始时,对 AI 生成的模型及测试例进行一次判断。

这是工程师最基本的能力。

判断的目的,不是简单看模型能不能跑通。

而是确认:

```text
顶层设计是否符合实际工程场景
模型结构是否符合需求
输入输出边界是否清晰
控制逻辑是否正确
对象模型是否具备基本机理
测试结果是否满足最终验收指标
```

测试的执行、分析和自迭代工作,可以大量交给 AI。

但是,第一轮测试结果的判断,以及后续迭代完成的条件,必须由工程师在最初阶段给出。

换句话说,工程师需要把自己期望的“宏伟蓝图”传递给 AI。

AI 很擅长执行。

AI 也很擅长根据已有模型做测试、补脚本、分析曲线、生成报告。

但是 AI 判断的基准,大部分来自于:

> “结果是否符合当前模型的运行逻辑。”

这并不等于:

> “模型的物理机理一定正确。”

如果模型在搭建阶段缺少关键机理、关键参数或关键边界条件,那么 AI 仍然可能判断测试通过。

因为在 AI 看来,执行结果与当前模型描述是自洽的。

但“模型自洽”不等于“模型正确”。

这也是 AI 参与 MBD 工程时最容易出现的问题。

AI 能够判断一个模型是否按照它已有的结构正常运行,却不能天然判断这个模型是否符合真实对象的物理机理。

因此,一个成功的 MIL 构建,本质上是将 AI 的黑盒行为约束到固定的、明确的、可追溯的工程场景中。

---

## 三、测试数据的继承

在 MIL 阶段,经过 AI 在线测试生成的结果,一旦被人工认定合理且标准,就需要将该结果作为后续 SIL、PIL、HIL 的预期结果保存下来。

这套数据可以称为 golden data。

但是 golden data 不能只理解成输出曲线。

它至少应当包括:

```text
测试输入
模型参数
初始状态
采样周期
求解器配置
输出结果
版本信息
允许误差范围
```

如果只保存输出结果,而没有保存对应的测试条件,那么后续阶段很容易出现结果对不上的情况。

例如:

```text
步长不一致
初始状态不一致
solver 不一致
参数版本不一致
随机激励源不一致
浮点 / 定点误差不一致
IO 延迟没有对齐
```

这些问题都会导致后续 SIL、PIL、HIL 的结果与 MIL 对不上。

此时问题未必出在代码生成,也未必出在硬件实现,而可能只是测试基准没有被完整继承。

所以,MIL 阶段形成的 golden data,不应该只是一个结果文件。

它应该是一套完整的测试资产。

这套测试资产本身,将作为后续 MBD 开发过程中任何设计的测试例。

它可以被调用为:

```text
模型测试例
C 代码测试例
HDL 代码测试例
板级 IO 收发测试例
闭环 HIL 测试例
```

在后续阶段中,AI 可以基于固定测试例数据,大量执行如下动作:

```text
测试源构建
    ↓
平台封装
    ↓
对标 golden data
    ↓
误差分析
    ↓
自迭代修正
```

这样一来,AI 每次执行生成动作之后,都可以基于同一套标准数据进行自我验证。

---

## 四、golden data 的本质

需要强调的是,MIL 阶段形成的 golden data,并不代表物理世界的绝对真理。

它代表的是:

> 在当前工程需求、模型参数、测试条件和验收标准下,经过人工确认后的工程认可基准。

这一点非常重要。

因为 AI 从原理上只能提高结果的置信度,而不能保证结果一定正确。

尤其在涉及 AI 跨平台生成时,不同人给出的提示词不同,不同工具链生成的结果不同,不同编译器和硬件平台的执行细节也不同。

从最终结果上看,它们应该殊途同归。

但是从中间实现上看,它们可能完全不同。

这就会带来一个问题:

> AI 生成的代码、测试脚本和封装逻辑,往往可读性较差,不便于人工逐行进行机理判断。

因此,人工不应该把所有精力放在逐行阅读 AI 生成物上。

更合理的方式是:

> 将涉及 AI 的流程视作黑盒,对结果进行判断。

而 golden data,就是判断这个黑盒是否可信的标准。

只要输入条件一致,输出结果能够在允许误差范围内对齐,那么当前生成结果就可以被认为满足该阶段的工程预期。

---

## 五、AI 参与下的 MBD 可追溯性

传统 MBD 流程中的可追溯性,来自于模型、代码、测试和报告之间的人工管理。

而 AI 参与之后,可追溯性的核心应当转移到测试基准上。

也就是说,AI 可以生成不同层级的模型、代码和测试脚本。

但所有结果都必须回到同一套 golden data 上进行判断。

```text
MIL:确认模型和功能逻辑
    ↓
SIL:确认 C 代码与模型一致
    ↓
PIL:确认目标处理器执行结果一致
    ↓
HIL:确认硬件 IO、实时性和闭环行为一致
```

每一环都可以由 AI 辅助生成测试、执行测试、分析误差和修正问题。

但每一环的判断标准,都必须来源于 MIL 阶段经过人工确认的测试资产。

因此,在 AI 参与的 MBD 流程中,人工的角色并没有消失。

人工的角色从“逐个手工搭模型、写代码、造测试例”,转变为:

```text
定义需求
约束边界
判断机理
确认基准
设置误差
管理追溯
```

AI 负责提高效率。

工程师负责保证方向。

这才是 AI 参与 MBD、HIL 工程时更合理的分工。



回复

使用道具 举报

79

主题

158

帖子

2554

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2554
发表于 2026-5-21 07:13:09 | 显示全部楼层
RAIN 发表于 2026-5-20 09:45
# 完成 MIL 仿真,对控制逻辑和对象模型进行初步验证

## 一、AI 构建激励源与测试场景

AI作为自动化工具链的一致性现在如何?
即给相同的指令,运行多次,每次是不是都一样?
回复

使用道具 举报

1

主题

41

帖子

176

积分

MBD初级工程师

Rank: 2

积分
176
 楼主| 发表于 2026-5-22 11:31:06 | 显示全部楼层
admin 发表于 2026-5-21 07:13
AI作为自动化工具链的一致性现在如何?
即给相同的指令,运行多次,每次是不是都一样? ...

给出相同的指令时,AI运行的结果不一致,对标的是“不同的工程师对同一套模型有不同的搭法”。
因此我们把AI生成和Matlab生成一样都视为黑匣模型。
A对于原理型的建模,由于在固定机理+固定输入(人工固化)=固定输出(人工固化),因此可以采用golden data+自迭代的方式保证,“在输出一样结果的时候,黑匣代码机理正确”。

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-25 06:21 , Processed in 0.174416 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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