首页|资源下载
登录|注册

您现在的位置是:首页 > 技术阅读 >  ADS应用技巧(12)——向量、总线、线束、迭代的用法

ADS应用技巧(12)——向量、总线、线束、迭代的用法

时间:2024-06-03

【免责声明】

  • 本公众号的主体为个人,作者在本公众号发表的所有文章均是出于无私分享、交流学习的目的。

  • 作者在该公众号发表文章纯属个人行为,文章的观点也纯属个人观点,与作者曾经任职或者正在任职的公司、其他个人或组织均没有任何关系。

  • 作者已经发表或者即将发表的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 componentsBus - 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:Busbase name<start:stop> Example: InBus<1:4>orbase 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 Wiresbase name<index> Example: InBus<1>Iterated Instanceinstance_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的同学们应该都非常清楚。


最后再留一个问题供读者思考,下面这个两个电路有什么不同?它们的电源电流分别是多少?


历史文章



关注本公众号