Allegro DEVICE文件详解--转载

本文由 dongle 于 2014-7-31 11:15 发布在  Allegro    

一、什么是DEVICE文件

Device是给器件提供逻辑信息的一个文件,在调入网表过程中,allegro通过device文件去获取关于器件完整的信息描述。
Device主要包含以下信息:
l        封装构造(比如DIP、SIP)
l        器件类型(比如 IC、DISCRETE、IO)
l        封装的管脚数量
l        封装管脚的电气描述(比如逻辑使用和PIN Swap等信息)
l        封装的物理功能块数量
l        各个功能与封装的映射关系
l        Pin Use(即PIN使用的功能),比如输入、输出、输入输出。
l        逻辑功能与物理PIN脚的对应关系
l        电源、地管脚
l        属性定义,比如alternatesymbols功能,可以将同一器件用不同封装替代。
(比如LM124A,其内部包含4相同运放,每个运放就是一个独立的物理功能块)

DEVICE文件与网络的对应关系
Device 文件仅适用于调第三方网表的情况。网表文件主要包含各个器件的封装信息,管脚互连关系。
在网表文件中多个部分都需要DEVICE文件名:
$PACKAGES部分
该部分网表格式如下:
封装名 ! DEVICE文件名 ! 器件VALUE ; 器件位号

该部分主要用于识别BRD中需要调入的器件。每行代表一个器件,在每个器件信息中,需要提供该器件对应的DEVICE文件(注意各个参数之间的分割符号)
$FUNCTIONS部分(可选)
该部分用于定义器件的功能,网表文件中若存在该部分,那么必须在这儿提供完整的DEVICE文件名。一般情况我们调网表可以省略。


二、DEVICE 文件包含信息说明

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封装。
ENDDEVICE文件结束。

三、DEVICE文件使用举例

下面以一个SN74LS00为例,说明DEVICE与封装的对应关系。
74LS002输入4通道与非门逻辑器件。内部包含四个相同的功能模块。每个功能块有两个输入脚,一个输出脚。如下图所示:




以上DEVICE文件描述了74ls00的基本信息。共有四个功能块(G1 G2 G3G4),每个功能块有三个引脚。分别对应为A B Y,其中A B为输入,Y为输出。141013脚为每个模块的A输入,25912为每个模块的B输入,36811为每个模块的Y输出。每个模块可以在AB之间互相交换。

注:当器件内部有多个不同的功能块(FUNCTION)时,其DEVICE文件中需要单独定义每个功能块,定义方法与上面的类似。

例如排阻,一般内部有四个电阻组成,现在我们需要定义其单个电阻的两个脚可以互换,且四个电阻间也能够互换,其DEVICE文件内容如下:

 
当使用命令swap pins(菜单Place à Swap à Pins执行)时,点击排阻的单个引脚,只能在其单个电阻内部交换网络。当使用swap functions(菜单Place à Swap à Functions执行)时,点击排阻的单个PIN,可直接将排阻内部电阻与其余几个电阻交换。

     

在PCB设计中,可适当利用好DEVICE文件,提升设计效率。除了以上提到过的功能外,还可以充分运用DEVICE创建更多的功能,比如FPGA的各个BANK之间的SWAP属性、替代封装、交换网络等等。

 

文章转自 http://www.allegro-skill.com/thread-2589-1-1.html,一个不错的论坛哦

 

标签: Allegro DEVICE

评论:

dongle    2014-07-31 11:21
不错的内容,一般人不太注意device文件的,且Allegro方式导入PCB都不需要device文件,不过多知道一点没有坏处

发表评论:

电子布局网  |  手机版  |  RSS  |  我要留言

All Rights Reserved. Powered by 电子布局--

sitemap