AM05:trim FSM +模拟对象+测量模块

本课把“模拟旋钮调到目标”变成有限步骤、结果可归属、失败可恢复的校准系统。先完成受控前台校准,再讨论未知输入的后台算法。

前置 AM03、握手/CDC、signed 定点平均、控制项目契约。总纲 · 设置 · 答案 AM05 · 记录。预计 12–18 小时。

先明确模拟可观测量

教学模型定义稳态测量均值(以测量 ADC LSB 为单位):y_inf(code)=offset+gain×(code−128)。8 bit trim,首版 offset=19、gain=0.75>0,目标0。映射电压 V_inf=1 V + y_inf×0.5 mV,再经10 kΩ/10 pF 的一阶动态,ADC 为 signed12:y=clip(RNE((Vsample−1 V)/0.5 mV),−2048,2047)。

RNE 为 round to nearest ties to even,负数也按数学定义处理。该规格是偏置量测量、含1 V共模的示例,不能沿用 AM03 unsigned10 的 floor。若测真实振荡频率、电流、失调或增益,应重定义单位和可观测条件。

数字 code 更新后先等待39拍/780 ns(标称 RC 最大255×0.75=191.25测量LSB阶跃,连续残差约0.0784 LSB),再测量。每块16次,采样间隔5拍/100 ns,量化后精确累加,再对除16结果做 ties-even;signed12 16次和需要 signed16。分离节点连续噪声和测量噪声,首版噪声为零,后续以给定种子/带宽/幅度模型加入。

本例均值根在 code≈102.6667;code103 稳态+0.25 LSB,code102为−0.5 LSB。两者均可满足数字 ±2 LSB 成功窗口;算法无需固定返回103,更不能把“返回103”作为唯一正确性判据。

FSM 与事务

流程:SNAPSHOT→CHECK_ENDPOINTS→SEARCH→VERIFY→COMMIT;失败经ABORT/DRAIN→RESTORE或FAULT。接受校准时保存 committed_code 与版本,试探码使用独立 trial_code。成功只提交最终已验证候选;失败时在模拟条件允许下恢复之前的 committed_code,并重新等待稳定。

搜索前确认响应方向、目标可达及单调条件。端点检查能证明区间是否包住目标,不能证明内部全局单调;先有设计/模型单调依据,教学时再做完整256码扫描。正增益下均值>目标则减码,<目标则加码。二分搜索对已声明的单调模型可用于缩小候选区间;量化零平台需允许多个合格候选。

每次测量请求带 transaction_id、code_version、trial_code;ADC/适配器保持应答与身份直到确认。只接受当前请求,reset 后排空旧握手再复用 id。用 MIN=39 拍限制最早采样,ready 合法后采样,MAX=100 拍限定本次等待;本课规定截止边沿 timeout 优先,即有效应答必须在 MAX 之前完成。block 次数/搜索次数也设上限,不能仅依赖单次ADC超时。

最终候选需要连续两块16次均值都在 ±2 ADC LSB 内才 commit;中间任何一块越界重置连续通过计数,按有限重试策略重新评估或失败退出。均值的正确实现不保证噪声统计或模拟精度合格。

操作步骤

  1. 写清 plant 的电压方程、单位、增益方向、动态和合法码范围。先独立扫 DC 码并绘制 y/code,确认单调及量测无饱和。
  2. 为测量模型做几个正/负半整数 RNE 用例,核对累加范围;给 ADC 编码和 plant 各自一个独立参考,不能复制 FSM 判断作为检查器。
  3. config 绑定 FSM RTL、plant 行为/RC、measurement ADC、握手适配器;同时保存 trial/committed/version、模拟节点、每次sample、block_sum/mean、state、ready/error。
  4. 零噪声运行端点→搜索→两块验证,记录每次候选/等待/均值和最终提交。独立检查搜索方向、有限退出、每块16次、身份一致。
  5. 用固定种子加入 ±1 LSB 有界测量扰动,再做相关噪声或低频漂移。比较单次判断与16次平均;相关噪声不一定按1/√16降低。
  6. 单独替换 plant 或 measurement 为你的晶体管电路,重新测 gain、settling、噪声/供电依赖,调整等待与成功标准的物理解释。

必做失败实验

注入 必须观察的结果
gain 反向/非单调 方向或模型前提不满足,拒绝按原算法 commit;非单调仅端点检测可能漏检
offset=300、gain=0.75 全范围无法达到0,端点检查失败
测量饱和或非法身份 报无效测量,不当成有效校准值
never-ready、应答恰在截止边沿 超时;截止边沿应答按本课规则不接受
搜索中复位/取消、旧版本结果迟到 排空旧事务,未验证试探值不得提交
供电故障导致不能安全恢复 进入FAULT,按模拟安全策略处理输出
噪声使两块交替通过/失败 有限重试后退出,不能无限循环

验收

提交零噪声收敛、噪声运行、端点不可达、超时和取消恢复五组台账;每个 commit 都有两块验证证据。记录 trial_code 与 committed_code 的区别,以及失败后节点是否重新稳定。

迁移到真实偏置/频率 trim 时,先确认被测量是否能唯一反映目标、对温度/负载是否可重复、是否需要独立校准输入。±2测量LSB是本课数字停止规则,实际电流/电压/频率误差还包含ADC、参考、量化、噪声和漂移,须单独预算。

先写预测,再留下自己的解释

本讲包含 1 课。展开对应课程,保存个人状态和笔记。

AM05:trim FSM +模拟对象+测量模块记录
阅读本课 →

输入后自动保存在此浏览器。能独立解释并完成课程验收,再标记“已验收”。