ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

基于Cadence的8位SAR ADC设计:从D触发器到完整瞬态仿真

基于Cadence的8位SAR ADC设计:从D触发器到完整瞬态仿真 1. 项目概述1.1 为什么要自己动手搭建SAR ADC接触过模数转换器ADC的工程师都知道市面上有大量现成的ADC芯片从低速高精度的Σ-Δ型到超高速的流水线型选型丰富。但在芯片设计领域很多时候你没法直接“买”一颗ADC回来用——当你需要把模拟前端、数字控制逻辑和ADC集成在同一颗芯片里时就必须在Cadence环境下从零搭建ADC模块。SAR ADC逐次逼近型模数转换器凭借其结构简单、功耗低、面积小、中等精度速度的特点成为SoC设计中应用最广泛的ADC架构之一。这篇文章我会完整走一遍8位SAR ADC的搭建流程从最基础的D触发器开始一步步把比较器、CDAC电容阵列、SAR逻辑模块组合起来最后跑完整的瞬态仿真验证性能。整个过程基于Cadence IC617 virtuoso环境工艺库使用tsmc 180nm。即便你用的是别的工艺库只要掌握了原理和操作思路迁移到其他节点也完全没问题。1.2 这篇文章适合谁、能解决什么问题先说清楚这篇文章适合已有Cadence基础操作能力、但第一次接触数据转换器设计的读者。如果你已经会画反相器、知道怎么建schematic、能跑简单的spectre仿真那这篇文章就是为你准备的。如果你完全没碰过Cadence建议先花一两天熟悉virtuoso的基本操作流程不然看后面的内容会比较吃力。我在这篇文章里想解决的是几个实际搭建过程中最容易被卡住的痛点D触发器怎么搭才能保证SAR逻辑时序正确、CDAC电容阵列的开关时序怎么控制、比较器失调和噪声怎么影响整体精度、瞬态仿真不收敛怎么排查。这些东西教科书上不会写得很细网上资料也往往只给结论不给过程真正动手做的时候很容易浪费大量时间在调试上。2. 8位SAR ADC整体架构与设计思路2.1 SAR ADC的工作原理SAR ADC的核心思想是二分搜索算法。8位SAR ADC需要8个时钟周期来完成一次转换每个周期确定一位数字输出。大致流程是这样首先采样保持电路把输入电压采到电容阵列上然后从最高位MSB开始依次把DAC输出电压和输入电压比较根据比较结果决定该位是1还是0接着更新DAC输出进入下一位的比较。举个例子假设参考电压是1.8V输入电压是1.234V。第一步把MSB设为1此时DAC输出1.8V的一半即0.9V比较器输出表明输入大于DAC输出所以MSB保留为1。第二步把次高位设为1DAC输出0.9V加上0.45V即1.35V比较器输出表明输入小于DAC输出所以次高位清为0。一路比较下去8个周期后就能得到输入电压的二进制近似表示。整个过程看起来简单但落到电路实现上涉及的问题就多了DAC的建立精度必须高于0.5LSB在1.8V参考下8位的1LSB约7mV半LSB约3.5mV比较器必须在半个时钟周期内完成判断且不能有太大的失调SAR逻辑的时序必须保持严格的先后关系。这些约束条件决定了每个模块的设计要求。2.2 模块划分与选型考量8位SAR ADC可以划分为下面几个子模块模块功能设计要点采样开关采集输入电压到电容阵列导通电阻低、电荷注入小CDAC电容阵列采样保持 数模转换单位电容匹配性、开关时序比较器判断DAC输出与输入的大小增益足够、速度足够、失调可控SAR逻辑逐位逼近的数字控制基于D触发器的移位寄存器和锁存器时钟产生产生采样和转换时钟时序关系必须严格这里我选择的方案是不带采样保持前端的电荷重分配式SAR ADC也就是让CDAC本身兼任采样保持功能。这样做的好处是省去单独的前端SHA电路减少功耗和面积同时避免SHA和DAC之间由于时序不匹配带来的采样误差。关于CDAC结构8位SAR通常有两种选择二进制加权电容阵列和分段电容阵列。二进制加权电容阵列结构简单、控制逻辑清晰但最大的电容和最小的电容比值达到128:1对8位而言版图匹配性较差。分段电容阵列用衰减电容把高6位和低2位分开可以显著减小电容展开比但会引入寄生电容误差和额外的开关逻辑。为了降低初学难度我在这篇文章里选择了二进制加权电容阵列结构直观调试容易先把功能跑通再考虑优化。SAR逻辑部分我采用基于D触发器的异步时序结构。核心思路是用一组移位寄存器产生逐位有效信号再用一组锁存器记录比较结果。第一级移位寄存器在采样完成后启动逐周期把有效信号从MSB传到LSB同时锁存器把每一位的比较结果记录下来。2.3 时钟方案与转换时序设计整个SAR ADC的工作时序分成两个阶段采样阶段和转换阶段。采样阶段持续至少1个时钟周期此时采样开关导通CDAC上的电压跟随输入转换阶段需要8个时钟周期每个周期完成一位判决。在Cadence仿真环境里我直接用一个理想的电压源产生clk信号周期设置需要仔细考虑为了模拟真实的转换过程至少需要9个时钟周期1个采样 8个转换完成一次完整的转换所以瞬态仿真的总时间至少要覆盖9个周期以上才能看到完整的输出结果。这里有一个初学者经常犯的错误只仿真几个时钟周期结果发现输出还没稳定就结束了误以为电路有问题。我建议仿真时间至少设置20个时钟周期以上最好能从第一个转换周期开始就抓取波形观察数字输出是否按照预期逐位逼近。3. 底层模块搭建从D触发器到单元电路3.1 D触发器SAR逻辑的基石所有SAR控制逻辑的核心单元就是D触发器。这里我用的D触发器是上升沿触发、带有异步复位端的结构。异步复位端非常重要因为它保证电路在上电后能进入确定的初始状态如果没有复位移位寄存器启动时输出是随机的整个转换过程会完全乱掉。标准CMOS D触发器的门级结构需要两个锁存器串联主锁存器在时钟低电平时采样输入从锁存器在时钟高电平时锁存数据这样就能实现上升沿触发。具体到晶体管级实现我直接采用了标准的传输门结构大约需要20个左右的晶体管。初学者如果从零开始画晶体管会很痛苦建议使用Cadence的schematic editor借助数字标准单元库或者自己用门电路搭建。如果工艺库里有现成的标准单元比如tsmc180nm库通常包含D触发器单元可以直接调用加快设计流程。但作为学习目的我建议自己用门级电路搭一遍这样你对时序的理解会深入很多。D触发器在SAR逻辑里有两个用途一是构成移位寄存器产生逐位有效的控制信号二是构成数据锁存器在比较完成后锁存结果。前者需要同步时序设计后者需要与比较器的valid信号配合。3.2 与非门、或非门等基础门电路在搭建SAR逻辑之前需要确保基础门电路库是完整的。我用的tsmc180nm工艺库里数字门电路是作为标准单元提供的有完整的symbol和layout。如果你是第一次建库需要确认下面这些单元是否可用INV反相器基础中的基础几乎所有逻辑都需要NAND2、NAND3与非门用于译码和逻辑组合NOR2或非门用于复位逻辑DFFD触发器SAR核心寄存器MUX选择器用于开关控制信号产生确认库单元可用的方式是打开Library Manager找到你的目标库逐个展开单元查看是否有schematic和symbol。如果发现某个单元缺失就需要自己从晶体管级开始画这会大大增加工作量。所以建库的时候务必检查完整。3.3 比较器的选择与电路实现比较器是SAR ADC里对模拟性能影响最大的模块。8位SAR ADC的精度是8位比较器需要能够分辨的最小电压差是0.5LSB也就是约3.5mV。这就要求比较器的增益足够高、失调电压足够小、噪声足够低。常用的比较器结构有两种开环高增益比较器和锁存比较器。开环比较器本质上是一个高增益运放响应速度快但要消耗较大的静态电流锁存比较器先用前置放大器放大输入差模信号再由锁存级快速做出数字电平判断功耗低、速度快是SAR ADC的主流选择。综合考虑8位精度和180nm工艺的实际情况我选择了两级开环比较器结构第一级是差分输入单端输出的折叠共源共栅放大器提供约40dB增益第二级是共源放大器再提供约20dB增益总的开环增益在60dB左右完全满足比较器的分辨率要求。为了避免输出饱和影响下一级的判断在输出端加了两个反相器整形保证输出是干净的数字电平。有人说60dB增益会不会太高了实际上增益高一点没关系只要不引起振荡就行。比较器内部加了米勒补偿电容保证相位裕度在60度以上稳定性没有问题。3.4 CDAC电容阵列设计CDAC是整个SAR ADC里最核心的模拟模块它同时兼负采样保持和DAC的功能。8位二进制加权CDAC的电容值设置如下从MSB到LSB电容值依次为64C、32C、16C、8C、4C、2C、C、C。注意最低位是两个C并联其中一个用于半LSB移位这是电荷重分配DAC的标准结构。单位电容C的选择需要综合考虑匹配性、速度和功耗。180nm工艺下单位电容取20fF左右比较合适。如果太小版图的寄生电容和失配会很严重如果太大总面积和功耗都会上升。我用的是20fF的MIM电容整体电容阵列的总电容值是128C 2.56pF面积不算大建立时间也可以接受。有两点设计上的细节想强调第一最高位电容MSB的权重是64C也就是整个阵列的一半。这是因为在电荷重分配过程中MSB的切换决定了DAC输出跳变的一半量程。如果MSB电容失配0.5%就会产生约2.5LSB的误差这在8位设计里是不允许的。所以版图上MSB电容需要用common centroid布局来保证匹配。第二开关控制信号的顺序很重要。CDAC的下极板接输入或地的开关必须由SAR逻辑严格控制。在采样阶段所有下极板开关都接到输入信号转换阶段开始后先断开输入开关再把MSB对应的下极板切到参考电压完成第一次比较器的判断。这个过程我后面会详细讲。3.5 采样开关设计采样开关的作用是在采样阶段把输入电压传到CDAC的上极板。最简单的实现是单个NMOS晶体管但缺点是导通电阻随输入电压变化会产生非线性误差。在180nm工艺、1.8V电源电压下输入信号的范围是0到1.8V。如果只用一个NMOS当输入电压接近1.5V以上时过驱动电压非常小开关几乎打不开采样出来的电压误差会非常大。所以我这里用了CMOS互补开关即NMOS和PMOS并联两个管的导通电阻曲线互补可以保证在整个输入范围内总导通电阻都比较低。采样开关的尺寸选择也要注意。我用的NMOS宽长比是2.4u/180nPMOS是4.8u/180nPMOS做宽一些是因为它的迁移率较低需要更大的尺寸才能获得与NMOS相当的导通电阻。如果通道太窄RC常数太大采样建立时间不够如果通道太宽电荷注入和时钟馈通效应又会增强。实际设计时需要用瞬态仿真来确定合适的尺寸。4. SAR逻辑的完整实现4.1 基于D触发器的逐位逼近控制逻辑SAR逻辑是整个ADC的“大脑”负责在正确的时间点产生正确的控制信号。它的核心结构是移位寄存器 锁存器的组合。我设计的SAR逻辑结构如下8个移位寄存器单元级联第一级在采样阶段结束后被预置为1其余为0。每个时钟上升沿有效信号向右移动一位。这样从第1个转换周期开始依次产生MSB、MSB-1、...、LSB的有效信号。每个有效信号控制两件事一是把该位对应的CDAC下极板开关切换到参考电压二是把比较器的输出锁存到该位对应的寄存器里。时间顺序上必须先切换DAC等DAC输出稳定后再启动比较器最后在时钟上升沿锁存比较结果。这个时序关系决定了SAR逻辑电路的延迟路径必须满足对应的时序约束。我实际用了两次分频的逻辑思路来理解这个过程如果把整个转换过程当作一个状态机采样阶段是状态0转换的8个时钟周期是状态1到状态8。每个状态的切换由时钟上升沿触发状态内部完成DAC切换和比较。这本质上就是一个时序逻辑电路设计的经典例子。4.2 复位逻辑的设计细节复位逻辑决定了SAR ADC启动时的初始状态。我用的是全局复位信号RST低电平有效。复位时所有移位寄存器的输出清零所有锁存器清零CDAC的下极板开关全部接到地。这里有一个很关键的细节复位不仅要清移位寄存器还要清输出锁存器。只清移位寄存器的话第一次转换时输出端口是上一个状态的残留值显示出来的波形会让人误以为电路出错。我一开始就踩过这个坑输出波形看起来奇奇怪怪的后来检查才发现是锁存器没有复位导致的。复位信号在仿真开始时由脉冲源产生持续一个时钟周期的高电平对于复位信号来说是拉低然后回到正常工作电平。在Cadence里我用一个独立的脉冲电压源产生这个信号设置好延迟和脉宽即可。4.3 译码与开关驱动电路CDAC的每个下极板开关都需要一个控制信号。控制信号的产生逻辑如下采样阶段所有开关都切换到输入IN转换阶段根据SAR寄存器的值决定每个电容下极板接VREF还是接GND。以MSB位为例控制信号的逻辑是采样信号为高时MSB开关接输入采样信号为低且对应有效信号为高时MSB开关接VREF其他情况接GND。这个逻辑可以用一个简单的组合电路实现用采样信号和有效信号组合成三个选择输入。我在实际实现中用了一个二选一MUX级联的方式来做开关控制。第一级MUX选择输入还是DAC模式第二级MUX在DAC模式下选择VREF还是GND。这样逻辑清晰便于调试。开关驱动电路要注意的是信号的驱动能力。CDAC的开关是传输门结构栅极电容不小如果驱动能力不足开关切换速度会变慢影响DAC建立时间。我在每个开关控制信号的末端加了两级反相器作为缓冲器有效解决了驱动问题。5. 仿真环境搭建与完整仿真5.1 Cadence仿真环境准备开始仿真之前确保你的Cadence环境已经配置好。我使用的是IC617配置了tsmc180nm工艺库。仿真的整个流程是在virtuoso schematic里完成电路图绘制再创建testbench调用spectre仿真器进行瞬态分析。Testbench需要包含这些模块被测试的SAR ADC顶层模块、理想电压源电源VDD、地VSS、参考电压VREF、采样时钟CLK、复位信号RST、输入信号源可以是斜坡或正弦波、数字输出负载通常是理想的电容负载。参考电压VREF我设置为1.8V输入信号用分段线性源PWL或者正弦波源。如果是验证ADC的静态性能DNL/INL输入用斜坡信号比较合适如果是验证动态性能SNR/SFDR输入用正弦波。第一次跑通功能验证建议用斜坡信号容易观察输出码是否单调递增。5.2 瞬态仿真的参数设置与操作步骤创建一个瞬态仿真的具体操作如下在virtuoso中打开testbench顶层schematic选择Launch ADE L或者ADE XL设置仿真类型为transient瞬态仿真。关键参数设置如下仿真总时间至少20个时钟周期。如果时钟频率是1MHz周期1us那么总仿真时间至少20us。我习惯多留一些余量设置成50us这样后面增加输入信号扫频方便一些。最大步长maxstep这个参数非常关键。默认值往往太大导致关键瞬态过程比如比较器翻转瞬间被漏掉仿真结果看起来波形严重失真。我一般设置成时钟周期的百分之一也就是10ns。如果你发现某个瞬间波形很奇怪先把maxstep调小再试。精度参数使用默认的moderate精度即可。如果遇到不收敛问题可以尝试改成liberal加快收敛但精度略降。运行仿真的操作很简单点击绿色运行按钮等待Spectre跑完。如果一切正常就能在波形窗口看到各个关键节点的电压波形。5.3 仿真波形的分析方法仿真跑完之后如何判断电路工作是否正常我的分析方法是按照以下步驟逐一检查首先看CLK输入波形是否正常。这个看似废话但实际仿真中很多人用脉冲源设置错了周期或占空比导致时钟根本不是预期的频率。检查时钟的上升沿时间点是否符合预期。其次看采样保持信号也就是CDAC上极板电压。波形应该表现为采样阶段跟随输入信号进入转换阶段后保持稳定。如果上极板电压在转换阶段出现明显的漂移或台阶说明开关漏电或者CDAC电荷泄漏严重需要检查开关管。接着看比较器的输出。比较器应该在每个转换周期内完成一次有效的翻转输出从上一位的比较结果变为当前位的比较结果。在波线上可以看到8个周期的脉冲式变化。最后看数字输出。这是最直观的判断方式把8位数字输出信号画在一起转换成模拟曲线可以用Calculator里的bus功能观察是否是一条随输入线性变化的曲线。如果输入是斜坡输出曲线应该是一条单调递增的阶梯线。如果有跳码或非单调性就要回头排查具体是哪一位出了问题。6. 常见问题与避坑指南6.1 瞬态仿真不收敛的排查思路Cadence瞬态仿真不收敛是初学者遇到最多的报错之一。报错信息通常会提示哪个节点没有收敛或者让你调整积分容差参数。这个问题我在第一次搭建SAR ADC时也遇到过分享一下常见的排查方向。最直接的方法是调整仿真器的收敛参数。在ADE L中选择Simulation Options把gmin最小电导从默认值调大一些比如1e-12调到1e-10这能有效帮助仿真器找到直流工作点。另外把iabstol电流绝对精度从默认的1e-12调到1e-13或更小也有助于收敛。如果调参还不收敛就要考虑是不是电路本身有问题。有一种非常常见的情况没有设置初始条件。比如CDAC的上极板电压是浮空的没有初始电荷仿真器无法确定初始状态就会导致不收敛。解决方案是在仿真设置里给关键节点添加初始条件。具体做法是选中该节点右键设置初始电压比如V0。我碰到的另一个坑是时钟脉冲上升沿时间设置得太短。如果上升沿是0理想跳变Spectre会很难处理这种无限斜率的信号。解决方案是把上升沿设为1ns甚至更宽的时间。你可以把理想脉冲源的上升时间从默认的0改成1ns大约是时钟周期的千分之一收敛问题往往就解决了。6.2 比较器失调导致的转换错误有时仿真能跑完但输出结果不对最常见的原因就是比较器设计有缺陷。如果比较器的失调电压过大超过了0.5LSB转换结果就会发生错误。判断方法很简单比较器两个输入端短接输出应该稳定在逻辑中间值对1.8V电源来说大约是0.9V。如果输出明显偏到高电平或低电平一侧说明失调很大。减少失调的方法有几个加大输入管的尺寸可以减小失配根据工艺失配模型失调和栅面积的平方根成反比用Auto-Zeroing自动调零技术可以完全消除失调但会增加电路复杂度。对8位SAR ADC来说前一种方法通常就够了。如果比较器的增益不够也会产生类似的错误表现。增益不足导致比较器在输入差模电压很小时无法可靠输出高或低电平而是输出中间电平后面的锁存器会误判。这时需要检查比较器的直流增益是否达到了设计值我设计的是60dB。在ADE中跑一个dc仿真扫描差模输入电压观察输出变化曲线增益可以从曲线的斜率读出来。6.3 CDAC建立的精度问题如果比较器没有问题但ADC仍然存在错误输出下一步就要检查CDAC的建立是否不充分。对一个8位SAR ADC来说每次DAC切换后建立误差必须小于0.5LSB。DAC建立的RC时间常数由开关导阻和电容阵列总电容决定。总电容是2.56pF如果开关导通电阻是10kΩ时间常数是25.6ns。要在半个时钟周期内建立到0.5LSB精度约0.002需要的建立时间是ln(256)乘以时间常数约等于5.5乘以25.6ns约140ns。这就意味着时钟半周期必须大于140ns换算成频率就是时钟周期超过280ns即时钟频率低于3.57MHz。如果你的时钟频率太高DAC来不及建立就会出现转换错误。解决的方法有两个增大开关尺寸降低导通电阻或者降低时钟频率。我实际设计中把传输门开关的宽长比加大到NMOS 4.8u/180nPMOS 9.6u/180n导通电阻降到5kΩ左右建立时间缩短到140ns的一半时钟可以跑更高。6.4 避免“铜皮”与“禁止铺铜區”的干扰这个标题下的热词里出现了“cadence 铜皮 优先级”和“cadence禁止铺铜区”这其实主要是PCB Layout阶段的概念。但在SAR ADC的版图阶段类似的问题也会出现在电容阵列下方你必须用屏蔽层通常是接地的n-well或者p-substrate接触隔离衬底噪声。不要为了省面积把数字控制信号的走线布在电容阵列正下方这会引起耦合噪声直接影响DAC精度。我在实际版图里会在电容阵列下方画一圈接地guard ring同时在Cadence里设置禁止铺铜区域防止自动布线工具把数字信号线布到敏感区域。这个操作逻辑和PCB设计里的禁止铺铜区是一模一样的换到版图工具里同样适用。如果你的项目后面要走到版图这一步记住这个经验。6.5 常见问题速查表问题现象可能原因解决方案瞬态仿真报错不收敛浮空节点无初始值给关键节点添加初始条件瞬态仿真报错不收敛脉冲源上升沿为0设置上升时间为1ns左右输出码跳变不单调比较器失调过大加大输入管尺寸或加自动调零输出码在特定值反复CDAC建立不充分降低时钟频率或增大开关尺寸输出码整体偏大/偏小参考电压设置错误检查VREF电源连接第一个转换周期输出乱锁存器未复位确保所有输出锁存器接复位信号波形出现大量毛刺时钟馈通减小采样开关尺寸或增加dummy管6.6 仿真器件未定义的处理另一个高频报错是“仿真器件未定义”通常在调用库里的某个器件时出现。原因通常是仿真库没有正确配置或者调用的器件缺少spectre模型。解决办法很简单打开Library Manager确认你画的每个器件比如NMOS、PMOS、电容、电阻都属于已经添加了model的工艺库。在ADE里打开Model Library Setup确认tsmc180nm的模型文件路径是否正确添加。如果器件是数字标准单元比如D触发器还需要确认数字库的仿真模型也添加进去。这个错误一般出现在换了工艺库或者换了仿真器的场景下排查思路就是逐级确认模型库路径是否完整。多数时候问题出在模型库文件路径写错了重新添加一次就好了。7. 性能优化与后续扩展方向7.1 从8位扩展到10位或12位的改动思路8位SAR ADC跑通之后扩展到更高位数的思路是类似的。以10位为例需要把CDAC从8个单位电容扩展到10位重新计算电容权重。SAR逻辑也需要增加两个移位寄存器和两个锁存器。比较器的精度要求会提升——10位的半LSB在1.8V参考下约0.88mV对比较器的失调和噪声提出了明显更高的要求。扩展时最容易忽略的是DAC建立时间的约束。位数越多DAC需要建立的精度越高而电容阵列的总电容也在增大建立时间反而可能变长。所以从8位扩到12位不是简单地把电容翻几倍就行而是需要重新设计开关尺寸、重新确认时钟频率有时候甚至需要改变DAC架构比如从二进制加权改成分段结构才能合理控制电容展开比。7.2 降低功耗的常见优化手段SAR ADC的核心优势之一是功耗低但低功耗设计也有一些技巧。首先在比较器方面可以用动态比较器替代静态比较器动态比较器只在比较阶段导通电流因此功耗可以大幅降低。其次是CDAC的开关策略优化。我用的传统开关方式需要4个参考电平VREF、GND、输入、共模改成单调开关方式只需要VREF和GND两个电平同时可以减少约一半的开关功耗。代价是输出结果变成非二进制码需要在后端做码转换。最后是电容阵列的单位电容缩减。如果工艺匹配性允许用更小的单位电容比如10fF甚至5fF可以成比例降低DAC的动态功耗。我建议在最低设计裕量内尽量选小电容功耗收益会很可观。7.3 异步SAR ADC的探索这次文章里用的SAR逻辑是同步的也就是每个时钟周期完成一位判决。还有另一种设计思路叫异步SAR它不需要外部提供高频时钟而是由比较器的valid输出触发下一位的转换。异步SAR的好处是每一级的比较时间可以根据实际情况动态调整不需要为了最坏情况预留裕量因此总体转换速度更快。异步SAR的设计难点在于时序控制。因为每一位的转换时间不再由一个统一的时钟决定而是由前一位比较器的完成时间决定所以需要设计比较器的valid检测电路。这个电路要能检测比较器输出是否已经做出决策同时不能增加太大的延迟。如果你有兴趣可以在8位同步SAR ADC跑通的基础上把同步SAR逻辑改成异步SAR逻辑这会是一篇进阶文章的好素材。8. 实操心得与建议走完整个8位SAR ADC的设计流程我最深的体会是SAR ADC的设计成败七成在时序三成在模拟。与其花大量时间去优化比较器的增益带宽不如先把SAR逻辑的时序关系理清楚。时序错乱带来的问题比模拟性能不足带来的问题难查得多。另外想强调一点仿真环境和模型库的配置一定要提前确认清楚。我见过不少同学在电路搭了一半之后才发现某个器件的model没有添加结果只能回头重来。在设计开始前先在工程里画一个最简单的反相器Run一遍仿真确保环境没问题再开始搭复杂电路这是节省时间的最好方法。关于调试节奏我推荐“自底向上”的策略先把D触发器单独仿真验证输入一个时钟和数据观察Q是否在上升沿正确捕获数据再把SAR逻辑单独仿真用理想的比较器输出替代真实比较器确认控制信号波形符合预期后最后再接入真实比较器和CDAC进行整体集成仿真。这样每一步的问题都能被快速定位到具体模块不会出现“整个电路连在一起不知道哪部分出错”的局面。最后留一个小技巧在仿真中给SAR ADC施加一个缓慢变化的斜坡输入观察输出码的转换情况是排查问题最快的测试方案。如果某个码阶出现跳变或者缺失就能迅速定位到出问题的那一位对应的电容、开关和逻辑都能顺藤摸瓜找到。当年这个技巧帮我节省了至少一个下午的调试时间相信对你也会有用。
返回列表