在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2435|回复: 8

[原创] 基于RFIC-GPT自动化设计工具的第八届集创赛SCPA设计

[复制链接]
发表于 2024-4-16 16:36:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
基于RFIC-GPT自动化设计工具的
第八届集创赛SCPA设计
在本文中,我将介绍如何使用一款电路自动化设计工具RFIC-GPT,对第八届集创赛IEEE杯赛的SCPA进行简单设计。以下内容将分为四个部分:第一部分是对第八届集创赛进行赛题指标的分析,并给出一些可供参考的电路架构;第二部分是基于理想的数字库元件,搭建SCPA的理想模型,完成SCPA的功能验证以及初步的性能验证;第三部分是将理想的数字库模型更换为MOS晶体管模型,完成SCPA的具体设计与前仿真验证;最后是对本赛题进行总结,提供一些参赛的经验。
1 赛题分析与架构选择
本届集创赛IEEE杯赛题给出的性能指标如下图所示:
162050zozr3avqs3xrutov.png
其中主要的性能指标就是饱和输出功率与峰值系统效率。通过对SCPA近年论文的调研,我们不难看出,本次赛题指标较少,仅有饱和功率和效率两个,达到赛题指标并不难,主要是效率稍微高一些;其次,赛题并没有给出线性度的指标,如EVMACLR等,也不需要支持调制信号。因此,本次赛题的设计自由度较高,重在赛题指标之外的其他方面的比拼,例如我认为最重要的就是线性度。如何准确测量SCPA的线性度及其限制因素,并能够进行有针对性地优化,会成为决赛和总决赛的必争之地。
由于赛题的设计自由度较高,那么架构上就可以根据自己的理解进行选择了,例如无源网络可以采用单变压器,也可以采用串联功率合成变压器,并联功率合成变压器,如下图所示:
162050c5o5nnrpoo255r15.png 162051ljjbp6wpewtjehpt.png
有源部分的可以采用一些能够提高效率的技术,例如IQ-cell-sharing 技术(参考 [2017 JSSC] Efficient Digital Quadrature Transmitter Based on IQ Cell Sharing),IQ-reuse技术(参考 [2022 JSSC] A 15-Bit Quadrature Digital Power Amplifier With Transformer-Based Complex-Domain Efficiency Enhancement),提高功率回退效率的还可以采用Class-G技术,采用电流模式输出级的可以采用Subharmonic技术(参考 [2021 ISSCC] A 5-to-6GHz Current-Mode Subharmonic Switching Digital Power Amplifier for Enhancing Power Back-off Efficiency)等等。不需要局限于以上的几篇论文,这里只是给出几个例子,是否能够提高效率还得靠电路的具体实现。
2 理想模型的搭建与验证
搭建SCPA理想模型的意义在于,SCPA是一个数模混合的电路,会包含许多复杂的数字逻辑,在直接使用晶体管进行搭建前,采用数字库搭建理想的SCPA模型,能够更好地帮助我们理清整个SCPA中的信号传递过程,保证功能上不会出错,也可以避免在晶体管模型中难以对功能错误进行debug的情况。
在介绍理想模型的搭建之前,首先分享一下我对于SCPA设计思路的理解。将视野拓展到整个数字发射机上时,它的架构主要包括数字基带处理电路(BB DSP)、译码器(decoder)、逻辑电路(Logic)、驱动级(Driver)、输出级(Output stage)以及无源匹配网络(Passive Matching)。
162051yq699z0ut9k9jkq1.png
因此对于SCPA的设计思路,我认为包括以下几个步骤:
1. 根据文献调研与知识学习的结果,选定SCPA的架构,确定需要使用怎样的技术
2. 使用理想元件搭建SCPA模型,例如Driver/Inverter使用理想的数字库反相器(与非门),Logic部分使用理想的逻辑,Decoder部分采用Verilog编写,无源网络使用理想的电感电容变压器
3. 在搭建过程中分模块进行功能验证,且需理清模块之间的时序关系、信号的传递过程,完成理想SCPA建模后搭建testbench进行总体的功能验证,可以对比输入输出的时域波形验证功能的正确性
4. 通过性能指标推导晶体管的尺寸,并注意要留一定的裕度。从后往前一级一级将理想模块替换为MOS晶体管,逐级仿真优化,保证通过该模块后信号能够满足要求
5. 完成有源模块所有的MOS替换操作后,再对整体进行仿真优化,完成SCPA的前仿真
6. 对后两级进行Load-Pull仿真,得到SCPA的最佳负载阻抗,利用SCPA的最佳负载阻抗以及结合无源参数对SCPA性能的影响,设计集总参数的非理想无源匹配网络
7. 绘制无源匹配网络的版图并从输出级开始,由后往前一级一级绘制版图,保证该级已经优化至极限再进行前一级的设计,期间有源无源需要联合仿真优化,进行版图的迭代。完成一个unit-cell的版图后,需要对整体版图进行空间规划,再进行所有unit-cell的版图拼接,不断优化整体版图的结构
8. 完成后仿真性能验证
在本文中我将介绍一个简单的SCPAdemo版本的设计流程,帮助大家更好地理解上述提到的设计思路。该demo SCPA不含decoder,采用简单的6bit unary-unit-cell的架构,并采用cascode输出级提高输出功率,其中会采用RFIC-GPT来生成所需要的无源匹配变压器电路,大大简化无源设计的流程。
首先需要搭建SCPA的理想模型。第一部分是Cascode输出级,这里采用一个电压控制电压源来实现电压域的变换。注意需要根据实际会用上的pin,把pin添加完整。
162051dtwjtjn2kjjtzzds.png
其次是Driver,使用一个数字库的与非门来实现反相器:
162051kp1rtepocorqwees.png
接着是理想数字库的level-shifter
162051penr3a3dl73ak3ar.png
然后将上面的三个模块进行连接,就完成了最后两级的理想模型搭建:
162051a2bf4u6foeww3iv4.png
接着是逻辑部分,逻辑部分最主要的功能是实现上混频,即将使能信号与时钟信号通过与门进行上混频,其次还需要根据符号位完成信号的相位的确定、使能信号与时钟信号的同步、使能信号的产生、单端转差分等等,这里展示了一个简单的逻辑电路的组成部分,包含一个单转差模块以及一个上混频模块。
162051i1ucomzp916m9co6.png
单转差模块即两路的数字逻辑门:
162051f8h5j7557ikzkr42.png
上混频则是通过一对与门来完成:
162052vwswssb6gv2wtxla.png
其他逻辑模块就不多展示了,可以根据自己的理解进行设计。
完成逻辑部分和后两级的搭建后,可以将二者进行连接,搭建一个完整的差分unit-cell
162052s38dgm399t9e7xx7.png
由于我们搭建的是64unary-unit-cell,因此只需要将它简单重复,即可得到一个SCPA
162052p66c6n669yrly81j.png

      如果大家不知道如何重复放置symbol,可以通过将模块名字改成总线的形式,该symbol就会自动重复

