原理图和元件封装都已经准备好的情况下,接下来就是要用PCB Editor来做PCB布线作图,本篇文章是提供画PCB操作前期设置配置参数,方便PCB画图。
本篇博客主要描述以下三点:
1. 用Capture CIS检查原理图设计,即DRC,并创建原理图文件的网表(第一方网表)和出物料清单(即BOM表)。
2. 导入结构工程师的AutoCAD的DXF文件,作为PCB Editor的板框。
3. 导入第一方网表,连接原理图文件和PCB文件。
4. PCB布线前对PCB Editor设置用户和配置等参数。
5. 针对简单的项目做相对简单的布线原则。
1. 用Capture CIS检查原理图设计,即DRC,并创建原理图文件的网表(第一方网表)和出物料清单(即BOM表)
1.1 选中文件夹列表里的原理图文件,文件名后缀是.dsn;
1.2 点击Tools,选择Design Rules Check,进入对话框。
1.3 看到Design Rules Options,需选择的选项如下图;
1.4 然后点击Eletrical Rules,需选择的选项如下图;
1.5 点击Physical Rules,需选择的选项如下图;
1.6 如上图,点击确定,然后软件开始检查,并弹出如下对话框,
INFO(ORCAP-36105): Checking Missing Pin Numbers
INFO(ORCAP-36101): Checking Missing PCB Footprint Property
在上面两句话之间没有信息,即判定没有错误。
1.7 接下来创建网表,同样需要点击选中原理图的文件名,如下图。
1.8 点击Tools,选择Create Netlist,
1.9 弹出Netlist对话框,按下图中的选项选中,可以看出原理图和PCB文件的关联关键词是PCB Footprint,因此原理图里面的元件footprint名称和元件封装的名称必须一致,这样在画PCB时才会把两个文件里面的同一个元件关联上。另外下面Netlist Files一栏写的是allegro,表明在这个原理图文件夹下面的文件夹,名字是allegro,这里面会有创建出来的网表。确认无误后,点击确定。
1.10 然后在文件夹目录里面可以看到有关于网表的输出信息,如下图Output下一级可以看到pstxnet.dat这个文件,该文件就是关于网表信息的文件,不需要看懂,只需要看到它的存在。
1.11 上面网表完成以后,一般企业都会要求出BOM表给到生产单位。同样,选中原理图文件,如下图。
1.12 点击Tools,选择Bill of Materials。
1.13 弹出Bill of Materials对话框,如下图,查看Header和Combined properly string,
默认内容是下文,要在后面增加蓝色字体的内容,表格才会多出封装信息。然后点击OK。
Item\tQuantity\tReference\tPart\tPCB Footprint
{Item}\t{Quantity}\t{Reference}\t{Value}\t{PCB Footprint}
1.14 弹出Excel表格,如下图,PCB Footprint下面的内容就会出现了,否则不会出现这个内容。
2. 导入结构工程师的AutoCAD文件,作为PCB Editor的板框
2.1 打开PCB Editor,新建一个BRD格式的文件,点击File->New。
2.2 弹出对话框New Drawing。
2.3 点击Browse,更改存放BRD文件的路径,并在File name一栏输入文件名,点击open。
2.4 回到New Drawing,点击OK。
2.5 导入结构图的板框,点击File->Import->DXF,
2.6 弹出DXF In对话框。
2.7 点击DXF file一栏的"...",找到存放DXF文件的路径,并双击。
2.8 回到DXF In对话框。
2.9 由于该文件设计用的是mm毫米为单位,所以要将DXF units的单位MILS,改为MM。然后如果层别的设置还没设定好,Import选项是呈灰色状态无法点击,因此要点击Edit/View layers进入设置层别。
2.10 进入DXF In Edit/View Layers对话框
2.11 在此对话框先建立BOARD GEOMETRY该大类的层别,然后在Subclass新建一个子类的层别,点击Class的下拉按钮,选择BOARD GEOMETRY。
2.12 然后在Subclass下方点击New subclass,新建子类的层别。
2.13 由于在公司内部流动较大,故需要新建可区分的层别方便自己工作,在这里用日期来命名。然后点击OK。
子类图层:0-20230609
2.14 回到对话框,再新建一个子类图层,如下图。
子类图层:PCB_TOP_SIDE-20230609
2.15 回到对话框,继续新建一个子类图层,如下图。
子类图层:PCB_OUTLINE-20230609
2.16 回到对话框,继续新建一个子类图层,如下图。
子类图层:KEEPOUT-20230609
2.17 回到对话框,继续新建一个子类图层,如下图。
子类图层:DI-20230609
2.18 回到对话框,继续新建一个子类图层,如下图。
子类图层:Defpoints-20230609
2.19 这五个层别实际是软件默认需要的,如下图,只是在后面加了个日期。建立完这个五个层别之后,就可以在DXF In Edit/View Layers这个对话框,点击Select all打上√,在Class这一栏,点击下拉按钮,都选择BOARD GEOMETRY,在Subclass点击下拉按钮依次选择对应新建的子类图层名称。然后点击OK。
2.20 回到DXF In对话框,点击左下角的Import,然后出现dxf2a(allegro)对话框显示正在导入当中,等待导入完成。
2.21 完成以后,回到对话框,点击下方的Close,关闭对话框。
2.22 回到软件主页面可以看到板框导入进来了。
2.23 该软件高版本建议结构图是放置在Design Outline,所以在Options一栏选择Design Outline,然后更改较亮的颜色,如下图。
2.24 继续更改其它层的颜色,选择Cutout,变更较亮的颜色。
2.25 然后切换回Design Outline这个层别里。
2.26 接下来就是根据现有的结构进行布置,点击Edit->Z-Copy,这个命令可以实现跨层的复制。
2.27 在Options一栏选择图层,在大类图层,选择BOARD GEOMETRY,
2.28 然后在下面的子类选择Design Outline,如下图。
2.29 然后点中用十字光标选中外框,然后该外框就会高亮成黄色,可以在Command命令行可以发现此语句Copied to: ("Board Geometry/Design_Outline"), 1 copies made,也就是说这个黄色外框已经被复制到Board Geometry/Design_Outline这一层。(注意是点选,而不是框选)
2.30 将当前图层切换到Cutout。
2.31 同样使用Edit->Z-Copy命令,点选该圆圈,这个圆圈对于实物来说是一个装配孔,而Cadence软件建议使用者把这类挖空的孔,都放置在Cutout这一层。
2.32 这里有四个孔全部都点选,如下图。
2.33 完成后右键点击Done。
2.34 通常来说,元件和导线都要放在装配孔以外,板框以内,所以我们要建立禁止布线区,使用Edit->Z-Copy。
2.35 在Options一栏选择大类PACKAGE KEEPIN,这个大类是用来放置元件区域的,如下图,Size选择Contract,即内缩,Offset输入40,即内缩40mil。
2.36 点击外框线,即黄色线,则出现紫色边框线,也就是出来了紫色布线区域。
2.37 切换图层,选择大类PACKAGE KEEPOUT,且offset填0,因为这个是装配孔,只需要让它本身的区域不被放置元件即可。
2.38 点击外孔的边缘,如下图,出现网状区域,网状区域代表禁止布线。
小结:上面的PACKAGE KEEPIN和PACKAGE KEEPOUT是属于元件放置区和禁放区。
2.39 接下来是布线区和非布线区,在Options一栏选择图层为ROUTE KEEPIN,要求线到板边至少要有10mil,所以设置offset为10mil,即布线区相对于板边内缩10mil。
2.40 点击板边,生成布线区,这里是橙色线。
2.41 然后图层选择ROUTE KEEPOUT,图层区域会自动跳到TOP,这里要修改为ALL,且该外扩Expand,offset为10。即外扩10mil。
2.42 点击装配孔圆环区域即可,如下图。
2.43 完成以后,右键点击Done。
2.44 点击菜单栏下面的fix命令,即用来固定整个结构图,后面布线时就不会误操作。
2.45 拖动全选整个结构图,如下图。
2.46 右键点击Done。
2.47 设置焊盘和元件封装路径,选择菜单栏Setup->User Preferences,
2.48 弹出对话框User Preferences Editor,左侧目录栏选择Paths->Library。
2.49 选择padpath和psmpath的"...",添加焊盘和元件封装的存放路径,完成以后点击OK。
3. 导入第一方网表,连接原理图文件和PCB文件。
3.1 选择菜单栏,点击File->Import->Logic/Netlist,
3.2 弹出对话框Import Logic/Netlist,根据下图,选中需要勾上的选项
3.3 然后在该对话框的底部,点击"...",选择网表存放的路径,点击Choose。
3.4 然后在当前的对话框点击Import,等待导入完成。
3.5 导入完成后,该对话框都会退出。
4. PCB布线前对PCB Editor设置用户和配置等参数。
4.1 放置元件,点击菜单栏Place->Quickplace。
4.2 弹出对话框Quickplace,然后点击Place,再点击OK。
4.3 可以看到元件的放置了
4.4 由于这是第一方网表,可以通过选中原理图的元件,对PCB文件的元件进行高亮,因此在这里可以分模块进行布局,回到Capture CIS,右键点击Selection Filter。
4.5 右侧出现对话框,先点Clear all将所有项目取消选中,再选中Parts,也就是只可以框选元件。最后点击OK。
4.6 把不需要的信息隐藏,即将相应的图层颜色屏蔽掉,依据顺序,把如下图层的颜色改成黑色,意思就是屏蔽:(注意需要屏蔽这个底层是因为如果元件放到背面,即镜像放置,这个符号也是会显示的,所以也可以一并屏蔽)
Componet Value - Assembly_Top 元件值的顶层
Componet Value - Assembly_Bottom 元件值的底层
Componet Value - Silkscreen_Top 元件值的丝印顶层
Componet Value - Silkscreen_Bottom 元件值的丝印底层
Ref Des - Assembly_Top 元件符号的顶层
Ref Des - Assembly_Bottom 元件符号的底层
Ref Des - Silkscreen_Top 元件符号的丝印顶层
Ref Des - Silkscreen_Bottom 元件符号的丝印底层
Package Geometry - Pin_Number 元件序号的图层
Package Geometry - Place_Bound_Top 元件区域顶层
Package Geometry - Place_Bound_Bottom 元件区域底层
Package Geometry - Dfa_Bound_Top
Package Geometry - Dfa_Bound_Bottom
Package Geometry - Assembly_Top 装配顶层
Board Geometry - Dimension 测量尺寸的图层
4.7 将需要的图层变更颜色,
Package Geometry - Silkscreen_Top 丝印顶层
Package Geometry - Silkscreen_Bottom 丝印底层
4.8 查看飞线,发现飞线没有最短化
点击Setup->Design Parameters
弹出对话框Design Parameter Editor,然后在Ratsnest geometry点击下拉选择Straight,就可以实现最短化。
4.9 现在是无法区分钻孔还是焊盘,所以在Design Parameter Editor对话框右侧,把Plated holes, Non-plated holes & Padless holes都要打上√,其余是默认打√的。
4.10 这里默认用Mil作单位,不用改。
4.11 修改栅格点,点击Setup->Grids,
根据下图修改栅格点。
4.12 对NC脚进行高亮,点击Display->Highlight Dummy Pins,
弹出对话框Highlight Dummy Pins,对Dummy nets和Single node nets打上√,颜色选择灰色。点击Apply。
弹出没有网络的引脚报告,如下图。
如确认没问题就关闭对话框。
4.13 对电源引脚和地脚指定,并用不同颜色标注。点击Logic->Identify DC Nets。
弹出对话框,由于这个产品的引脚不多,建议先不用这种方式选择,点击Cancel取消。
先在右侧Find一栏,取消所有项目选中,然后只选中Nets。
直接在图面用鼠标点击逐个选中,选完以后对着某一个被选中的引脚右键点击Property edit。
弹出对话框,在左下角name一栏输入rat*,也就是搜索这一个项目
然后右边显示出Property,Ratsnest_Schedule,在右边一栏下拉选择POWER_AND_GROUND,点击OK。
接下来开始对电源网络和地网络进行分配颜色,先对GND网络进行分配,右键点击GND,选择Assign color,
弹出色卡,选择颜色。同样的方法对电源网络和地网络进行分配颜色,这里我根据个人的喜好选择颜色,步骤省略。
分配完颜色后,如下图。
4.14 分配完颜色之后,这些电源网络和地网络已经有颜色区分了,就可以关闭相关的飞线。点击Display->Blank Rats->Nets
然后用光标点击这些电源网络和地网络,点击之前还有这个叉叉,点完之后就没有了。
完成以后,右键点击Done。
4.15 完成以后再修改一下栅格点间隔,点击Setup->Grids。
弹出对话框Grids,根据下面修改Non-Etch和All Etch即可,这里面5个5,意思是一个格25mil,分成5等份。点击OK。
回到主页面,再点击Setup->Design Parameter,
弹出Design Parameter Editor,选择Design这个页面,将Accuracy改为1,即把小数改成1位就够了。点击OK。
回到主页面,修改栅格点的颜色,点击Display->Color/Visibility
弹出Color Dialog对话框,选择Display,点击色卡,再点击Grids那个空格即可变更颜色。点击OK。
4.16 设置旋转元件的快捷键,进入windows 11的设置页面,点击高级系统设置,弹出系统属性对话框,在这个对话框点击环境变量。
弹出环境变量对话框,确认变量HOME的值是哪个路径,这里是在H:\SPB_Data,点击取消,退出对话框。
然后去到电脑找到该路径文件夹,找到pcbenv文件夹,
双击进入pcbenv文件夹里面,用记事本打开env文件。
在source $TELENV语句下面增加这一句funckey ' ' angle 90
然后保存此文件并关闭,再关闭PCB Editor并重新打开,这样空格键就生效旋转元件的功能。
4.17 修改鼠标滚轮缩放比例, 点击Setup->User Preferences。
进入User Preferences对话框,点击目录栏Ui->Zoom,buttonfactor填0.5,no_dynamic_zoom打上√。
点击OK。
4.16 回到原理图,在这里用这样的方法对模块的元件进行高亮,然后在PCB Editor进行分模块布局,这里省略具体操作,比较简单。
5. 针对简单的项目做相对简单的布线原则。
5.1 叠层设置,点击Setup->Cross-section
进入对话框Cross-section Editor,
软件默认是双面板,在本项目里面是要做四层板,所以要在Objects这一栏增加叠层。对着TOP右键点击选择Add Layer Below
增加到4层,如下图。
对于TOP往下数第二层,Layer一栏下拉选择Plane,这一层做成一个平面。
命名为ART2,因为一般来讲实物PCB板的第二层是用来做GND用的,可以命名为L2GND,其实都可以,而且一般来讲主控芯片的下一层,要用作为地平面,缩短回流路径,在这里命名ART2。
继续在下方增加一个层,命名为ART3,这个一般用作电源平面。
5.2 约束规则设定,点击Setup->Constraints->Constraint Manager,进入约束管理器。
弹出对话框Allegro Constraint Manager
Electrical Constraint Set是电气约束,这个主要做的是等长,延时,拓扑,阻抗校验,过孔个数设置等等。
Physical Constraint Set主要设置的是线宽,过孔选择,差分线间距
Spacing这里主要设置的是各种元素之间的距离。
Same Net Spacing就是设置的是同一网络的各种元素之间的距离。
介绍完毕,开始设置:
先退出约束管理器,点击Logic->Assign Differential Pair,创建差分对。
进入对话框Assign Differential Pair,由于原理图的差分对网络已经命名好,用P和N或者是P和M做结尾,所以点击Auto Generate自动生成
弹出对话框Auto Differential Pair,在+polarity输入P,在-polarity输入N。再点击Generate。
弹出Differential Pairs Created生成差分对报告,检查无误后关闭继续生成P和M结尾的差分对,同样的操作完成。
创建完差分对之后,进入约束管理器,进行规则设定。
选择Electrical Constraint Set->Routing->Differential Pair,右键点击Name名称,Create->Electrical CSet,在这里先创建一个自己定义的规则名称,
弹出对话框Create Electrical CSet,在这里命名为DIFF
回到管理器页面,这里只设置Static Phase Tolerance静态相位误差为5mil,
然后右侧一栏选择Net->Differential Pair,将这个自定义规则DIFF,用下拉按钮针对需要用差分对规则的网络都选用DIFF,这样后面那里的静态相位误差都被设置成5mil了。
上面是Electrical Constraint Set,接下来设置线宽,进入Physical->Physical Constraint Set->All Layers
在DEFAULT这一栏设置Line Width为6.0mil。
设置Differential Pair下面的Min Line Spacing(线与线之间最小的间距)为6.0mil,Primary Gap(主间距)为6.0mil。
接下来设置过孔Vias,当前这个过孔是没有设置规则的。
所以打开Padstack Editor软件,
新建一个过孔文件,命名为via10X18,意思是内径10mil,外径18mil。为什么设置为这个内径是10mil?根据过往经验,大部分PCB厂商对内径的工艺至少要做8mil以上,也就是钻床上的钻头对板子直穿的直径至少要在8mil以上,再结合板子元器件密度的高低,且10mil以上的过孔的生产成本就不存在差异了,所以这里设置内径为10mil。
在Drill这一页设置内径为10mil,注意下方的单位为Mils。
在Design Layers这里的直径改为18mil,说明外径是18mil
点击这一个格。
然后下面出现这些信息,在Diameter设置为18即可。
然后将这一个格复制。
对这三层都进行粘贴。
设置小数位数,改成1位即可。
然后保存退出即可,回到PCB Editor软件约束管理器页面。
点击这一Vias,DEFAULT这一个格
会弹出Edit Via List对话框。
然后选择VIA10X18,双击它。
这样这个过孔就会增加到右侧的列表里面。
上面顶层和底层的约束规则创建好了以后,现在创建电源平面层的规则,右击DEFAULT->Create->Physical CSet
命名为PWR,点击OK。
设置电源平面层的最小线宽为8mil。
这个规则设置好以后,就可以将它在网络这里批量更改,回到左侧一栏,点击选中Net->All Layers
回到Capture CIS原理图,由于电源网络不多,所以这里手动选择所有电源和地的网络。通过点选,将PCB Editor里的约束管理器的电源和地网络高亮。
点选完以后,效果如下图。
然后右击其中一个高亮的,选择Create->Class,新建一个类。
弹出Create Net Class对话框,
重命名为POWER,点击OK。
创建完类别之后,就会看到电源和地的网络都归结在一起,如下图效果。
然后在DEFAULT一栏,点击选中出现下拉按钮,选择PWR,这样就可以对该网络的所有规则进行批量修改。
完成以后,接下来修改Spacing这一个大类,左侧选择Spacing->Spacing Constraint Set->All Layers。
点击DEFAULT,右击选择Change all design unit attributes,
弹出对话框,填写6,因为这个项目评估过可以走6mil,所以就将后面这些项目批量全部修改为6mil。点击OK。
设置完成之后,它就会分配到所有层,只要是命名为DEFAULT的,它都改变了6mil规则。
然后回到Physical->Physical Constraint Set->All Layers,将滚动条拖到最右边,点击选中DEFAULT这一栏。
在Pad-Pad Connect这一栏,下拉选择NOT ALLLOWED,意思是盘盘连接不允许。
DEFAULT和PWR这两个类都不允许。
其实意思就是DEFAULT这一类代表的信号线出来的过孔焊盘,是不能允许被连接到电源层(包括地)的过孔。
然后设置Same Net Spacing,
右击点中DEFAULT->Change all design unit attributes。
弹出对话框Set Value,填入6,点击OK。
对个别规则修改,同一网络的线到线的距离如果设置为6mil,那么就算是不同层它也有可能不允许你重叠,那这样就没必要,所以改成负数-100,允许它可以重叠。这是Line To << Line mil
改完之后效果是如下图,也就是改Line,Thru Pin,SMD Pin,Thru Via这些规则
然后改线到铜的距离-100,这里是Shape To << All
改完之后效果是如下图;
全部修改完之后,点击菜单栏Analyze->Analysis Mode,
弹出对话框Analysis Modes,点击Electrical->All differential pair checks,在On这一列打√,也就是在布线的时候,软件会帮忙检查差分对规则。
继续点击Physical->Pad-pad direct connect,在On这一列打√,软件会帮忙检查盘盘连接规则。
点击Spacing,这里直接在On一列的最上面那一个打√,即全部打开检查。
点击Same Net Spacing,选择Thru Via To的Thru Pin, SMD Pin, Thru Via,也就是告诉软件检查同一网络下的通孔不能打到插件焊盘,贴片焊盘和通孔焊盘。点击OK。
关闭约束管理器,回到主页面。
5.3 针对特殊的网络分配差分对规则
查看原理图,发现根据PCB Editor软件设置差分对,C1电容右端连接U3_TXN网络和C2电容右端连接U3_TXP网络是会满足软件设置的差分对规则,布线的时候会遵顼此规则,但是C1的左端和C2的左端分别连的是RX-和RX+,都是需要满足差分对规则去布线,但由于它们的网络不是U3_TXN和U3_TXP,所以布线的时候不会遵循差分对规则,那么现在我们需要去设置一下。
回到PCB Editor主页面,点击Analyze->Model Assignment,
弹出对话框SI Design Audit,点击OK。
弹出询问对话框Allegro PCB Designer,点击是。
弹出对话框Signal Model Assignment,选择RefDesPins,
在右侧Find这一栏,只保留Comps打√选项,
点击C1电容一端,让Pin脚高亮,
然后点击Signal Model Assignment对话框的Create Model
弹出对话框Create Device Model,点击OK。
弹出两个对话框
其中这个对话框Create ESpice Device Model里面的Value值不能是0,这里不是0,就按默认即可。点击OK。
弹出对话框Allegro PCB Designer,点击是。
然后可以看到Signal Model Assignment对话框,Signal Model下面显示“CAP-C0402_C0402_..."说明该模型已创建。
同理C2的电容也是同样的方法创建,点击OK。
然后点击Setup->Constraints->Constraint Manager,进入约束管理器
查看Electrical->Net->Differential Pair,可以看到多出了这两项XNet U3_TXN, XNet U3_TXP,
这样布线就会遵循自己设定差分对的规则了。
5.4 差分对布线设置参数
点击Route->Connect,
任意点击一个差分线的Pin脚
查看右侧Options,将Bubble下拉选择Hug only,Smooth下拉选择Full
右键点击空白位置将Enhanced Pad Entry的√取消掉。
点击Setup->User Prefenrences
弹出对话框User Preferences Editor,选择Route->Connect,将下列选项勾上
acon_disable_nullnet_route √
acon_route_on_active_subclass √
allegro_dynam_timing 下拉选择on
allegro_dynam_timing_fixedpos √
Ignore Dynamic Shapes in Etch Edit √
点击OK。
这样右下角就可以显示布差分线的时候的时序相位对不对。
布完线之后需要对线进行调整使用的是下面第二个命令,点击它
在右侧Options->Bubble,下拉选择Hug only。
对Clip dangling clines取消打√
Smooth选择Full
5.5 调整颜色
点击Display->Color/Visibility
左侧一栏点击Net,保留选项如下图;
即将电源和地的网络的线段,形状和飞线都不显示颜色,这样容易区分。
好了,到此就可以按照参数尽情地布线。当然这些参数是针对一些相对简单的项目而设置的,如果有需求要用高速布线,那么还有很多参数需要设置,这里就不赘述了。