当前位置: 首页 > news >正文

异步SAR Simulink模型及其在MATLAB仿真中的应用

异步SAR simulink模型(和virtuoso电路模型很像,精度自己可以改)。 做MATLAB仿真,包括zoom或者其他混合架构adc可以用到这个模型。

在玩ADC设计的时候,异步SAR结构就像个宝藏男孩——速度快还省电,但要把行为级模型建得真实好用可不容易。最近折腾了个Simulink异步SAR模型,比传统Matlab脚本灵活得多,特别是需要做混合架构(比如Zoom ADC)的时候,这种模块化建模的优势就出来了。

先看核心模块——异步状态机。这里直接用了Matlab Function块写了个鬼畜版状态流转逻辑:

function ctrl = async_FSM(clk, cmp_result) persistent state; if isempty(state) state = uint8(0); % 0:采样 1:逐次逼近 end if clk switch state case 0 ctrl = 'sample'; state = 1; case 1 if cmp_result ~= 0 ctrl = 'shift'; else ctrl = 'hold'; end end end end

这个状态机的精髓在于不依赖固定时钟周期,每次比较器结果(cmp_result)一出来就立即触发动作。注意第9行的clk信号其实是外部事件驱动,模拟实际电路中的异步就绪信号。

DAC模块的实现更有意思。为了支持精度调整,专门做了个参数化电容阵列模型:

classdef VarDAC < matlab.System properties bit_depth = 8; % 可自定义精度 C_unit = 1e-15; % 单位电容 end methods function y = step(obj, code) weights = 2.^(0:obj.bit_depth-1); total_C = sum(weights) * obj.C_unit; y = sum(code .* weights)/total_C * Vref; % 模拟电荷分配 end end end

重点在bitdepth参数——做Zoom ADC时可能需要12bit模式的SAR子模块,这时候不用改结构,直接把bitdepth从8调到12就能验证架构可行性。

仿真时最抓狂的是时序对齐问题。异步SAR的每个bit转换时间不固定,这里用Simulink的Triggered Subsystem实现动态调度:

  1. 比较器输出触发T延迟模块
  2. 延迟时间取自当前bit位置的查找表(模拟DAC建立时间)
  3. 触发信号连到控制状态机的使能端

这种骚操作完美复现了实际电路中的"完成-触发"机制。测试时发现当DAC建立时间设置为非线性分布(比如高位比低位多50%延迟)时,系统依然稳定工作,说明模型对非理想因素兼容性不错。

最后来个实战场景:在Zoom ADC里调用这个SAR模块。需要把模型封装成Simulink Component,通过configSet动态修改SAR的精度参数。比如当Delta-Sigma调制器检测到高频信号时,自动把SAR精度从10bit切换到8bit,这时候模型里的DAC权重会实时重新计算,整个过程不需要停止仿真——这对验证架构适应性简直不要太方便。

这个模型的彩蛋是埋了个噪声注入端口,可以直接在比较器输入端加随机抖动。曾经用它发现了某个工艺角下会出现误码突增,后来在流片前加了冗余比较电路避坑。所以说,行为级模型玩得够溜,真的能救命。

http://www.jsqmd.com/news/88887/

相关文章:

  • 【开题答辩全过程】以 基于Node.js的医院预约挂号系统为例,包含答辩的问题和答案
  • vue基于Spring Boot框架的在线电影票购买系统的设计与实现_8xxt52nn
  • 学完这个C++内存池案例,你对内存管理的理解将超越大部份人
  • Cplusplus生成代码大小的说明-–-behaviac
  • 手把手拆解三菱PLC印字机实战项目
  • 【免费领源码】Python/Mysql数据库+53824中国传统服装微信小程序的设计与实现+ 计算机毕业设计项目推荐上万套实战教程JAVA、PHP,node.js,C++、python、大屏数据可视化
  • 开发功能开关-–-behaviac
  • 三菱PLC组装机学习笔记
  • Go 语言结构体
  • 当卷积网络遇上双向记忆:玩转时间序列预测新姿势
  • 【开题答辩全过程】以 高校篮球社团管理系统 为例,包含答辩的问题和答案
  • JavaScript闭包终极指南:从原理到实战(2025版)
  • 【开题答辩全过程】以 基于PHP的公司员工管理系统为例,包含答辩的问题和答案
  • 第八周学习
  • Week 29: 深度学习补遗:MoE的稳定性机制与路由策略实现
  • 有关C语言中自加和自减与计算机底层硬件的关糸
  • Arbess从初级到进阶(3) - 利用Arbess+GitLab+SonarQube搭建Java计划自动化部署
  • 告别机房管理噩梦,首码磁控U位系统来“救场”
  • 课程设计(自主选题)
  • 南昌航空大学-软件学院-余思莹-第二次blog作业
  • 深入解析:Vue中的provide与inject
  • 面试题目 —— 就业考察 —— 大模型
  • 基于django智慧农业管理系统
  • 抗体人源化:降低免疫原性、赋能临床转化的关键技术
  • 基于SVM-RFE-LSTM的特征选择算法结合LSTM神经网络的多输入单输出回归预测python代码
  • django用Python设计自主学习系统
  • 25年12月14日复盘总结,大盘方向,操作建议,板块机会,实用干货
  • what?动态规划?
  • 解码 Qt 核心技术 —— 组件、数据操作与多界面开发
  • Java基础大厂高频后台开发-面试常考八股题