Thursday, July 3, 2014

Creating Classes in a PCB

In the service bureau business, we usually get good schematics.  However, these schematics are lacking from a PCB point of view in that they do not pass enough Class or Rule information to properly constrain the PCB.  It is also unfortunate, but true that Class creation in an Altium PCB is pretty painful when it is highly detailed.  So rather than trying to fumble through mountains of auto-generated net names or cascading rule sets, use Directives and Blankets in the schematic instead.

Backup of the Schematic
First thing is first when performing this function.  Make sure you have a copy of the schematic so that an accidental save is not an issue.  When pushing 20-30 classes into a board in a half day, how the parameters look is not critical.  I simply want the information in the PCB and then will revert to the customers schematic.  To keep the nice new Classes from being stripped back out by an ECO, refer to this other tip Template PrjPCB Files - ECO Generation Tab.

Directives
A directive is simply a rule or class that will be passed to the PCB through the ECO dialog.  There are quite a few that can be used, but here are the basic three that will be used most often.

Differential Pair
In the schematic, go to Place->Directive and find the Differential Pair directive.  This one is the easiest one to use if the pair has been named properly.  Simply drop a directive on each net of the pair and Altium will automatically send the pair and name it in the PCB.

If there are problems, check the naming convention on the pair.  Altium likes to see identical names with an _P or _N suffix. i.e. CLK_P and CLK_N.  If the pair does not follow this naming convention, then it will probably be easier to manually create the pair in the PCB.

Net Class
Place a Net Class directive anywhere a new class is desired.  These directives will lock onto any net just like the diff pair directive or a net alias will.  Believe it or not, the name on the directive doesn't matter, but it sure makes it easier to keep track of things so it is advisable to change it.  Where the PCB gets the Class name is from the Value as seen here...

























Note: Don't change the Name from "ClassName" or the Class will not go through to the PCB.

PCB Layout
A PCB Layout or PCB Rule directive is just like the Net Class directive, but a design rule gets embedded into it.  Place the directive on a net like before and then edit the Rule parameter.  Once in the Parameter Properties dialog box, click edit rule values and setup a rule as if it were in the PCB like so...















Multiple Rules
It is very possible to add a Rule and a ClassName into the same directive.  Alternatively, it is possible to put multiple directives on the same net assigning multiple classes and/or rules by dropping more directives onto the net.

Blankets
Blankets are the best timesaver possible with directives.  Instead of trying to assign a class and rules to every net in a power supply circuit, wrap a blanket around the circuit and then drop the directives onto the blanket.  An entire schematic page or circuit can be set into a net class in less than a minute!

ECO to the PCB
Once happy with all the directives, import the changes into the PCB from the project using a standard ECO process.  Don't forget to disable the ECO Generation sections so that all the Class/Rule work does not get ripped out later.  And if the directives were just temporary, revert back to the original schematic.  However, a better option may be to show the engineer what directives do an how much they can help the layout designer. :-)

No comments:

Post a Comment