异步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.mzph.cn/news/1014661.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开题答辩全过程】以 基于Node.js的医院预约挂号系统为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

vue基于Spring Boot框架的在线电影票购买系统的设计与实现_8xxt52nn

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持java、ThinkPHP、Node.js、Spring B…

学完这个C++内存池案例,你对内存管理的理解将超越大部份人

项目它实现了一个生产级的C++内存池管理系统,融合了多层级内存块管理、智能碎片整理、线程安全机制和高性能对象池,旨在提供一个高效、可靠、易用的通用内存管理解决方案。本文将深入剖析其设计理念、实现原理、核心源代码,带你走进高性能内存管理的世界。 一、核心实现原理…

Cplusplus生成代码大小的说明-–-behaviac

原文 C版本广泛的用到了template。 Code bloat occurs because compilers generate code for all templated functions in each translation unit that use them. Back in the day the duplicate code was not consolidated resulting in “code bloat”. These days the dupl…

手把手拆解三菱PLC印字机实战项目

三菱PLC组装印字机完整项目资料 1、采用三菱FX3U,威纶通MT6071IP触摸屏 &#xff08; 2、有说明书&#xff0c;BOM零件表&#xff0c;电路图 3、程序有完整的注释&#xff0c;结构清晰明了。 很好的项目学习资料。 工业02-18.电气印字机电气最近淘到一套工业级印字机的完整项目…

开发功能开关-–-behaviac

原文 behaviac的运行时提供有核心的更新行为树的功能&#xff0c;在其之上&#xff0c;还有logging&#xff0c;热加载&#xff0c;连调等调试功能。这些调试功能只是‘开发’功能&#xff0c;在游戏发布后实际上是不需要的。 除了可以在config.h中定义BEHAVIAC_RELEASE宏为1…

三菱PLC组装机学习笔记

三菱PLC组装机&#xff0c;完整项目资料 1、采用三菱FX3U,威纶通触摸屏 2、三个伺服&#xff0c;多工位 3、程序有完整的注释&#xff0c;结构清晰明了。 很好的项目学习资料。 工业02-17.泡棉组装最近在学习三菱PLC的项目&#xff0c;发现这是一个挺有意思的方向。项目用的是…

Go 语言结构体

Go 语言中数组可以存储同一类型的数据&#xff0c;但在结构体中我们可以为不同项定义不同的数据类型。 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。 结构体表示一项记录&#xff0c;比如保存图书馆的书籍记录&#xff0c;每本书有以下属性&#xff1a; Titl…

当卷积网络遇上双向记忆:玩转时间序列预测新姿势

基于python语言的CNN—BiLSTM—Attention模型实现时间序列预测。 可实现多变量预测单变量&#xff0c;也可以实现单变量预测单变量。 多步预测单步预测随意切换 替换数据即可运行模型&#xff0c;参数修改方便&#xff0c; 时间序列预测总让人又爱又恨&#xff0c;今天咱们来点…

【开题答辩全过程】以 高校篮球社团管理系统 为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

JavaScript闭包终极指南:从原理到实战(2025版)

JavaScript闭包终极指南&#xff1a;从原理到实战&#xff08;2025版&#xff09;闭包是JavaScript的核心特性&#xff0c;也是面试高频考点与开发易错点。很多开发者只停留在“函数嵌套函数”的表层认知&#xff0c;却不懂其底层原理与实战价值。本文从“内存模型→语法定义→…

【开题答辩全过程】以 基于PHP的公司员工管理系统为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

第八周学习

这周完成了课程中关于豆瓣首页的制作,初步掌握了制作静态页面的方法 项目实战-豆瓣首页 图标 <title>豆瓣</title><link rel"shortcut icon" type"image/x-icon" href"./favicon.ico"><link rel"stylesheet" h…

Week 29: 深度学习补遗:MoE的稳定性机制与路由策略实现

文章目录Week 29: 深度学习补遗&#xff1a;MoE的稳定性机制与路由策略实现摘要Abstract1. Noisy Top-K Router1.1 理论背景1.2 代码实现2. Token 级与 Pooling 级路由2.1 理论背景2.2 代码实现3. Auxiliary Loss3.1 理论背景3.2 代码实现总结Week 29: 深度学习补遗&#xff1a…

有关C语言中自加和自减与计算机底层硬件的关糸

C语言中的i和i--,i --i两种形式都指向了计算机硬件底层的计数器&#xff0c;当然减法还多了一个步骤就是取反和加补码&#xff0c;自加的两种方式本质是先做自加还是先做运算的问题

Arbess从初级到进阶(3) - 利用Arbess+GitLab+SonarQube搭建Java计划自动化部署

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

告别机房管理噩梦,首码磁控U位系统来“救场”

机房管理痛点大揭秘在机房管理的日常中&#xff0c;想必不少朋友都被这些问题折磨得苦不堪言。盘点时&#xff0c;面对密密麻麻的设备&#xff0c;人工核对不仅效率低下&#xff0c;还常常因为人为疏忽&#xff0c;导致账实不符。一旦出现错误&#xff0c;后续的核对与纠错工作…

课程设计(自主选题)

图书管理系统选题博客 一、使用的AI工具辅助选题 本次选题主要使用了两个AI工具辅助:一是deepseek,通过输入“Java开发适合的课程设计选题”“图书管理系统核心需求分析”等,获取选题方向建议及系统功能拆解思路;二…

南昌航空大学-软件学院-余思莹-第二次blog作业

目录一、前言二、设计与分析2.1 OOP2-NCHUD-数字电路模拟程序-12.1.1 设计与分析2.1.2 踩坑心得2.1.3 改进建议2.2 OOP2-NCHUD-数字电路模拟程序-22.2.1 设计与分析2.2.2 踩坑心得2.2.3 改进建议2.3 OOP-课堂测验2.3.1…

深入解析:Vue中的provide与inject

深入解析:Vue中的provide与inject2025-12-14 19:31 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !impo…