Home
  • Products
  • Solutions
  • Support
  • Company

This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  • Products
  • Solutions
  • Support
  • Company
Community Blogs System, PCB, & Package Design > BoardSurfers: Training Insights: Advanced Design Verification…
ACat299612
ACat299612

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
CDNS - RequestDemo

Try Cadence Software for your next design!

Free Trials
PCB
Allegro X PCB Editor
DRC
ravel
Allegro X Advanced Package Designer
APD
PCB Editor
Allegro Package Designer
PCB design
Constraints
allegro x

BoardSurfers: Training Insights: Advanced Design Verification with RAVEL

5 May 2025 • 5 minute read

boardsurfersRAVEL, which stands for Relational Algebra Verification Expression Language, is designed for implementing system-in-package design rules. It builds on a relational view of the design data and is declarative in nature. RAVEL enables programmers to create new rules for the Allegro X PCB Editor and Allegro X Advanced Package Designer (APD) databases.

The updated online course for the RAVEL programming language introduces the basics of RAVEL language and its ability to interact with the PCB Editor and APD design databases. This course is structured into easy-to-learn modules that support self-paced learning. This course is best suited for CAD programmers, tool integrators. system administrators, and the users of PCB editor or APD.
This post will guide you through each module of the course, highlighting what you can expect to learn.

Module 1: Components of the RAVEL Verification System

The first module provides an overview of the RAVEL verification system and the design rule checking (DRC) flow. It includes different ways for running RAVEL rules and reviewing DRCs using the DRC Browser, as illustrated in the following image:

Components of the RAVEL Verification System

Module 2: Fundamentals of RAVEL

The second module of this course introduces RAVEL objects and their types. It discusses various built-in relations and how they correspond to objects in the PCB Editor and APD databases. Additionally, it covers how RAVEL combines objects to create tuples and relations, and it identifies how these relations correspond to objects in both PCB Editor and APD databases. The following snippet of RAVEL code displays both integrated circuit (IC) components and discrete components:

RAVEL code snippet

 DRC browser for RAVEL DRCs

Module 3: Relational Operators in RAVEL

A RAVEL program is constructed by combining relational operators to form relational expressions. This module explains that almost all relational operators accept relations as input and return relations as output. The operators that return relations can also have nested expressions.

Modules 4 and 5: Derivations and Measurements in RAVEL

These modules focus on working with derivations and measurements in RAVEL. A derivation is a function that operates on one or more objects and returns a new object. Derivations can be used in transformations or in combination with predicates in selections to derive objects from existing objects.

A derivation expression is an expression that evaluates a derived object. It operates on single objects that are assigned names within the transformation operation. This is similar to a predicate expression, except that it results in an object instead of a truth value. A simple derivation expression consists of an invocation of a derivation.

Measurements, on the other hand, are functions that can be used in transformations or alongside predicates in selections to measure properties of objects. A measurement always returns a numerical value. For example, the length measurement calculates and returns the length of an object, such as a vector.

Module 6: Predicates in RAVEL

A predicate expression is an expression that is evaluated to determine if a condition is true or false. It operates on single objects bound to names in the selection operation. For example, in the predicate expression (smd? c), the predicate smd? is invoked on the component bound to c. This expression returns true if the component is a Surface Mount Device (SMD). To distinguish them from other functions, predicate names always end in a question mark.

Modules 7 and 8: Constraints and Violations Settings in RAVEL

These modules explain how to define constraints and parameters for checking RAVEL rule measurements. The violation and rule relational operators are also used to report DRC errors based on the specified RAVEL rules.

 Constraints and Violations Settings in RAVEL

Module 9: RAVEL Rules Debugging

This module covers several methods for debugging RAVEL rules. There are various techniques available to debug RAVEL rules. A tracing functionality enables users to trace the source code of a rule, while a profiler provides information about the size, type, and order of relations through a query. In addition to that, a report operator can be used to print information to the layout editor’s command line, and a drawing operation can help visualize the data in relations.

 To learn about this course in detail, enroll in the Advanced Design Verification with the RAVEL Programming Language Training course on the Cadence ASK portal.

video_iconClick the How to Run a RAVEL Rule from the Constraint Manager link or visit Cadence ASK and search for this training byte under Video Library.

If you find the post useful and want to delve deeper into training details, enroll in the following online training course for lab instructions and a downloadable design: Advanced Design Verification with the RAVEL Programming Language v23.1QIR1 (Online).

You can become Cadence Certified once you complete the course.  digital badge

Cadence Training Services now offers free Digital Badges for all popular online training courses. These badges indicate proficiency in a certain technology or skill and give you a way to validate your expertise to managers and potential employers. You can add the digital badge to your email signature or any social media channels, such as Facebook or LinkedIn, to highlight your expertise.

To find out more, see the blog post Take a Cadence Masterclass and Get a Badge.

You might also be interested in the training Learning Map that guides you through recommended course flows, tool experience, and knowledge-level training modules. For information on getting an account on the Cadence ASK portal, see here.

An accelerated learning option is now available, which will help you learn Cadence technical content in the fastest, most effective way.

Before you begin the accelerated online course, take the pre-quiz to assess your current knowledge. This quiz lets you skip content you are already familiar with and helps you achieve your training goals more efficiently. For further guidance and explanations, refer to Accelerated Learning – The More You Know, the Faster You Go.

SUBSCRIBE to the Cadence training newsletter to be updated about upcoming training webinars, and more. If you have any questions about courses, schedules, online training, blended/virtual, or live training, contact us at Cadence Training.

Related Training Bytes

  • How to Run a RAVEL Rule from the GUI
  • A RAVEL Expand Expression
  • A RAVEL Transform Expression
  • A RAVEL Union Expression

CDNS - RequestDemo

Have a question? Need more information?

Contact Us

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information