How to Properly Verify Encrypted IP

Using Block Level Constraints for Description of Non-Synthesizable Design Units

Pavel Leshtaiev, Product Manager Software Division
Like(0)  Comments  (0)

FPGA vendors typically provide a set of various IPs which cannot be directly used for synthesis. Although these components are fully tested by the vendor, verifying the design that uses them can become a tricky task within some linting tools. The main obstacle being that the simulation models provided by the vendor, which again cannot be used for synthesis, leaving empty cells in the analyzed netlist.


Time-saving Block Level Design Constraints to the rescue

ALINT-PRO-CDC™ for Clock Domain Crossing Verification offers improved productivity and speed with comprehensive design constraints support, essential for proper clock domain verification. ALINT-PRO-CDC can read SDC files for design configuration and fills in the empty cells left in the analyzed netlist with the specialized model described with the Block Level Design Constraints, an extension to the SDC commands available in the solution.


These constraints describe the cell interface, thus enabling accurate linting of the rest of the design while ignoring the internal structure of the IP. This approach not only improves the accuracy of linting results, but also speeds up analysis by replacing IPs with robust models optimized for linting.


The Block Level Design Constraints extension in ALINT-PRO-CDC covers these design unit types:

  • Encrypted IP modules
  • Non-synthesizable and behavioral descriptions
  • Black boxes
  • Custom synchronization cells


How to use Block Level Design Constraints Extension in ALINT-PRO-CDC


In order to use Block Level Constraints in ALINT-PRO-CDC, they must first be specified in the *.adc or *.sdc files and added to the project. Design constraints eventually influence the netlist, which is generated after the “Constrain” phase. However, unlike chip level design constraints, block level constraints are applied on the Parse phase and are saved in the library (see Figure 1). This allows specifying block level constraints in each project individually and then gathering them together on the “Constrain” phase.


Figure 1 - Design entry process in ALINT-PRO-CDC™


Block level constraints cover the following aspects of the cells:

  • Define cell function: RAM, ROM, flip-flop, latch, etc.
  • Define pin function: asynchronous/synchronous set/reset, enable, data pin, synchronizer input/output
  • Define cell clocks, generated clocks and relations between them
  • Define which pins are controlled by which clock

To fine tune a cell’s description, all constraints allow specifying expressions using generics to control the condition when a particular constraint is applied to the cell. It is even possible to specify design constraints which depend on the constant value, driving the input port of the cell.


The constraints mechanism is powerful enough to describe complicated cells, such as, PLLs, DCMs and all sorts of computational elements from FPGA vendor libraries.


For additional information about block level design constraints, please refer to the following:

Application Note: Using Block Level Constraints for Description of Non-Synthesizable Design Units in ALINT-PRO-CDC


About Aldec ALINT-PRO-CDC™

ALINT-PRO-CDC is a design verification solution focused on clock domain crossing analysis and handling of metastability issues in complex, modern multi-clock designs. The tool uncovers critical problems during the RTL Design and Functional Verification stages, significantly reducing time to market. ALINT-PRO-CDC is available in 32-bit and 64-bit versions that can run on Windows and Linux OS platforms support x86 and x86_64 CPU architectures.


For a free evaluation download or to learn more, visit or contact Aldec Sales at +1-702-990-4400 or

Pavel is a Product Manager at Aldec for DRC and CDC solutions. He received his MS in Special-Purpose Computer Systems from the Chernihiv State University of Technology, Ukraine. Pavel has been directly with ALINT™ and ALINT-PRO-CDC™ since 2009, with experience in roles such as SQA Engineer, SQA Team Leader, Applications Engineer, Project Manager and Product Manager. He has deep practical experience in design verification techniques and best practices, particularly in the field of FPGA design.


Ask Us a Question

Ask Us a Question

Captcha ImageReload Captcha
Incorrect data entered.
Thank you! Your question has been submitted. Please allow 1-3 business days for someone to respond to your question.
Internal error occurred. Your question was not submitted. Please contact us using Feedback form.