电子烂人

个性签名:

没用比没有强

  • 2024-07-15
  • 回复了主题帖: 2024年STM32全国巡回研讨会邀您参加!与ST工程师面对面,探讨STM32新技术、新方向!

    这次连午餐都不提供了,怕不是去年被学术蝗虫吃怕了

  • 回复了主题帖: QSpice-(5) .model使用

    学到了,感谢大佬

  • 回复了主题帖: 仿真+简单尝试下TLV62130的几种仿真

    dukedz 发表于 2024-7-15 11:00  为啥不用 kicad,日常画图和 spice 仿真一站式解决。 KICAD只用过它画过图,没用过仿真。 请问有教程指路吗,感谢大佬

  • 回复了主题帖: 仿真+简单尝试下TLV62130的几种仿真

    忠耿 发表于 2024-7-15 17:41 仿真图错了,240k应该连在FB跟GND之间,你连到SW脚了    感谢大佬指正,不过问题貌似依然没有解决,电压还是远高于设计VOUT

  • 2024-07-14
  • 发表了主题帖: 仿真+简单尝试下TLV62130的几种仿真

    最近做的一个板子的电源部分有问题,估测输出1.8V,实际输出高达11v,仿真来看下是哪里的问题 1.资料查找 所用型号为TLV62130: TLV62130 数据表、产品信息和支持 | 德州仪器 TI.com.cn     TI针对这款芯片有完整的中文手册和数据表: TLV62130x 采用 3x3 QFN 封装的 3V 至 17V 3A 降压转换器 datasheet (Rev. H) (ti.com.cn) 我们要做的是仿真,看一下是哪里出了问题 当然,最简单的可以直接在下面TI的webbench  直接仿真: 不过这个只能看下LAYOUT建议和转换效率,以及TI官方给出的原理图。 2.multisim仿真 要是想修改电路和在已有板卡的基础上仿真,还是要用到multisim,笔者自用multisim版本为14.3教育版 TI针对仿真文件给出了多种仿真模型:我们最常用的是第一款SPICE的模型   下载好之后,还需要对其进行一定的修改:把 .lib 文件修改为.cir 文件   关于导入请看这部分:在没有组件向导的情况下将SPICE模型导入Multisim - NI,写的很详细 直接跳过到后面部分:     导入中遇到个小问题:   可以按照这篇文章修改:【Multisim】关于导入TI的SPICE模型发生的报错_the model contains multiple-CSDN博客,给文件中添加两处*就可以 另外要注意QFN封装的中间的地也是一个引脚,最好加上,这样是16+1一共17个PIN,否则会出现以下问题:     成功添加如图:   接下来按照电路所画的原理图来仿真就可以了 故障部分原理图如图:   简单画一下仿真图:画的不好请多包涵     可以看到,这个电源的仿真8V实际测量的11v几乎相当,可以确认是电源设计不合理,而且还有地方短路,需要重新修改电路 3.QSPICE仿真: 正好版主推荐了QSPICE这个软件,不妨也来试一下 导入元器件相比multisim更加简单,只需要打开之前下载的文件,将代码复制到剪贴板: .SUBCKT TLV62130_TRANS PVIN1 PVIN2 AVIN EN + SS_TR DEF FSW PGND2 PGND1 ETPAD AGND PG + FB VOS SW3 SW2 SW1 R_R11 VIN AVIN 1m R_R13 SW3 SW 1m V_U3_V5 U3_N11301 0 1.2 I_U3_I1 U3_N11301 U3_N10915 DC 6.4u D_U3_U10 U3_N10915 U3_N11301 d_d1 X_U3_U11 DRVL_PRE U3_N12733 INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 C_U3_C2 0 U3_N10915 480f X_U3_S1 U3_N12733 0 U3_N10915 0 Mintoff_U3_S1 X_U3_U9 U3_N14024 U3_N10915 MIN_TOFF COMP_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 V_U3_V4 U3_N14024 0 667m R_R15 SW1 SW 1m D_U6_U17 U6_N16592 U6_N17195 d_d1 X_U6_U14 U6_N15145 DRVH_PRE CAPRIO N20512 SRLATCHRHP_BASIC_GEN PARAMS: + VDD=1 VSS=0 VTHRESH=0.5 X_U6_U20 U6_N16390 U6_N16592 U6_N26794 PAUSE AND3_BASIC_GEN PARAMS: + VDD=1 VSS=0 VTHRESH=500E-3 V_U6_V1 U6_N23722 0 1.5m C_U6_C4 0 U6_N16592 1n X_U6_U19 VIN U6_N25747 U6_N26794 COMP_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 X_U6_U18 DRVH_PRE DRVL_PRE U6_N17195 NOR2_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 X_U6_U12 U6_N23722 ISENSE_LS U6_N14289 COMP_BASIC_GEN PARAMS: VDD=1 + VSS=0 VTHRESH=0.5 E_U6_ABM1 U6_N26428 0 VALUE { (V(VOS) * 1.15) } R_U6_R4 U6_N26428 U6_N25747 1 R_U6_R3 U6_N17195 U6_N16592 1.44k X_U6_U16 MODE_LOGIC U6_N16390 INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 X_U6_U13 DRVL_PRE U6_N14289 U6_N15145 AND2_BASIC_GEN PARAMS: VDD=1 + VSS=0 VTHRESH=500E-3 C_U6_C5 0 U6_N25747 1n V_U5_V3 U5_N12138 0 +PULSE 0 1 1u 10n 10n 1000 2000 E_U5_ABM4 U5_N20257 0 VALUE { IF(V(VOS) < 0.5, 1.2, 3.2) } X_U5_U15 U5_N38320 CLIMIT_LS BUF_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 R_U5_R5 U5_N20257 U5_LSLIMIT_THRESH 1 X_U5_U3 ISENSE_HS U5_HSLIMIT_THRESH U5_N36255 COMP_BASIC_GEN PARAMS: + VDD=1 VSS=0 VTHRESH=0.5 R_U5_R10 U5_N478281 U5_HSLIMIT_THRESH 1 C_U5_C5 0 U5_LSLIMIT_THRESH 1n R_U5_R6 U5_N500741 U5_N49148 1 E_U5_ABM2 U5_N145201 0 VALUE { (V(U5_N06443) + 2.9) } C_U5_C10 0 U5_HSLIMIT_THRESH 1n X_U5_U1 U5_LSLIMIT_THRESH ISENSE_LS U5_N25875 COMP_BASIC_GEN PARAMS: + VDD=1 VSS=0 VTHRESH=0.5 R_U5_R3 U5_N145201 U5_N03743 1 C_U5_C3 0 U5_N03743 1n E_U5_ABM5 U5_N478281 0 VALUE { IF(V(VOS) < 0.5, 1.8, + V(U5_N49148)) } X_U5_U5 VIN U5_N03743 UVLO_OUT COMP_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 X_U5_U16 PAUSE DRVL_PRE U5_CL_MASK N47303 SRLATCHRHP_BASIC_GEN PARAMS: + VDD=1 VSS=0 VTHRESH=0.5 X_U5_U2 DRVL_PRE U5_N25875 U5_N38308 AND2_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 R_U5_R2 U5_N06376 U5_N06443 1 C_U5_C9 0 U5_N38320 1n X_U5_U13 U5_N35681 CLIMIT_HS BUF_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 X_U5_U4 U5_N36255 DRVH_PRE U5_N35669 AND2_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 C_U5_C8 0 U5_N35681 1n R_U5_R9 U5_N38308 U5_N38320 4 E_U5_ABM6 U5_N500741 0 VALUE { IF(V(U5_CL_MASK) > 0.5, 2.5, 4) } C_U5_C2 0 U5_N06443 1n R_U5_R8 U5_N35669 U5_N35681 25 E_U5_ABM1 U5_N06376 0 VALUE { (V(UVLO_OUT) * -200m) } D_U5_U14 U5_N38320 U5_N38308 d_d1 X_U5_U9 UVLO_OUT EN_LOGIC U5_N12138 SDWN_N AND3_BASIC_GEN PARAMS: VDD=1 + VSS=0 VTHRESH=500E-3 D_U5_U12 U5_N35681 U5_N35669 d_d1 C_U5_C6 0 U5_N49148 1n X_U4 MIN_TOFF MIN_TOFF_N INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 R_R8 0 PGND2 1m R_U4_R2 U4_N15867 MODE_LOGIC 1 E_U4_ABM4 U4_N17314 0 VALUE { IF(V(FSW) > 0.895,1,0) } E_U4_ABM2 U4_N15867 0 VALUE { IF(V(MODE) > 0.8,1,0) } X_U4_S1 U4_N18546 0 EN 0 LogicTrans_U4_S1 C_U4_C4 0 FSW_LOGIC 1n X_U4_U1 EN_LOGIC U4_N18546 INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 E_U4_ABM1 U4_N15535 0 VALUE { IF(V(EN) > 0.895,1,0) } X_U4_S3 U4_N19391 0 FSW 0 LogicTrans_U4_S3 C_U4_C1 0 EN_LOGIC 1n X_U4_S2 U4_N19171 0 DEF 0 LogicTrans_U4_S2 R_U4_R1 U4_N15535 EN_LOGIC 1 C_U4_C2 0 MODE_LOGIC 1n R_U4_R3 U4_N16997 DEF_LOGIC 1 X_U4_U3 FSW_LOGIC U4_N19391 INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 E_U4_ABM3 U4_N16997 0 VALUE { IF(V(DEF) > 0.895,1,0) } X_U4_U2 DEF_LOGIC U4_N19171 INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 C_U4_C3 0 DEF_LOGIC 1n R_U4_R4 U4_N17314 FSW_LOGIC 1 X_U3 MIN_TON MIN_TON_N INV_BASIC_GEN PARAMS: VDD=1 VSS=0 VTHRESH=500E-3 X_U2_U9 U2_N14352 U2_N10820 MIN_TON COMP_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 V_U2_V5 U2_N19572 0 1.2 R_U2_R2 SWBY4 U2_N14352 1.3MEG C_U2_C2 0 U2_N10820 2.20p V_U2_V4 U2_N19580 0 667m R_U2_R1 U2_N21998 VIN 630k I_U2_I1 U2_N19572 U2_N19824 DC 4.7m X_U2_U11 DRVH_PRE U2_N12733 INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 D_U2_U10 U2_N19824 U2_N19572 d_d1 X_U2_U12 DRVH_PRE U2_N19880 INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 C_U2_C4 0 U2_N19824 480p X_U2_S3 FSW 0 U2_N21998 U2_N10820 Minton_U2_S3 X_U2_S2 U2_N19880 0 U2_N19824 0 Minton_U2_S2 X_U2_S1 U2_N12733 0 U2_N10820 0 Minton_U2_S1 X_U2_U13 U2_N19580 U2_N19824 MIN_TON_ABS COMP_BASIC_GEN PARAMS: VDD=1 + VSS=0 VTHRESH=0.5 C_U2_C3 0 U2_N14352 5p E_GAIN1 N73876 0 VALUE {1 * V(HS_ON)} R_R12 SW2 SW 1m V_V1 MODE 0 0Vdc X_U8_U27 U8_N123495 U8_N97725 N127397 U8_N129154 SRLATCHRHP_BASIC_GEN + PARAMS: VDD=1 VSS=0 VTHRESH=0.5 X_U8_U9 U8_PWM U8_N96933 INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 X_U8_U20 LS_ON U8_LS_ON_N INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 X_U8_U799 U8_N109134 SDWN U8_N96973 OR2_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 X_U8_U797 U8_N97687 U8_N97707 SDWN_N U8_LDRV_PBIAS U8_LS_SET + AND4_BASIC_GEN PARAMS: VDD=1 VSS=0 VTHRESH=500E-3 X_U8_U23 CLIMIT_HS U8_N97725 CL_DET U8_N129006 SRLATCHRHP_BASIC_GEN + PARAMS: VDD=1 VSS=0 VTHRESH=0.5 X_U8_U29 PWMIN U8_N129006 U8_N129154 U8_PWM AND3_BASIC_GEN PARAMS: + VDD=1 VSS=0 VTHRESH=500E-3 X_U8_U22 MIN_TOFF_N U8_PWM U8_N96977 AND2_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 X_U8_U800 DRVL_PRE U8_N125193 INV_DELAY_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 DELAY=40n R_U8_R1 U8_N96973 U8_HS_RST 800 X_U8_U28 U8_N125193 DRVL_PRE U8_N123495 AND2_BASIC_GEN PARAMS: VDD=1 + VSS=0 VTHRESH=500E-3 X_U8_U798 CAPRIO SDWN U8_N96977 U8_LDRV_PBIASBAR U8_LS_RST + OR4_BASIC_GEN PARAMS: VDD=1 VSS=0 VTHRESH=500E-3 X_U8_U26 U8_N96933 MIN_TON_N MIN_TON_ABS_N U8_N109134 AND3_BASIC_GEN + PARAMS: VDD=1 VSS=0 VTHRESH=500E-3 X_U8_U14 HS_ON U8_HS_ON_N INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 X_U8_U18 U8_LS_SET U8_LS_RST U8_N97631 U8_LS_ON_PRE + SRLATCHRHP_BASIC_GEN PARAMS: VDD=1 VSS=0 VTHRESH=0.5 X_U8_U17 CAPRIO U8_N97707 INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 X_U8_U7 U8_LS_ON_PRE SDWN_N U8_PWM U8_HS_SET AND3_BASIC_GEN PARAMS: + VDD=1 VSS=0 VTHRESH=500E-3 X_U8_U795 PWMIN SDWN U8_LDRV_PBIAS U8_LDRV_PBIASBAR + SRLATCHRHP_BASIC_GEN PARAMS: VDD=1 VSS=0 VTHRESH=0.5 C_U8_C1 0 U8_HS_RST 10p X_U8_U25 CLIMIT_LS SDWN U8_N97725 OR2_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 X_U8_U8 U8_HS_SET U8_HS_RST HS_ON N96925 SRLATCHRHP_BASIC_GEN PARAMS: + VDD=1 VSS=0 VTHRESH=0.5 D_U8_U12 U8_N96973 U8_HS_RST d_d1 X_U8_U13 U8_HS_ON_N U8_N96933 U8_N97687 AND2_BASIC_GEN PARAMS: VDD=1 + VSS=0 VTHRESH=500E-3 X_U8_U15 U8_HS_ON_N U8_N97631 LS_ON AND2_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 R_R4 0 EN 160MEG X_U26 N73924 P100 BUF_BASIC_GEN PARAMS: VDD=1 VSS=0 VTHRESH=0.5 V_V2 N184131 0 7.4 X_U7_U11 HS_ON U7_N33760 BUF_DELAY_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 DELAY=8n V_U7_V2 SW U7_N37456 320m X_U7_H2 U7_N33844 0 0 ISENSE_LS Driver_U7_H2 X_U7_U6 U7_N37456 U7_N33952 d_d1special V_U7_V1 U7_N754010 SW 320m X_U7_H1 PVIN U7_N33952 ISENSE_HS 0 Driver_U7_H1 X_U7_U4 U7_N33832 U7_N33808 BUF_DELAY_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 DELAY=6n X_U7_U2 U7_N33760 U7_N33764 DRVH_PRE AND2_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 X_U7_S3 DRVH_PRE 0 U7_N33952 SW Driver_U7_S3 X_U7_U3 U7_N33832 U7_N33808 DRVL_PRE AND2_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 X_U7_U12 LS_ON U7_N33832 BUF_DELAY_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 DELAY=8n X_U7_U5 U7_N33844 U7_N754010 d_d1special X_U7_U1 U7_N33760 U7_N33764 BUF_DELAY_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 DELAY=6n X_U7_S4 DRVL_PRE 0 SW U7_N33844 Driver_U7_S4 R_R7 0 AGND 1m E_ABM1 N128939 0 VALUE { IF(V(VIN) > 6V, 6, V(VIN)) } E_U11_ABM2 U11_N222011 0 VALUE { {(LIMIT(V(SS_TR), 0, 1.25) + )*0.64} } V_U11_V1 U11_N221204 0 4.8 R_U11_R10 U11_N222011 U11_N222353 1 C_U11_C5 0 U11_N222353 1n E_U11_ABM4 U11_N231653 0 VALUE { (1+ (V(DEF_LOGIC) *50m) + + (V(P100)*5m))* + V(U11_N222353) } R_U11_R9 U11_N220353 U11_N220347 1 X_U11_S1 U11_N226363 0 SS_TR 0 SoftStart_U11_S1 E_U11_ABM1 U11_N220347 0 VALUE { IF(V(SDWN_N) < 0.5,0,1) } X_U11_U9 SDWN_N U11_N226363 INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 C_U11_C4 0 U11_N220353 1n R_U11_R11 U11_N231653 INT_VREF 1 D_U11_U8 SS_TR U11_N221204 d_d1 C_U11_C6 0 INT_VREF 1n G_U11_ABMII1 U11_N221204 SS_TR VALUE { V(U11_N220353)*2.5u } C_U11_C7 0 SS_TR 5p X_U6 SDWN_N SDWN INV_BASIC_GEN PARAMS: VDD=1 VSS=0 VTHRESH=500E-3 C_C3 0 VIN_LDO 1n R_R9 0 PGND1 1m R_R10 PVIN PVIN2 1m E_U1_ABM4 U1_N273241 0 VALUE { LIMIT(((V(INT_VREF) -V(FB))*5.3u), + 500n,-500n) } R_U1_R3 U1_N147079 SW 667k R_U1_R7 0 U1_N147163 6.67k R_U1_R11 U1_INNER_REF 0 2.4G X_U1_U2 U1_INNER_REF U1_INNER_FB U1_N264687 COMP_BASIC_GEN PARAMS: + VDD=1 VSS=0 VTHRESH=0.5 X_U1_U3 FB U1_N147219 U1_N147271 COMP_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 E_U1_ABM10 U1_INNER_REF_CLAMP 0 VALUE { MIN(V(VIN),5) } X_U1_U8 PAUSE P100 U1_FBREF_SHORT OR2_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 G_U1_ABMII2 U1_N147365 U1_N147247 VALUE { V(U1_VCTRLM) } C_U1_C10 0 U1_VCTRLM 1n X_U1_S3 SDWN_N 0 U1_INNER_FB U1_INNER_REF ErrorAmp_U1_S3 V_U1_V6 U1_N194447 0 0.744 X_U1_U11 U1_N264687 U1_N265822 PAUSE PWMIN MUX2_BASIC_GEN PARAMS: VDD=1 + VSS=0 VTHRESH=0.5 R_U1_R20 0 U1_N265822 50 R_U1_R15 U1_N148765 U1_N195543 1 V_U1_V2 U1_N147219 0 0.76 X_U1_U10 FB U1_N194447 U1_N194443 COMP_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 T_U1_T1 U1_N264687 0 U1_N265822 0 Z0=50 TD=300n R_U1_R12 U1_N147133 U1_N148771 1 R_U1_R6 U1_INNER_REF U1_ISINK 750k G_U1_ABM3I1 0 U1_INNER_REF VALUE { IF((V(SDWN_N) < 0.5) | + (V(CL_DET) > 0.5),0, + V(U1_N148405)) } D_U1_U6 U1_INNER_REF U1_INNER_REF_CLAMP d_d1 C_U1_C9 0 U1_N148765 1n V_U1_V1 U1_N147365 0 15m R_U1_R8 SWBY4 U1_N147079 844.4k C_U1_C1 VOS U1_INNER_FB 20p X_U1_U5 SDWN_N U1_N147377 INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 D_U1_U1 U1_N147247 U1_N147365 d_d1 R_U1_R19 U1_N180936 U1_VCTRLM 1 X_U1_U4 U1_N147271 U1_N147377 N148783 U1_SOFTSTART SRLATCHRHP_BASIC_GEN + PARAMS: VDD=1 VSS=0 VTHRESH=0.5 R_U1_R17 0 SWBY4 500k E_U1_ABM8 U1_N195543 0 VALUE { IF(V(U1_N194443) > 0.5,V(U1_VCLAMP), + 125n) } X_U1_S1 U1_FBREF_SHORT 0 U1_INNER_FB U1_ISINK ErrorAmp_U1_S1 R_U1_R1 U1_INNER_FB U1_N147079 1.337MEG C_U1_C6 0 U1_N148771 1n R_U1_R13 U1_VCLAMP U1_N273241 1 C_U1_C3 U1_N147163 U1_INNER_REF 10p G_U1_ABMII3 U1_ISINK 0 VALUE { IF(V(CL_DET) > 0.5,125n,0) } D_U1_U9 0 U1_INNER_REF d_d1 X_U1_S2 HS_ON 0 U1_N147247 U1_N147163 ErrorAmp_U1_S2 X_U1_U7 U1_N148765 U1_N148771 U1_SOFTSTART U1_N148405 MUX2_BASIC_GEN + PARAMS: VDD=1 VSS=0 VTHRESH=0.5 C_U1_C7 0 U1_VCLAMP 1n E_U1_ABM6 U1_N180936 0 VALUE { IF(V(HS_ON) > 0.5,1.5u,0) } E_U1_ABM3 U1_N147133 0 VALUE { IF(V(U1_VCLAMP) > 125n, 125n, + IF (V(U1_VCLAMP) <-125n, + -125n,V(U1_VCLAMP))) } D_U20 VOS N184131 d_d1 C_C4 FB VOS 25p X_U9 MIN_TON_ABS MIN_TON_ABS_N INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 R_R5 N128939 VIN_LDO 1 R_R16 0 ETPAD 1m R_R3 N73876 N73924 200k R_R14 PVIN PVIN1 1m C_C2 0 N73924 1n R_U10_R3 U10_N222172 U10_N14135 1 R_U10_R1 U10_N14627 U10_N00497 14.4k E_U10_ABM6 U10_N2217831 0 VALUE { (V(INT_VREF)*-0.05* + +V(U10_OUT2)) } X_U10_U5 FB U10_N14135 U10_N14627 COMP_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 E_U10_ABM7 U10_N222172 0 VALUE { (V(U10_N221839)+ + +V(U10_N222445)) } R_U10_R6 U10_N2217831 U10_N221839 1 C_U10_C6 0 U10_N221839 1n X_U10_U6 U10_N00497 U10_N21024 INV_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=500E-3 R_U10_R4 U10_N2192031 U10_N222445 1 D_U10_U7 U10_N00497 U10_N14627 d_d1 C_U10_C3 0 U10_N14135 1n E_U10_ABM4 U10_N2192031 0 VALUE { MAX(V(INT_VREF)*0.95,0.76) } C_U10_C4 0 U10_N222445 1n X_U10_S1 U10_N22863 0 PG 0 PG_SGND_U10_S1 X_U10_U9 U10_N00497 U10_OUT2 BUF_BASIC_GEN PARAMS: VDD=1 VSS=0 + VTHRESH=0.5 C_U10_C1 0 U10_N00497 1n X_U10_U8 U10_N21024 EN_LOGIC UVLO_OUT U10_N22863 AND3_BASIC_GEN PARAMS: + VDD=1 VSS=0 VTHRESH=500E-3 D_U19 N73924 N73876 d_d1 .ENDS TLV62130_TRANS *$ .subckt Mintoff_U3_S1 1 2 3 4 S_U3_S1 3 4 1 2 _U3_S1 RS_U3_S1 1 2 1G .MODEL _U3_S1 VSWITCH Roff=10e6 Ron=1.0 Voff=0.2 Von=0.8 .ends Mintoff_U3_S1 *$ .subckt LogicTrans_U4_S1 1 2 3 4 S_U4_S1 3 4 1 2 _U4_S1 RS_U4_S1 1 2 1G .MODEL _U4_S1 VSWITCH Roff=100e6 Ron=400k Voff=0.2 Von=0.8 .ends LogicTrans_U4_S1 *$ .subckt LogicTrans_U4_S3 1 2 3 4 S_U4_S3 3 4 1 2 _U4_S3 RS_U4_S3 1 2 1G .MODEL _U4_S3 VSWITCH Roff=100e6 Ron=400k Voff=0.2 Von=0.8 .ends LogicTrans_U4_S3 *$ .subckt LogicTrans_U4_S2 1 2 3 4 S_U4_S2 3 4 1 2 _U4_S2 RS_U4_S2 1 2 1G .MODEL _U4_S2 VSWITCH Roff=100e6 Ron=400k Voff=0.2 Von=0.8 .ends LogicTrans_U4_S2 *$ .subckt Minton_U2_S3 1 2 3 4 S_U2_S3 3 4 1 2 _U2_S3 RS_U2_S3 1 2 1G .MODEL _U2_S3 VSWITCH Roff=1 Ron=630k Voff=0.2 Von=0.8 .ends Minton_U2_S3 *$ .subckt Minton_U2_S2 1 2 3 4 S_U2_S2 3 4 1 2 _U2_S2 RS_U2_S2 1 2 1G .MODEL _U2_S2 VSWITCH Roff=10e6 Ron=1.0 Voff=0.2 Von=0.8 .ends Minton_U2_S2 *$ .subckt Minton_U2_S1 1 2 3 4 S_U2_S1 3 4 1 2 _U2_S1 RS_U2_S1 1 2 1G .MODEL _U2_S1 VSWITCH Roff=100e6 Ron=1 Voff=0.2 Von=0.8 .ends Minton_U2_S1 *$ .subckt Driver_U7_H2 1 2 3 4 H_U7_H2 3 4 VH_U7_H2 1 VH_U7_H2 1 2 0V .ends Driver_U7_H2 *$ .subckt Driver_U7_H1 1 2 3 4 H_U7_H1 3 4 VH_U7_H1 1 VH_U7_H1 1 2 0V .ends Driver_U7_H1 *$ .subckt Driver_U7_S3 1 2 3 4 S_U7_S3 3 4 1 2 _U7_S3 RS_U7_S3 1 2 1G .MODEL _U7_S3 VSWITCH Roff=10e6 Ron=115m Voff=0.2 Von=0.8 .ends Driver_U7_S3 *$ .subckt Driver_U7_S4 1 2 3 4 S_U7_S4 3 4 1 2 _U7_S4 RS_U7_S4 1 2 1G .MODEL _U7_S4 VSWITCH Roff=10e6 Ron=52m Voff=0.2 Von=0.8 .ends Driver_U7_S4 *$ .subckt SoftStart_U11_S1 1 2 3 4 S_U11_S1 3 4 1 2 _U11_S1 RS_U11_S1 1 2 1G .MODEL _U11_S1 VSWITCH Roff=1e9 Ron=100 Voff=0.2 Von=0.8 .ends SoftStart_U11_S1 *$ .subckt ErrorAmp_U1_S3 1 2 3 4 S_U1_S3 3 4 1 2 _U1_S3 RS_U1_S3 1 2 1G .MODEL _U1_S3 VSWITCH Roff=1 Ron=10G Voff=0.2V Von=0.9V .ends ErrorAmp_U1_S3 *$ .subckt ErrorAmp_U1_S1 1 2 3 4 S_U1_S1 3 4 1 2 _U1_S1 RS_U1_S1 1 2 1G .MODEL _U1_S1 VSWITCH Roff=1000e6 Ron=1 Voff=0.4V Von=0.8V .ends ErrorAmp_U1_S1 *$ .subckt ErrorAmp_U1_S2 1 2 3 4 S_U1_S2 3 4 1 2 _U1_S2 RS_U1_S2 1 2 1G .MODEL _U1_S2 VSWITCH Roff=100e6 Ron=1m Voff=0.4V Von=0.8V .ends ErrorAmp_U1_S2 *$ .subckt PG_SGND_U10_S1 1 2 3 4 S_U10_S1 3 4 1 2 _U10_S1 RS_U10_S1 1 2 1G .MODEL _U10_S1 VSWITCH Roff=30e6 Ron=150 Voff=0.2V Von=0.8 .ends PG_SGND_U10_S1 *$ .SUBCKT AND2_BASIC_GEN A B Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} & + V(B) > {VTHRESH},{VDD},{VSS})}} RINT YINT Y 1 CINT Y 0 1n .ENDS AND2_BASIC_GEN *$ .SUBCKT AND3_BASIC_GEN A B C Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} & + V(B) > {VTHRESH} & + V(C) > {VTHRESH},{VDD},{VSS})}} RINT YINT Y 1 CINT Y 0 1n .ENDS AND3_BASIC_GEN *$ .SUBCKT AND4_BASIC_GEN A B C D Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} & + V(B) > {VTHRESH} & + V(C) > {VTHRESH} & + V(D) > {VTHRESH},{VDD},{VSS})}} RINT YINT Y 1 CINT Y 0 1n .ENDS AND4_BASIC_GEN *$ .SUBCKT NAND2_BASIC_GEN A B Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} & + V(B) > {VTHRESH},{VSS},{VDD})}} RINT YINT Y 1 CINT Y 0 1n .ENDS NAND2_BASIC_GEN *$ .SUBCKT NAND3_BASIC_GEN A B C Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} & + V(B) > {VTHRESH} & + V(C) > {VTHRESH},{VSS},{VDD})}} RINT YINT Y 1 CINT Y 0 1n .ENDS NAND3_BASIC_GEN *$ .SUBCKT NAND4_BASIC_GEN A B C D Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} & + V(B) > {VTHRESH} & + V(C) > {VTHRESH} & + V(D) > {VTHRESH},{VSS},{VDD})}} RINT YINT Y 1 CINT Y 0 1n .ENDS NAND4_BASIC_GEN *$ .SUBCKT OR2_BASIC_GEN A B Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} | + V(B) > {VTHRESH},{VDD},{VSS})}} RINT YINT Y 1 CINT Y 0 1n .ENDS OR2_BASIC_GEN *$ .SUBCKT OR3_BASIC_GEN A B C Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} | + V(B) > {VTHRESH} | + V(C) > {VTHRESH},{VDD},{VSS})}} RINT YINT Y 1 CINT Y 0 1n .ENDS OR3_BASIC_GEN *$ .SUBCKT OR4_BASIC_GEN A B C D Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} | + V(B) > {VTHRESH} | + V(C) > {VTHRESH} | + V(D) > {VTHRESH},{VDD},{VSS})}} RINT YINT Y 1 CINT Y 0 1n .ENDS OR4_BASIC_GEN *$ .SUBCKT NOR2_BASIC_GEN A B Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} | + V(B) > {VTHRESH},{VSS},{VDD})}} RINT YINT Y 1 CINT Y 0 1n .ENDS NOR2_BASIC_GEN *$ .SUBCKT NOR3_BASIC_GEN A B C Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} | + V(B) > {VTHRESH} | + V(C) > {VTHRESH},{VSS},{VDD})}} RINT YINT Y 1 CINT Y 0 1n .ENDS NOR3_BASIC_GEN *$ .SUBCKT NOR4_BASIC_GEN A B C D Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} | + V(B) > {VTHRESH} | + V(C) > {VTHRESH} | + V(D) > {VTHRESH},{VSS},{VDD})}} RINT YINT Y 1 CINT Y 0 1n .ENDS NOR4_BASIC_GEN *$ .SUBCKT NOR5_BASIC_GEN A B C D E Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} | + V(B) > {VTHRESH} | + V(C) > {VTHRESH} | + V(D) > {VTHRESH} | + V(E) > {VTHRESH},{VSS},{VDD})}} RINT YINT Y 1 CINT Y 0 1n .ENDS NOR5_BASIC_GEN *$ .SUBCKT NOR6_BASIC_GEN A B C D E F Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} | + V(B) > {VTHRESH} | + V(C) > {VTHRESH} | + V(D) > {VTHRESH} | + V(E) > {VTHRESH} | + V(F) > {VTHRESH},{VSS},{VDD})}} RINT YINT Y 1 CINT Y 0 1n .ENDS NOR6_BASIC_GEN *$ .SUBCKT INV_BASIC_GEN A Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} , + {VSS},{VDD})}} RINT YINT Y 1 CINT Y 0 1n .ENDS INV_BASIC_GEN *$ .SUBCKT XOR2_BASIC_GEN A B Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} ^ + V(B) > {VTHRESH},{VDD},{VSS})}} RINT YINT Y 1 CINT Y 0 1n .ENDS XOR2_BASIC_GEN *$ .SUBCKT XNOR2_BASIC_GEN A B Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} ^ + V(B) > {VTHRESH},{VSS},{VDD})}} RINT YINT Y 1 CINT Y 0 1n .ENDS XNOR2_BASIC_GEN *$ .SUBCKT MUX2_BASIC_GEN A B S Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(S) > {VTHRESH}, + V(B),V(A))}} RINT YINT Y 1 CINT Y 0 1n .ENDS MUX2_BASIC_GEN *$ .SUBCKT INV_DELAY_BASIC_GEN A Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 DELAY = 10n E_ABMGATE1 YINT1 0 VALUE {{IF(V(A) > {VTHRESH} , + {VDD},{VSS})}} RINT YINT1 YINT2 1 CINT YINT2 0 {DELAY*1.3} E_ABMGATE2 YINT3 0 VALUE {{IF(V(YINT2) > {VTHRESH} , + {VSS},{VDD})}} RINT2 YINT3 Y 1 CINT2 Y 0 1n .ENDS INV_DELAY_BASIC_GEN *$ .SUBCKT BUF_DELAY_BASIC_GEN A Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 DELAY = 10n E_ABMGATE1 YINT1 0 VALUE {{IF(V(A) > {VTHRESH} , + {VDD},{VSS})}} RINT YINT1 YINT2 1 CINT YINT2 0 {DELAY*1.3} E_ABMGATE2 YINT3 0 VALUE {{IF(V(YINT2) > {VTHRESH} , + {VDD},{VSS})}} RINT2 YINT3 Y 1 CINT2 Y 0 1n .ENDS BUF_DELAY_BASIC_GEN *$ .SUBCKT BUF_BASIC_GEN A Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABMGATE YINT 0 VALUE {{IF(V(A) > {VTHRESH} , + {VDD},{VSS})}} RINT YINT Y 1 CINT Y 0 1n .ENDS BUF_BASIC_GEN *$ **Set has higher priority in this latch .SUBCKT SRLATCHSHP_BASIC_GEN S R Q QB PARAMS: VDD=1 VSS=0 VTHRESH=0.5 GQ 0 Qint VALUE = {IF(V(S) > {VTHRESH},5,IF(V(R)>{VTHRESH},-5, 0))} CQint Qint 0 1n RQint Qint 0 1000MEG D_D10 Qint MY5 D_D1 V1 MY5 0 {VDD} D_D11 MYVSS Qint D_D1 V2 MYVSS 0 {VSS} EQ Qqq 0 Qint 0 1 X3 Qqq Qqqd1 BUF_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} RQq Qqqd1 Q 1 EQb Qbr 0 VALUE = {IF( V(Q) > {VTHRESH}, {VSS},{VDD})} RQb Qbr QB 1 Cdummy1 Q 0 1n Cdummy2 QB 0 1n .IC V(Qint) {VSS} .ENDS SRLATCHSHP_BASIC_GEN *$ **Reset has higher priority in this latch .SUBCKT SRLATCHRHP_BASIC_GEN S R Q QB PARAMS: VDD=1 VSS=0 VTHRESH=0.5 GQ 0 Qint VALUE = {IF(V(R) > {VTHRESH},-5,IF(V(S)>{VTHRESH},5, 0))} CQint Qint 0 1n RQint Qint 0 1000MEG D_D10 Qint MY5 D_D1 V1 MY5 0 {VDD} D_D11 MYVSS Qint D_D1 V2 MYVSS 0 {VSS} EQ Qqq 0 Qint 0 1 X3 Qqq Qqqd1 BUF_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} RQq Qqqd1 Q 1 EQb Qbr 0 VALUE = {IF( V(Q) > {VTHRESH}, {VSS},{VDD})} RQb Qbr QB 1 Cdummy1 Q 0 1n Cdummy2 QB 0 1n .IC V(Qint) {VSS} .ENDS SRLATCHRHP_BASIC_GEN *$ **Reset has higher priority in this latch and active low set and reset - basically NAND based SR latch .SUBCKT SBRBLATCHRHP_BASIC_GEN SB RB Q QB PARAMS: VDD=1 VSS=0 VTHRESH=0.5 GQ 0 Qint VALUE = {IF(V(RB) < {VTHRESH},-5,IF(V(SB) < {VTHRESH},5, 0))} CQint Qint 0 1n RQint Qint 0 1000MEG D_D10 Qint MY5 D_D1 V1 MY5 0 {VDD} D_D11 MYVSS Qint D_D1 V2 MYVSS 0 {VSS} EQ Qqq 0 Qint 0 1 X3 Qqq Qqqd1 BUF_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} RQq Qqqd1 Q 1 EQb Qbr 0 VALUE = {IF( V(Q) > {VTHRESH}, {VSS},{VDD})} RQb Qbr QB 1 .IC V(Qint) {VSS} .ENDS SBRBLATCHRHP_BASIC_GEN *$ **Reset has higher priority in this latch and active low set and reset - basically NAND based SR latch .SUBCKT SBRBLATCHSHP_BASIC_GEN SB RB Q QB PARAMS: VDD=1 VSS=0 VTHRESH=0.5 GQ 0 Qint VALUE = {IF(V(SB) < {VTHRESH},5,IF(V(RB) < {VTHRESH},-5, 0))} CQint Qint 0 1n RQint Qint 0 1000MEG D_D10 Qint MY5 D_D1 V1 MY5 0 {VDD} D_D11 MYVSS Qint D_D1 V2 MYVSS 0 {VSS} EQ Qqq 0 Qint 0 1 X3 Qqq Qqqd1 BUF_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} RQq Qqqd1 Q 1 EQb Qbr 0 VALUE = {IF( V(Q) > {VTHRESH}, {VSS},{VDD})} RQb Qbr QB 1 .IC V(Qint) {VSS} .ENDS SBRBLATCHSHP_BASIC_GEN *$ .SUBCKT DFFSBRB_SHPBASIC_GEN Q QB CLK D RB SB PARAMS: VDD=1 VSS=0 VTHRESH=0.5 ***Set has higher priority in this ** Changed the delay from 7n/10n to 15n/20n to help larger time step simulations **Faster flip-flops require a a smaller time step to simulate X1 CLK CLKdel INV_DELAY_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} DELAY = 15n X2 CLK CLKdel CLKint AND2_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} GQ 0 Qint VALUE = {IF(V(SB) < {VTHRESH},5,IF(V(RB)<{VTHRESH},-5, IF(V(CLKint)> {VTHRESH}, + IF(V(D)> {VTHRESH},5,-5),0)))} CQint Qint 0 1n RQint Qint 0 1000MEG D_D10 Qint MY5 D_D1 V1 MY5 0 {VDD} D_D11 MYVSS Qint D_D1 V2 MYVSS 0 {VSS} EQ Qqq 0 Qint 0 1 X3 Qqq Qqqd1 BUF_DELAY_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} DELAY = 20n RQq Qqqd1 Q 1 EQb Qbr 0 VALUE = {IF( V(Q) > {VTHRESH}, {VSS},{VDD})} RQb Qbr Qb 1 Cdummy1 Q 0 1nF Cdummy2 QB 0 1nF .IC V(Qint) {VSS} .ENDS DFFSBRB_SHPBASIC_GEN *$ .SUBCKT DFFSR_SHPBASIC_GEN Q QB CLK D R S PARAMS: VDD=1 VSS=0 VTHRESH=0.5 ***Set has higher priority in this ** Changed the delay from 7n/10n to 15n/20n to help larger time step simulations **Faster flip-flops require a a smaller time step to simulate X1 CLK CLKdel INV_DELAY_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} DELAY = 15n X2 CLK CLKdel CLKint AND2_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} GQ 0 Qint VALUE = {IF(V(S) > {VTHRESH},5,IF(V(R) > {VTHRESH},-5, IF(V(CLKint)> {VTHRESH}, + IF(V(D)> {VTHRESH},5,-5),0)))} CQint Qint 0 1n RQint Qint 0 1000MEG D_D10 Qint MY5 D_D1 V1 MY5 0 {VDD} D_D11 MYVSS Qint D_D1 V2 MYVSS 0 {VSS} EQ Qqq 0 Qint 0 1 X3 Qqq Qqqd1 BUF_DELAY_BASIC_GEN PARAMS: VDD=1 VSS=0 VTHRESH=0.5 DELAY = 20n RQq Qqqd1 Q 1 EQb Qbr 0 VALUE = {IF( V(Q) > {VTHRESH}, {VSS},{VDD})} RQb Qbr Qb 1 Cdummy1 Q 0 1nF Cdummy2 QB 0 1nF .IC V(Qint) {VSS} .ENDS DFFSR_SHPBASIC_GEN *$ .SUBCKT DFFSBRB_RHPBASIC_GEN Q QB CLK D RB SB PARAMS: VDD=1 VSS=0 VTHRESH=0.5 ***Set has higher priority in this ** Changed the delay from 7n/10n to 15n/20n to help larger time step simulations **Faster flip-flops require a a smaller time step to simulate X1 CLK CLKdel INV_DELAY_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} DELAY = 15n X2 CLK CLKdel CLKint AND2_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} GQ 0 Qint VALUE = {IF(V(RB) < {VTHRESH},-5,IF(V(SB)< {VTHRESH},5, IF(V(CLKint)> {VTHRESH}, + IF(V(D)> {VTHRESH},5,-5),0)))} CQint Qint 0 1n RQint Qint 0 1000MEG D_D10 Qint MY5 D_D1 V1 MY5 0 5 D_D11 0 Qint D_D1 EQ Qqq 0 Qint 0 1 X3 Qqq Qqqd1 BUF_DELAY_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} DELAY = 20n RQq Qqqd1 Q 1 EQb Qbr 0 VALUE = {IF( V(Q) > {VTHRESH}, {VSS},{VDD})} RQb Qbr Qb 1 Cdummy1 Q 0 1nF Cdummy2 QB 0 1nF .IC V(Qint) {VSS} .ENDS DFFSBRB_RHPBASIC_GEN *$ .SUBCKT DFFSR_RHPBASIC_GEN Q QB CLK D R S PARAMS: VDD=1 VSS=0 VTHRESH=0.5 ***Set has higher priority in this ** Changed the delay from 7n/10n to 15n/20n to help larger time step simulations **Faster flip-flops require a a smaller time step to simulate X1 CLK CLKdel INV_DELAY_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} DELAY = 15n X2 CLK CLKdel CLKint AND2_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} GQ 0 Qint VALUE = {IF(V(R) > {VTHRESH},-5,IF(V(S) > {VTHRESH},5, IF(V(CLKint)> {VTHRESH}, + IF(V(D)> {VTHRESH},5,-5),0)))} CQint Qint 0 1n RQint Qint 0 1000MEG D_D10 Qint MY5 D_D1 V1 MY5 0 {VDD} D_D11 MYVSS Qint D_D1 V2 MYVSS 0 {VSS} EQ Qqq 0 Qint 0 1 X3 Qqq Qqqd1 BUF_DELAY_BASIC_GEN PARAMS: VDD={VDD} VSS={VSS} VTHRESH={VTHRESH} DELAY = 20n RQq Qqqd1 Q 1 EQb Qbr 0 VALUE = {IF( V(Q) > {VTHRESH}, {VSS},{VDD})} RQb Qbr Qb 1 Cdummy1 Q 0 1nF Cdummy2 QB 0 1nF .IC V(Qint) {VSS} .ENDS DFFSR_RHPBASIC_GEN *$ .SUBCKT COMP_BASIC_GEN INP INM Y PARAMS: VDD=1 VSS=0 VTHRESH=0.5 E_ABM Yint 0 VALUE {IF (V(INP) > + V(INM), {VDD},{VSS})} R1 Yint Y 1 C1 Y 0 1n .ENDS COMP_BASIC_GEN *$ .subckt d_d 1 2 d1 1 2 dd .model dd d + is=1e-015 + n=0.01 + tt=1e-011 .ends d_d *$ .MODEL D_D1 D( IS=1e-15 TT=10p Rs=0.05 N=.1 ) *$ .SUBCKT D_D1special 1 2 D1 1 2 DD1spec .MODEL DD1spec D( IS=1e-15 TT=10p Rs=0.8 N=.1 ) .ENDS D_D1special *$ .SUBCKT LDCR 1 2 PARAMS: L=1u DCR=20m L1 1 INT1 {L} R1 INT1 2 {DCR} .ENDS LDCR *$ .SUBCKT CESR 1 2 PARAMS: C=10u ESR=2m ESL=1n C1 1 INT1 {C} R1 INT1 INT2 {ESR} L1 INT2 2 {ESL} .ENDS CESR *$   之后直接在界面中粘贴:(记得勾选INCLUDE) 点YES即可导入元器件:    搭建电路:   在页面中直接粘贴命令: .tran 500m .plot V(out) .plot V(vcc)  之后运行,就能看到完整的仿真图和纹波了:   可以看到,不仅设计电压有偏差,电源纹波也很大,需要修正一下硬件部分 参考文档:QSPICE电子电路仿真器 - 电力电子新闻 (powerelectronicsnews.com) QSPICE™ 快速入门 - Qorvo

  • 2024-06-27
  • 回复了主题帖: QSpice-(3) Verilog-流水灯

    学到了,感谢分享

  • 回复了主题帖: 有奖征文 | 电源仿真经验大征集!那些你踩过的坑、引以为傲的事、收获的经验...

    只能写电源相关的仿真么

  • 2024-06-26
  • 回复了主题帖: 求助一个SRAM等长线的最快画法

    hahajing 发表于 2024-6-26 21:18 出这个题目的人很扯,一个并行控制线也跑等长? sram不应该做等长吗。。。还是说有别的缘由?请指教

  • 回复了主题帖: 求助一个SRAM等长线的最快画法

    damiaa 发表于 2024-6-26 09:43 还有一点,个人看法。 选的封装不好看。最好不要外面搞个丝印框起来的。本来电阻 像0402的很小。加个丝 ... 了解了,多谢版主

  • 2024-06-25
  • 回复了主题帖: 求助一个SRAM等长线的最快画法

    wangerxian 发表于 2024-6-25 13:14 看这个有点像立创EDA的原理图。 软件是立创EDA(专业版2.1.61),比赛要求

  • 发表了主题帖: 求助一个SRAM等长线的最快画法

    最近大学生先进成图大赛电子类的奖项名单出来了,和一名学弟一同进了国赛 不过心头有一个问题在困惑着我,故特地来求教下论坛的前辈和大佬们 问题如下:(有删减)     请听题: 如图:在主芯片和SRAM同层的情况下(板层四层,内层为vdd,vss),如何用最快的速度做完这个等长布线? 如果能够将时间压缩在20分钟之内最好,整个比赛时长只有三小时,刨去前面的几个封装绘制时间已经所剩无几,一点点调等长和线序根本来不及。 如有知道的大佬求回复分享经验,晚辈感激不已!

  • 2024-06-20
  • 回复了主题帖: ST-MEMS传感器驱动移植

    本帖最后由 电子烂人 于 2024-6-21 01:44 编辑 继续回来更新: 生成代码后会发现,根目录多了一个x-cube-mems1的文件夹,里面包含几种传感器   先来介绍下这三个代码文件的含义: 1.Custom_mems_conf_app.h:这里面包含了传感器的几种参数,如量程、速度等; #ifdef USE_CUSTOM_MOTION_SENSOR_LSM6DSO_0 #if (USE_CUSTOM_MOTION_SENSOR_LSM6DSO_0 == 1) #ifndef CUSTOM_ACC_INSTANCE_0 #define CUSTOM_ACC_INSTANCE_0 CUSTOM_LSM6DSO_0 #define CUSTOM_ACC_INSTANCE_NAME_0 "LSM6DSO" #define CUSTOM_ACC_INSTANCE_ODR_0 {10, 12.5, 26, 52, 104, 208, 417, 833, 1667, 3333, 6667} /* Hz */ #define CUSTOM_ACC_INSTANCE_FS_0 {4, 2, 4, 8, 16} /* g */ #ifndef ACC_GYR_UNICLEO_ID #define ACC_GYR_UNICLEO_ID LSM6DSO_UNICLEO_ID #endif #endif #ifndef CUSTOM_GYR_INSTANCE_0 #define CUSTOM_GYR_INSTANCE_0 CUSTOM_LSM6DSO_0 #define CUSTOM_GYR_INSTANCE_NAME_0 "LSM6DSO" #define CUSTOM_GYR_INSTANCE_ODR_0 {10, 12.5, 26, 52, 104, 208, 417, 833, 1667, 3333, 6667} /* Hz */ #define CUSTOM_GYR_INSTANCE_FS_0 {5, 125, 250, 500, 1000, 2000} /* dps */ #ifndef ACC_GYR_UNICLEO_ID #define ACC_GYR_UNICLEO_ID LSM6DSO_UNICLEO_ID #endif #endif #endif #endif 2. Custom_mems_conf.h:这里面包含着传感器的初始化、读取写入等指令操作 #define USE_CUSTOM_MOTION_SENSOR_LSM6DSO_0 0U #define CUSTOM_LSM6DSO_0_I2C_Init BSP_I2C1_Init #define CUSTOM_LSM6DSO_0_I2C_DeInit BSP_I2C1_DeInit #define CUSTOM_LSM6DSO_0_I2C_ReadReg BSP_I2C1_ReadReg #define CUSTOM_LSM6DSO_0_I2C_WriteReg BSP_I2C1_WriteReg #ifdef __cplusplus } #endif 3.sensor_unicleo.h:这里面包含着诸多传感器的UNICLEO_ID,用于 Unicleo-GUI 应用程序区分诸多传感器。 #define LSM6DSO_UNICLEO_ID 7  

  • 发表了主题帖: 翻出来一片licheepi zero

    最近想法挺多的,先插个牌子,慢慢在这个帖子下面更新 这两天翻箱子翻出来了sipeed 的licheepi zero,算是我顶喜欢的一块小板子,小巧精致,主控为全志V3S, SIPEED家的产品每个都长在我的XP上,但是奈何自己的技术栈更偏向于应用产品,而不是做开发板,之前投他们家简历吃了闭门羹。。。但是这并不影响我对他们家板子的热爱。 先放一点资料在这,等完全搞会了设备树再回来更新: Lichee Zero - Sipeed Wiki Zero i2c oled使用指南 - Sipeed Wiki TF WiFi使用方法 - Sipeed Wiki Qt5 移植到 licheepi zero - Sipeed Wiki

  • 回复了主题帖: 第一次用KiCAD做板,结果悲剧了

    littleshrimp 发表于 2024-6-20 14:25 教我KiCAD的人特意强调这个0201封装问题,估计也遇到过,我特别注意了,还是没避开。 对的,我也是看到封装名称里面有0603就放进去了 最后飞线大法飞了两个厚膜电阻,勉强能测试

  • 回复了主题帖: 第一次用KiCAD做板,结果悲剧了

    好巧,我也遇到了同样的错误,也是把0201当成0603放进去了,结果出板子才发现不对

  • 2024-06-12
  • 发表了主题帖: ST-MEMS传感器驱动移植

    本帖最后由 电子烂人 于 2024-6-14 14:08 编辑 最近在用ST的传感器和开发板做东西,在这里写点移植的教程给学弟参考用,参考了好多帖子和文章,可能有雷同,如有错误请大佬指出   所用板卡:nucleo-H563ZI 所用传感器:MK192(lsm6dso) 开发环境:STM32CUBEIDE   在cubeide里新建一个工程,选择板卡为H563: 这个板卡的晶振是配置好的,只需要配置基本的DEBUG 由于需要和传感器通信,所以额外配置一组I2C,速度选择FAST(400KHZ):     双击Middleware 中的MEMS进入包选择LSM6DSOX,通信方式选择I2C:       使能ACCGYR,并连接到I2C上,我用的IKS01A1的mems板,故引脚为PB8\PB9   保存以生成代码,H5有icache,我们这里不用,直接生成代码 这样工程就建好了,不过还没有传感器的驱动,需要再新建一个示例工程: 这里以    U575的"Active Time "为例:   这个工程导入后如图,我们需要移植图中的三个文件到H5的工程目录下      复制如图的几个文件:   复制后还需要导入到工程中:     同时在SOURE里添加代码所在的文件夹   先写这样  ,备考四六级去了,等我回来再更新  

  • 2024-06-09
  • 发表了主题帖: LSM6DSO的研究学习

    最近在研究LSM6DSO这个陀螺仪(具体型号LSM6DSO16IS),同时也在学习一些FSM和MLC的用法,翻看了很多资料和视频,贴一些自己在看的相关资料在此帖,方便回来查看 文档手册: DS13892:  lsm6dso16is.pdf (3.41 MB, 下载次数: 0) 官方应用手册 AN5192:LSM6DSO:始终开启的3D加速度计和3D陀螺仪 - 应用笔记 (st.com.cn)(是AN5799的译文) AN5273:LSM6DSOX:有限状态机 - Application note (st.com.cn) 代码: STMems_Standard_C_drivers/lsm6dsox_STdC/examples at master · STMicroelectronics/STMems_Standard_C_drivers (github.com) 研讨会/教学视频: ST_MEMS传感器机器学习功能介绍_哔哩哔哩_bilibili ST IMU -入门介绍-LSM6DSOX_哔哩哔哩_bilibili 教你玩转ST MEMS开发板_哔哩哔哩_bilibili 开发板/开发工具:(可能要用的) 1.SensorTile.box(在路上) STEVAL-MKSBOX1V1 - SensorTile.box无线多传感器开发套件,可用于快速上手IOT和可穿戴传感器应用 - 意法半导体STMicroelectronics 2.STEVAL-MKI197V1(嵌赛买的) STEVAL-MKI197V1 - 面向标准DIL24插座的LSM6DSOX适配器板 - 意法半导体STMicroelectronics 3.X-CUBE-IKS4A1 X-NUCLEO-IKS4A1 - 面向STM32 Nucleo板的运动MEMS和环境传感器扩展板 - 意法半导体STMicroelectronics 相关帖子: 1.如何快速通过STM32单片机实现ST传感器的驱动测试 - ST传感器与低功耗无线技术论坛 - 电子工程世界-论坛 (eeworld.com.cn) 2.LSM6DSO(X)传感器驱动关键代码解析:read_data_polling例程相关资源 - ST传感器与低功耗无线技术论坛 - 电子工程世界-论坛 (eeworld.com.cn) 3.LSM6DSO(X)传感器驱动关键代码解析:read_data_polling例程(一) - ST传感器与低功耗无线技术论坛 - 电子工程世界-论坛 (eeworld.com.cn) 4.LSM6DSO(X)传感器驱动关键代码解析:read_data_polling例程(二) - ST传感器与低功耗无线技术论坛 - 电子工程世界-论坛 (eeworld.com.cn) (这里感谢虾哥@littleshrimp的多篇帖子,帮了大忙了) 5【LSM6DSOX的FSM有限状态机理解】--状态机简介 - ST MEMS传感器创意设计大赛专区 - 电子工程世界-论坛 (eeworld.com.cn) 6.ST MEMS创意大赛第5贴 -- 有限状态机学习(FSM) - ST MEMS传感器创意设计大赛专区 - 电子工程世界-论坛 (eeworld.com.cn) 7.ST六轴传感器LSM6DSO使用记录-CSDN博客 8.【LSM6DSOX的FSM有限状态机理解】--编程模块简介 另外如果有开发过这款芯片的前辈,求教谈下这颗料的用法、优缺点,或者是状态机(FSM)和机器内核(MLC)的应用,抑或是其他开发经验,万分感谢!  

  • 2024-06-07
  • 发表了主题帖: 【NUCLEO-U083RC】试用总结帖

    本帖最后由 电子烂人 于 2024-6-7 14:58 编辑 【感谢】 感谢ST、EEWORLD的小伙伴和各位大佬的支持,第一次在论坛里参与测评活动,还是蛮激动的。特别是遇到问题的时候,有各路大佬前来助阵。经过一月多的评测可得知,STM32U083 是一款性能优异、特点鲜明、应用广泛的微控制器,适合于多种嵌入式场景的开发和应用。 【试用历程】 在申请板卡前给自己立下了诸多目标,如: 本次的板卡主要推广低功耗性能,所以主要测评方向为U0的低功耗性能和应用,计划使用STM32U0制作一个低功耗工业材料搅拌机控制器 第一周:测评板卡外观,熟悉手册 第二周:尝试驱动LCD屏幕1602 第三周:使用低功耗RTC定时器,并联合显示屏实现时钟功能 第四周:测试低功耗UART,尝试在低功耗模式下传输时间信息 第五周:增加电容触摸按键,并实现睡眠和唤醒功能 第六周:驱动电机,实现精准控制搅拌时长 所写评测帖如下: 【NUCLEO-U083RC】1.板卡硬件及手册分析 【NUCLEO-U083RC】2.低功耗串口(LPUART)的使用 【NUCLEO-U083RC】2.5 MSI使用和低功耗(STOP)模式 【NUCLEO-U083RC】3.RTC定时器输出精确时间 【NUCLEO-U083RC】4.驱动段式LCD屏(1) 【NUCLEO-U083RC】5.驱动段式LCD屏(2) 【NUCLEO-U083RC】6.电容触摸按键(TSC)  【NUCLEO-U083RC】7.LPTIME产生PWM 大体来看,每周评测目标基本完成,但由于LCD和触摸设计的PCB板子有问题,后续会制作整改板并开源。   【试用心得】 这是我在大学接触STM32之后,首次使用“低功耗”产品线,对于“成本敏感”的项目开发有了更深刻的了解。大学中的课程只能算入门,很多全新的外设、新奇的应用软件都需要自主摸索。当然,这个过程离不开ST的众多优秀数据手册和应用手册资料的帮助。 当然,更要感谢ST的工程师和EEWORLD众多大佬的帮助,祝ST产出更多优质的产品!祝EEWORLD 论坛社区越办越好! (附上一只可爱修狗)  

  • 2024-06-06
  • 回复了主题帖: 【NUCLEO-U083RC】7.LPTIME产生PWM

    秦天qintian0303 发表于 2024-6-6 09:08 波形看着可以啊,实际应用中对PWM精度要求那么高的情况不太多 对的,精度要求高的话用高级定时器更好一些  

  • 2024-06-05
  • 发表了主题帖: 【NUCLEO-U083RC】7.LPTIME产生PWM

    本帖最后由 电子烂人 于 2024-6-5 22:04 编辑 u0 系列有多个time定时器,但是还没用过LPtime,本次产生个PWM试试 1 . LPTIM、PWM介绍 LPTIM(Low-Power Timer)是ST公司为其STM32微控制器系列提供的一种低功耗定时器。LPTIM是为了在低功耗模式下提供时间测量和生成精准的时序而设计的,特别适用于那些对功耗要求非常严格的场合,比如在停止模式(Stop mode)或待机模式(Standby mode)下。 LPTIM通常不直接用于生成PWM(Pulse Width Modulation)信号,因为PWM信号通常需要高精度的定时和快速的输出变化,通常由高级定时器(Advanced Timers)或通用定时器(General Purpose Timers)来处理。然而,在某些情况下,LPTIM可以用来生成简单的PWM信号,尤其是在对精度要求不是特别高,且功耗要求非常低的场合。本次设计的应用场景是在使用电池的小型搅拌器中,仅对速度挡位调节。 LPTIM生成PWM的基本原理是利用其比较功能,通过比较寄存器(Compare Register)和自动重装载寄存器(Auto-Reload Register)来控制输出信号的占空比。当LPTIM的计数器值与比较寄存器匹配时,输出电平会发生变化。 例程给出了PWM的计算方式,还是PSR\ARR\CCR老三样: FrequencyOutput = Counter Clock Frequency / (Autoreload + 1) DutyCycle = 1 - ((PulseValue + 1)/ (Autoreload + 1))   2.初始化     如图使能lptim 3, 使能通道3,生成代码如下: static void MX_LPTIM3_Init(void) { /* USER CODE BEGIN LPTIM3_Init 0 */ /* USER CODE END LPTIM3_Init 0 */ LPTIM_OC_ConfigTypeDef sConfig1 = {0}; /* USER CODE BEGIN LPTIM3_Init 1 */ /* USER CODE END LPTIM3_Init 1 */ hlptim3.Instance = LPTIM3; hlptim3.Init.Clock.Source = LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC; hlptim3.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV1; hlptim3.Init.Trigger.Source = LPTIM_TRIGSOURCE_SOFTWARE; hlptim3.Init.Period = 999; hlptim3.Init.UpdateMode = LPTIM_UPDATE_IMMEDIATE; hlptim3.Init.CounterSource = LPTIM_COUNTERSOURCE_INTERNAL; hlptim3.Init.Input1Source = LPTIM_INPUT1SOURCE_GPIO; hlptim3.Init.Input2Source = LPTIM_INPUT2SOURCE_GPIO; hlptim3.Init.RepetitionCounter = 0; if (HAL_LPTIM_Init(&hlptim3) != HAL_OK) { Error_Handler(); } sConfig1.Pulse = 499; sConfig1.OCPolarity = LPTIM_OCPOLARITY_HIGH; if (HAL_LPTIM_OC_ConfigChannel(&hlptim3, &sConfig1, LPTIM_CHANNEL_3) != HAL_OK) { Error_Handler(); } /* USER CODE BEGIN LPTIM3_Init 2 */ /* USER CODE END LPTIM3_Init 2 */ HAL_LPTIM_MspPostInit(&hlptim3); } 3.测试低功耗下输出PWM 编辑代码,在主函数中添加: while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_LPTIM_PWM_Start(&hlptim3, LPTIM_CHANNEL_3); } /* USER CODE END 3 */ 如图所示,可以在示波器中看到稳定的PWM信号   在代码中添加STOP2模式: while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_Delay(1000); BSP_LED_Toggle(LED_GREEN); HAL_LPTIM_PWM_Start(&hlptim3, LPTIM_CHANNEL_3); HAL_PWREx_EnterSTOP1Mode(PWR_STOPENTRY_WFI); HAL_Delay(10000);//停止10秒 SystemClock_Config();//重新配置时钟 } /* USER CODE END 3 */ } 生成波形如下:  

统计信息

已有92人来访过

  • 芯积分:447
  • 好友:1
  • 主题:32
  • 回复:48

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言