【免责声明】
本公众号的主体为个人,作者在本公众号发表的所有文章均是出于无私分享、交流学习的目的。
作者在该公众号发表文章纯属个人行为,文章的观点也纯属个人观点,与作者曾经任职或者正在任职的公司、其他个人或组织均没有任何关系。
作者已经发表或者即将发表的MMIC设计系列文章将会严重倚赖于各类EDA软件,尤其是ADS和Cadence;作者个人的确没有实力购买这些软件的使用授权,但作者保证仅用于业余研究和交流学习的目的,绝对不会用于商业盈利;若软件商有异议,作者全力配合删除相关软件和文章。
文章中可能有些素材取材于网络,若有侵权请读者提醒,作者会在第一时间进行更正。
对于声明原创的文章,欢迎任何人转载分享,但须注明出处。
细心的读者可能会注意到在早期多篇文章中,已经多次出现了向量用法,例如中输入输出端口的键合线B1<1:0>、B2<1:0>,表示两条并联的键合线。很多微波电路应用为了减小引线电感采用双线或多线键合。
ADS的帮助文档中,有这样几个示例:
这其中的几个概:向量(vector)、网络(net)、总线(bus)、抽头(tap)
Net - In the broadest sense, any connection between the pins of different electrical components
Bus - A set of wires or a single wire carrying a set of signals. A bus is a kind of net or collection of nets where all members share the same base name (Data<1:4>=>Data<1>, Data<2>, Data<3>, Data<4>).
Wire Label - An identifying label used to name a net that enables referencing that net by name. A simple wire label (A) merely labels a wire for identification or connection purposes; a vectorized wire label (A<1:4>) identifies that wire as a bus and enables connection by tapping, using the base name and an index (A<2>). The vectors identify the bus width.
Bundle - A collection of wires (or buses) that do not share the same base name (Data<1>,A,B).
Iterated Instance - A single instance on the schematic that represents multiple instances. To iterate an instance you modify the Instance Name to include a vectorized label (InstanceName<1:4>).
给一根连线标个名字就是wire label,这个应该都能理解,这根线就被分配了一个网络标签,它所在的网络(NET)以及电路生成的网表就用这个标签名来区分,没有手动添加标签的网络会被系统自动分配唯一编号。
将连线向量化后就生成了一个总线(bus):
总线的命名语法规则:
Syntax:
Bus
base name<start:stop>
Example: InBus<1:4>
or
base name<start:stop:increment> for an increment other than 1. Use this to create patterns such as {2,4,6,8} and {1,3,5,7}.
Example: InBus<2:8:2>,等价于{InBus<2>、InBus<4>、InBus<6>、InBus<8>}
Tapped Wires
base name<index>
Example: InBus<1>
Iterated Instance
instance_name<start:stop>
where instance_name is the actual instance name you are using for this component, and the vector information tracks with the bus vectors, including an increment, where applicable.
Example: SRC1<1:4>
Note that pins and ports can be iterated in the same manner. For details refer to, Bus Pins and Iterated Ports.
将多个任意网络合并到一起就成为一个线束(bundle):
将总线或线束的某一根导线(向量的一个元素)分离出来就叫做抽头(tap)。
端口、网络、元件编号都可以向量化:
下面这个例子中,四个独立的电源分别接了一个电阻分压网络到地,它实际上是四个电路,仅仅是共用了同一个地:
这里再引用两个前期的文章中的例子:
有了上面的基本概念,下面再来看一下向量化的便利性。众所周知的传输线等效模型:
由于传输线等效为无限多细分的LC低通网络级联,想要用集总参数元件来模拟它是不现实的,实际应用中会取有限级数来近似。那么我们用ADS来模拟一下人工传输线,先建立一个最基本的LC低通单元lc_section,定义两个参数:L、C,为了对称性,设定为T型LCL低通滤波网络:
再利用基本单元lc_section搭建人工传输线模拟电路:
单节lc_section低通网络近似为一段极短的传输线:
将lc_section增加到10节,解释一下10个LC网络的级联顺序是:
IN - X1<9> - NET<8> - X1<8> - NET<7> - …… - NET<0> - X1<0> - OUT
再将lc_section增加到100节:
最后将lc_section增加到1000节:
上面这个例子,如果要靠手绘1000节低通网络,显然是不现实的。顺便一提,Cadence IC中网络编号也遵循相同的规则,做数字或模拟IC的同学们应该都非常清楚。
最后再留一个问题供读者思考,下面这个两个电路有什么不同?它们的电源电流分别是多少?
历史文章
关注本公众号