162052twggt3tt5wt33ugz.png
完成有源部分理想模型的搭建后,可以用简单的变压器和电感搭建理想的无源匹配网络。
162052pkwiwkhl2zzk76kw.png
最后将有源无源部分连接起来,得到完整的SCPA,构建testbench
162052bz6z93vvivxxigji.png
仿真方面可以使用tran仿真最大功率和效率,2.4GHz下仿真10ns就足够,采用tran仿真是因为tran仿真可以实现动态信号输入的仿真性能测量,采用hb则只能在单一频率下测量。
162052rq2w885q8k3zhzqa.png
在仿真中,我们需要给一些参数,例如SCPA的负载阻抗需要匹配到的值,以及电容电感值。我们将采用简单的变压器实现阻抗的匹配。

求无源匹配网络的目标阻抗的方法如下所示:
162053tsonbivgypyoobzp.png
得到Ropt后,可以通过假设无源网络的Q值在13左右,这里假设Q = 2,然后根据RQC的关系即可得到电容值,再通过谐振关系可以得到电感值。
162053nztpy7zpeepmizy2.png

注意此处Ropt除以2是因为采用了差分的SCPA通过变压器进行功率合成,因此单端SCPA应看到的Ropt1/2的关系。
得到所有的参数值后,可以参考以下算公式来仿真SCPA的饱和输出功率和峰值系统效率。
输出功率公式:
162053ydrxaixfjagaxdjq.png
直流功耗公式:
162053bblmeljbnene8ig2.png
系统效率的计算则是Pout/Pdc,注意SCPAPAESE实际上是相等的。
对刚才搭建的理想模型进行仿真,可以得到输出功率是27dBm,这里高于26dBm是因为理想模型下并没有导通电阻,而26dBm的计算是基于导通电阻给出的。直流功耗为0,理想的数字库模型并没有直流功耗。
162053tcffooofotjofaaa.png

