Get email delivery of the Cadence blog featured here
So, you did the six things to do before you actually place components on a PCB and then placed the components too. Today, we will talk about constraints.
Whether it's NASA's space missions or school camping trips; building a cutting-edge, reusable rocket system or baking a simple lemon tart - planning is a must to avoid disasters, or at least to get a predictable output. So is the case with PCBs. You want to plan ahead to avoid design mistakes that can cost you money and time. And that's where constraints come handy.
A constraint is a rule that describes and restricts a net, and can be of different types, say an electrical constraint or a spacing constraint. So, an electrical constraint is a rule that characterizes and constrains the electrical characteristics of a net. For example, you might want to define the minimum or maximum delay of a signal from one pin to another by applying the Min/Max Propagation Delays constraint. Overall, managing constraints is not so simple a task; on the contrary, it's a daunting and complex task. Remember, you are actually specifying the design intent and requirements to ensure the design is accurate with no errors. It's not only about defining the constraints accurately, but it's also about sharing the constraints across various teams - allowing the constraints to be defined as early as possible and then flowing the constraints across different design phases.
PCB Editor and its design environment ensure that you have a consistent and easy to use constraint management system accessible across different design phases. At the heart of this system is Constraint Manager with its spreadsheet interface that allows you to capture, manage, and reuse constraints. The best part is you use Constraint Manager from schematic editors as well as the layout/physical editors, so consistency is managed throughout.
The Constraint Manager interface is organized in a way that closely reflects the actual arrangement of constraints – you have top-level domains (Electrical, Physical, Spacing, and so on) divided into folders, which are further divided into workbooks containing worksheets. For example, the Electrical domain contains two folders, Electrical Constraint Set and Net. Electrical Constraint Set contains four workbooks, namely, Signal Integrity, Timing, Routing, and All Constraints. The Signal Integrity workbook contains two worksheets, Reflection/Edge Distortions and Xtalk/SSN.
The worksheet allows you to actually specify a constraint, for example here is the worksheet for Min/Max Propagation Delays.
A design will usually have a number of classes with their own busses, nets, pin pairs and so on. Defining and applying 'individual' constraints to each 'individual' object (say, pin pairs), will be extremely tedious. So, in Constraint Manager, you organize your constraints into Electrical Constraint Sets (ECSet). ECSet is a collection of constraints and their default values reflecting a design requirement. You can capture all electrical constraints, including topology-related information, in an ECSet.
The ECSets you have in a design or system can be referenced by any number of objects within the same design or system. The objects need not be related. For example, an ECSet can be referenced by a bus or a differential pair or an XNet. However, you can assign only one ECSet to an object.
So ECSets relieves you of the tedious task of assigning 'individual' constraints one at a time. How about the other issue of assigning ECSets to each object in your design? This is simplified by the inheritance and override features provided through object hierarchies. When you specify a constraint to an object at the top of a hierarchy, the constraint is inherited by all objects down the hierarchy. You can then override an inherited constraint at the lower-level.
For example, you can use the powerful NetGroups concept to take full advantage of the inheritance and override features. Net Groups are a high-level abstraction of nets, buses, and so on. Constraint Manager fully supports these Net Groups from a constraint perspective. Create and apply constraints at the top-level Net Group object to propagate down through all levels of the Net Group. Adjust individual objects inside the Net Group, if needed.
Constraints and their management is a huge topic in itself and needs getting used to. The best way to understand the system is by trying it out. I will recommend the Electrical Constraints Rapid Action Kit (RAK) for you to run through the steps and procedures and better understand the system. This RAK takes you through different tasks related to constraint management using sample databases.