Device 文件由多行数据来记录器件的逻辑信息。每一行包含一个关键词,后面紧跟一个或多个数据字段。一个关键词就是描述器件的一个属性。各个字段主要提供关于该属性的值。
DEVICE文件完整格式如下:
(comment line)
PACKAGE <matching_package_symbol_name>
CLASS <type>
PINCOUNT <number_of_pins>
PINORDER <function_type> <list_of_pin_name>
PINUSE <function_type><list_of_pin_use_codes>
PINSWAP <function_type> <list_of_pin_names>
FUNCTION <slot_name> <function_type><list_of_pin_numbers>
POWER <net_name> ; <list_of_pin_numbers>
GROUND <net_name> ; <list_of_pin_numbers>
NC ; <list_of_pin_numbers>
PACKAGEPROP <property_type> <property_value>
END
各参数说明如下:
(comment line):注释部分,无意义。括号中的内容可以任意字符,一般可写成封装名。
PACKAGE:该DEVICE对应的封装。
CLASS: 对应的器件类型,共三种:IC(一般为有源器件);IO(一般指接口器件);DISCRETE(无源器件,比如电阻电容)
PINCOUNT:该器件具有的PIN数量。
PINORDER:该部分用于描述单个独立的功能块,可结合后面的PINUSE、PINSWAP、FUNCTION来详细描述该功能块;<function_type>是功能块的名称,<list_of_pin_name>是各个功能块对应的管脚名,比SCLK、SDATA。顺序需与后面的PINUSE、FUNCTION所对应。
PINUSE:各个功能块对应PIN的逻辑功能,比如IN(输入)、OUTPUT(输出)、BIDIRECTIONAL(输入输出)、TRI(三态)。
PINSWAP:各个功能块内部对应PIN之间的互换关系。<function_type>为功能块的名称,需要与PINORDER所定义的对应。<list_of_pin_names>该功能块可互换的管脚名。
FUNCTION:各个功能块的PIN NAME与PIN NUMBER的对应关系。<slot_name>为功能块下的单个模块名,名字可为任意字符串;<function_type>需与PINORDER所对应;<list_of_pin_numbers>为PIN NUMBER,与前面PINORDER的PIN NAME顺序对应。
POWER:描述器件的及电源网络及对应的电源管脚。<net_name>为电源的网络名;<list_of_pin_numbers>为电源所对应的PIN NUMBER
GROUND:描述器件的地网络及地管脚。与POWER功能一样
NC:描述了器件未使用的管脚,即不包含任何功能的管脚。
PACKAGEPROP:用于指定器件的某些属性,比如VALUE值、可替换的封装、高度信息等等。
<property_type>为属性名,共有以下几种类型:
1) DEVICE_LABEL 目前已经不再适用
2) VALUE 器件VALUE值,比如”sn74ls00”
3) PART_NUMBER 不适用于PCB EDITOR,因此PCB设计中用处不大
4) INSERTION_CODE 自动插件零件分类码,常用于将器件自动分类
5) TERMINATOR_PACK 不适用于PCB EDITOR,因此PCB设计中用处不大
6) HEIGHT 记录器件高度信息
7) ALT_SYMBOLS 设计过程中,通过该属性可以指定一个替代的封装。其基本格式如下:
PACKAGEPROP ALT_SYMBOLS'(Subclass:Symbol,...;Subclass:Symbol,...)'
注意每个Subclass直接需要用分号隔开。
Subclass:代表所在层可替换的封装,可以设置为TOP或者BOTTOM层。可省略Subclass,省略后,默认是表底层都可使用替换封装。比如当前设置Subclass为TOP(也可用T),那么当前封装只有在表层时,才能使用替代的封装。
Symbol:为allegro的封装名,指定与当前封装替换的封装名。
例如:当前板上有C0402的封装,我们需要使用C0402-BGA与之替换,且只有器件在底层时才可以替换,那么C0402封装DEVICE中的ALT_SYMBOLS可设置如下:
PACKAGEPROP ALT_SYMBOLS '(B:C0402,C0402-BGA)'
如果忽略层面的话,可直接设置如下:
PACKAGEPROP ALT_SYMBOLS '(C0402,C0402-BGA)'
例如:当前板上有SOP16的封装,我们需要使用DIP16或者QFN16与之替换,且只有器件在表层时可使用DIP16和QFN16;底层只能使用QFN16替换,那么SOP16封装DEVICE中的ALT_SYMBOLS可设置如下:
PACKAGEPROP ALT_SYMBOLS '(T: SOP16, DIP16,QFN16;B:SOP16, QFN16)'
注:当我们只需要将C0402替换为C0402-BGA时,只需要在C0402的DEVICE里面添加ALT_SYMBOLS属性即可,不需要在C0402-BGA中添加ALT_SYMBOLS属性。有时导出的库里面有很多同样的DEVICE,比如c0402__1.txt、c0402__2.txt等等,我们可以直接删除,只打开原始的c0402.txt,将其中的PACKAGEPROP VALUE参数删除(即该DEVICE可对应所有VALUE值的封装),再添加ALT_SYMBOLS属性就可以赋给所有c0402封装。
END:DEVICE文件结束。