完成简单的性能仿真后,可以对SCPA进行功能验证,保证其逻辑功能无误,输入输出在理想下是完全线性的。可以先通过MATLAB编写输入信号文件,产生随机输入序列;接着将文件导入到cadence,将信号输入给SCPA(去除无源网络),测量输出信号波形;最后按输入数字信号的频率来采样输出信号波形,并进行增益归一化,比较输入输出序列是否完全一致。若完全一致,则可以说明功能无误。
162053q2x9ikgbtmahu3hs.png
这边提供一个例子,是基于一个IQ架构的SCPA的。该SCPA的信号采样率是时钟频率的1/3。将该SCPA的输出IQ两路分离出来,其波形如上图两种颜色的线条所示。可以在virtuoso中对波形send to”,接着”export”,并设置导出的采样率,即可将信号采样并导出。
这样,我们就完成了SCPA理想模型的搭建、简单的性能仿真以及功能的验证。
3 MOS模型的设计与验证
利用理想模型完成总体结构的功能验证后,接下来将从后往前一级一级进行MOS晶体管的替换,并对MOS模型逐级进行优化设计。在cadence中一般采用添加view的方式进行替换,这样只需在testbenchconfig文件中更改每一个schematicview,就能任意切换仿真需要的模型。
162053ejznz664cponv4p9.png
接下来将简单介绍如何设计每一个模块中的晶体管的尺寸,完成全部理想模型向MOS模型的替换。
首先是cascode输出级,如果不采用cascode,使用普通的反相器的话,设计的思路也是差不多的。其晶体管的尺寸可以通过所需的导通电阻的大小来确定。例如Ropt = 9.45欧姆,那么单端PA看到的阻抗为4.73欧姆,为了实现阻抗比19,单端PA的输出阻抗为0.53欧姆,每个PA64cell,因此单组cascode N/PMOS的导通电阻为33.62欧姆;
162053ahwzhtaeera43hhh.png
我们可以通过直流扫描,找到对应导通电阻的NMOS/PMOS晶体管的尺寸大小,例如这里可以找到当W(NMOS)=18uW(PMOS)=52u时,可以使得导通电阻为所需要的值。
162054y2ejusb69nu1fbls.png
实际上,这只能作为初始迭代的一个参考尺寸。晶体管的尺寸关系到输出的功率效率,还关系到线性度,后续需要在仿真中多次调整尺寸,以使整体电路的性能达到最佳。
另外,还可以通过搭建testbench,在cascode输出级的输入端给一个方波信号,测量输出端的时域波形参数,例如上升下降沿、占空比等等,来微调NMOS/PMOS的尺寸比例,以保证对称性,进而保证线性度。
162054uwwmozkgftmkggsy.png
第二部分是Driver的设计,Driver可以采用反相器链,并根据输出的对称性、延时去优化设计。有一点经验想要分享的是,可以反相器链在前面额外添加小尺寸晶体管,通过设定特定的尺寸调整输出的延时。另外在前仿中,尺寸的比例最好是系统性的,不需要每个管子都调得很散,虽然在前仿中是非常准确的,但在后仿中实际上会偏移对称点。
由于采用的cascode输出级,需要设计一个level-shifterLevel-shifter可以采用一种经典的结构,如下图所示。晶体管的尺寸可以取最小。
162054dnend9uunz0nme9d.png
前面就已完成后两级的晶体管的设计,接下来是数字逻辑部分。数字逻辑部分可以采用对称的静态CMOS互补逻辑门来实现,例如上混频模块中的一对与门,可以在普通的静态CMOS互补逻辑门基础上,将NMOS部分拆分成两条支路,尺寸为原来的一半,两条支路的两个输入信号位置相反,这样可以保证两个信号是对称的。
162054s5hsofyfv7mses33.png
对于单转差模块,可以在反相支路上使用奇数个反相器,同相支路上使用偶数个反相器,并添加一个传输门。两路的延时不匹配的情况可以在前仿中添加一个理想电容来进行同步,到后仿画版图阶段再通过实际的方法来调整延时。
162055xa7zxe9ce7k6y60y.png
这样,我们就已经完成了全部晶体管的替换工作,对整体进行仿真,可以看到输出功率是25.93dBmSE57.48%,能够达到赛题的要求。
162055xbrqrvw9b6n4bn6m.png

