哎!闲来无事,发个帖子,聊以慰藉!

废话不多说,如何在ADS里创建元件库?

         教程的目的是在ADS里编辑和创建自己元件库(可能有自己理解不到位的地方,望不吝赐

教),并加载在元件库面板中(即palette中)。为叙述方便,现将整个创建和使用过程归纳如下:

          步骤1:创建新的工作空间(即旧版的project),并命名为myNewComponent1,同时把lirary

view 选项卡下的库名改为myNewlib,如图

 

          步骤2:为后面新建的元件库,在工程中建2个元件,创建方法类似创建原理图。点击新建原理

图(方法多种,不赘述),随便命名为amplifer,关闭窗口保存。接着再创建一个视图(即symbol)

,然后添加两个pin,如图:

         点击file菜单下的design parameters,在弹出窗口的第一个选项卡中,可修改元件描述,元件

实例名,仿真模块类型选默认的第一个子网络(属于symbol的内部电路),在第二个选项卡用来创

建元件参数,示例如图:

有参数名字,参数值类型,默认值(可编写表达式)以及单位和描述,编辑完一个参数之后点击添

加,参数的多少视具体应用情况而定,以上建了4个S参数,退出保存。

           步骤3:建立symbol内部的原理图。打开先前建立的空原理图,为简单起见,我随便加入了一

个电容,同样加上两个pin(与symbol对应),完了自后退出保存。

          步骤4:将元件加入到面板组(palette)。利用电脑自带的写字板工具,编辑一下文档:

/*MYAMP*/
create_text_form("nameform","para_for_amp",0,"%v","%v");
create_compound_form("valueform","my default value",0,"%v","%v");
create_form_set("name_formset","nameform");
create_form_set("value_formset","valueform");
create_item(
              "amplifier",                         //name
              "make self component" ,             //label
              "y",                                //prefix
               0 ,                                //attribute
              "NULL",                             //priority
              "NYselfComponent",                  //icon name
              standard_dialog,                    //dialogname
              "*",                                //dialogData
              ComponentNetlistFmt,                //netlistFormat
              "MYselfComponent",                  //netlistData
              ComponentAnnotFmt,                  //displayFormat
              "AMP",                               //symbolname
              macro_artwork,                       //artworkType
              "MY_amp",                            //artworkData
              ITEM_PRIMITIVE_EX,                   //extraAttrib
            create_parm("Gain","amplifier_ maximum_gain",0,"name_formset",UNITLESS_UNIT,prm("nameform","Gain")),
            create_parm("10","default value",0,"value_formset",DB_GAIN_UNIT,prm("valueform","10"))
          );
set_design_type(analogRFnet);
library_group("myNewlib","specify_group_for_newComponent",1,"amplifier");
de_define_palette_group(SCHEM_WIN,"analogRF_net","MY-palette","self_pal",-1,"amplifier","MYAMP","MYpic","mybalun","MYbalun","Balunpic");

        注意格式不要书写错了(否则编译会出问题),关闭文档并保存为ael文件(需要理解AEL语言

哦,亲),其中参数MYpic(对应创建的amplifier)和Balunpic(另一个元件,例子中未给,创建方

法一样)为元件对应的位图名,位图文件放在安装目录下的circuit/bitmaps里面,此即面板上显示的

图标,将ael文件放在安装目录下的circuit/ael/palette里面(以便启动ads时会自动加载文件生成编译

文件atf)。参数MYpalette为面板组中显示的库名。

          步骤5:新建原理图,并命名为MyComponent。至此,含有两个元件的库已建立,重新启动

ADS时自动加载生效。重启后打开MyComponent的原理图,在面板中就会出现所建立的元件库名

MY-palette,如图:

且出现刚才建立的两个元件(巴伦图标为本人图片)。哦,有一点要注意,图标文件要符合:

1:必须是16色的位图

2:图片大小必须为32*32

以下是用自制巴伦做的一个简单仿真及内部电路:

结果如下:

由于是用两个理想变压器组成的巴伦,故结果非常理想,相位相差180度,差分端口衰减3dB。