完成了有源部分的设计与仿真后,接下来将对无源匹配网络进行设计,一般来说,无源匹配网络的设计分以下几个步骤:
162055swprrpvsrb1cpgby.png 162055myvytz66viyvtzgz.png
1)通过Load-Pull仿真,确定匹配网络要将负载阻抗匹配到的最佳阻抗值;
2)作出有源输出端到无源匹配网络的集总参数电路模型,计算出各参数之间的关系;
3)在实现匹配的算术等式限定下,根据各参数的设计范围,综合考虑无源匹配网络的整体性能,寻找多组解中的最优参数集合;
4)确定非理想无源网络的所有集总参数,绘制版图并进行仿真验证与迭代。
可以看出,无源网络的设计是非常繁杂的过程,本设计将直接省略这些过程,转而使用RFIC-GPT软件来设计变压器。

RFIC-GPT软件使用

RFIC-GPT是一款非常智能的集成电路自动化设计软件,能够根据电学指标,在秒级时间内直接生成射频器件和电路的GDSII或原理图,准确度高达95%,无需迭代。目前能够支持电感、变压器、匹配电路、宽频多值匹配电路、共源极功率放大器的自动设计生成,并支持22nm130nmCMOS工艺。以下将介绍如何使用RFIC-GPT设计SCPA所需的无源变压器匹配电路。
首先可以打开网页https://service.icprophet.com,登录到RFIC-GPT的线上设计网页。接着在网页最左侧选择所需要设计的电路类型,并在窗口中输入电学参数。根据赛题需要,我们设计一个在2.3GHz~2.5GHz下,由50Ω匹配到(9.45+18.95i)Ω的变压器匹配电路,并满足全频段S11<-20dB,插入损耗<1.5dB,使用65nm CMOS工艺。将这些参数输入到窗口第一栏中,点击提交计算,20秒左右即可得到生成的电路。可以在窗口第二栏中观察生成电路的匹配度、插入损耗结果,并在第三栏中点击下载GDSII文件,就能够得到设计的变压器电路。
162055cp8p888vdqq0yr8m.png
需要注意的是,页面第三栏的最上方会给出两个电容的值,分别是初级和次级线圈的调谐电容,该电容不包括在GDSII中,需要自行在电路中进行添加。
下载完成后,会得到一个.zip压缩文件,解压后可以得到三个文件,分别是.txt.gds.csv文件,其中.gds文件就是变压器的版图文件,可以直接导入到cadence中,.csv文件中是简单的变压器仿真结果,可以看到所设计的变压器在频段内的电感值、Q值以及k值。而.txt文件则是用来导入到cadence内嵌的RFIC-GPT工具中生成变压器使用的,如果大家的设计环境无法导入文件(例如学校服务器),可以使用该内嵌工具进行自动化设计,具体方法可以查看https://wiki.icprophet.com/
162055cri2im2rb6trtmv3.png
下面将演示如何将gds文件导入到cadence中。
首先将gds文件放入服务器/虚拟机中,在virtuoso的主界面中点击file -> import -> stream
162056g0d0e7rd007rwwrw.png
然后在弹出的页面中分别选择导入的gds文件以及导入到的library,然后点击translate
162056x9xzg5xxummp9xml.png
就能够在目标library中看到导入的变压器layout
162056xyi8ymr8184077cm.png
这里会发现打开的layout中变压器的金属层并不是所需要的顶层金属,例如这里可以看到使用了M1~M3,但我们所需的金属层是M8~AP层,这是因为设计软件为了适应不同工艺库中顶层金属有不同的命名方式,统一采用了底层金属,只需要我们根据工艺库进行层的替换即可。
如果我们不清楚顶层金属及其通孔的名称,可以通过.proc文件查看对应层的信息。这里我们将M1层换为M8层,VIA1层换为VIA8层,M2层换为M9层,VIA2层换为RV层(M9AP的通孔),M3层换为AP层。更换完毕后,可以看到正确金属层下的变压器。
162056whli8i9hvnlin2ol.png
接下来我们就可以按照一般的方法,将该layout进行EM仿真并生成symbol,使用到电路中去。这里我使用EMX仿真中的自带的plot看一下变压器的仿真参数,和前面提到的.csv文件进行对比。
162058uzac0iitq4330dze.png
可以看到仿真结果与.csv文件给出的结果基本吻合,误差来源与仿真精度和仿真环境参数有关,但整体误差非常小,后续无需再进行迭代设计。
162058bacwc6dq6cqupaqz.png
我们可以生成变压器匹配网络的symbol,然后在初级次级线圈中添加电容器,该电容值在网页的计算结果中已经给出,就可以把该无源模块和有源模块连接并进行仿真了。
162058h4ckknry984kk6er.png
导入实际的无源变压器模型后,最大输出功率为24.29dBm,峰值系统效率为52.02%,比之前稍微下降了一些,但也仍在赛题指标范围内。

如果大家需要进一步了解RFIC-GPT的设计方法以及流程演示,可以在b站中搜索“冉谱微电子”,账号中会提供详细的软件使用方法以及其他电路的自动化设计流程。
4 竞赛总结
关于该赛题,首先是之前提到的赛题指标较少,自由度很高,强烈建议大家在有余力的情况下自行设定额外的指标,可以根据一定的应用背景(如802.11协议)去设定;
其次在SCPA中,在应用中需要支持调制信号,回退效率、线性度是非常重要的指标,只关注赛题上对最大功率效率的提高而忽略其他性能指标,实际上设计意义非常局限;
根据上一届IEEE杯的经验,能够完成前仿真并达到指标要求,后仿真有一定的工作,就能够通过初赛进入分区决赛;能够较为完整地完成前后仿真,达到赛题的指标要求,就能够进入全国总决赛;如果有所创新,且设计的电路应用性良好,仿真结果完整,就有机会获得国一国二;但由于去年的性能指标几乎是从一篇2020JSSC上借鉴的,今年较低的达标要求或许会导致获奖情况有所变化;
另外,分区决赛和总决赛的评委应该是企业界的专家,除了赛题指标外,他们很关注工艺角、温度、失配等仿真,如果大家有余力可以去做;
还有一点要注意的是,初赛提交报告后,直到分区/总决赛答辩前都可以再继续对设计进行优化,时间紧张的队伍可以不用追求在初赛就把所有的前后仿及优化工作完成,初赛晋级的门槛并不高;
以上就是我的设计展示和经验分享,希望对大家有所帮助,也祝愿大家在竞赛中取得优异的成绩。

发表于 2024-4-17 10:12:40 | 显示全部楼层
看看
发表于 2024-4-24 21:42:04 | 显示全部楼层
根据赛题需要,我们设计一个在2.3GHz~2.5GHz下,由50Ω匹配到(9.45+18.95i)Ω的变压器匹配电路。  想问一下这里是如何确定的呢
 楼主| 发表于 2024-5-5 13:28:10 | 显示全部楼层


jjchen1 发表于 2024-4-24 21:42
根据赛题需要,我们设计一个在2.3GHz~2.5GHz下,由50Ω匹配到(9.45+18.95i)Ω的变压器匹配电路。  想问一下 ...


对自己的电路进行load-pull仿真得到
发表于 2024-5-16 11:26:42 | 显示全部楼层
好贴,最近在学习相关的知识,顶
发表于 2024-5-16 14:31:13 | 显示全部楼层
请问这个理想的变压器是怎么搭的?你用的那个变压器是那个库里的?找不到呢?我平时用mind,但仿真经常出问题。
谢谢
发表于 2024-8-11 00:55:08 | 显示全部楼层
学习一下!
发表于 2024-8-11 14:36:14 | 显示全部楼层
射频牛逼
发表于 2024-8-19 14:58:51 | 显示全部楼层
请问在EMX仿真时所用的.proc文件是PDK自带的吗?还是自己编写的呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-22 14:37 , Processed in 0.033649 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表