feature article
Subscribe Now

Avoid FPGA Project Delays by Adopting Advanced Design Methodologies

Introduction

Over two-fifths of FPGA design projects fall behind schedule. In order to reduce risk of delay of product delivery, changes need to be made not just in verification and production but also in the design process. Design simplification must be a principle that starts at the beginning of the project life cycle – before verification of complex code has become the bottleneck that delays project delivery.

For FPGA design, there are several methodologies that can be adopted to make life easier for both design and verification engineers. Two of these will be examined here: SystemVerilog for design and behavioral modeling.

No Time for Change

Most design teams claim that there’s no time to change design methodologies due to project schedules—it’s just one tape-out after another. Perhaps a high-level view of the problem can serve as motivation to take pause and reconsider where time is really being wasted.

As mentioned, studies show that two-fifths of designs fall behind schedule. One-fifth of the delays are caused by design-and-verification issues. Another two-thirds of these delays are caused by System Integration and Test-and-Verification issues. The same customer surveys show that today’s engineers spend a third of their time on verification and this is expected to grow to roughly 40% in the next two years.

Perhaps the right question to ask is to what degree do the number of bugs found and the number of bugs not found (perhaps of more interest) depend on the amount of RTL code and its complexity. In the past we were able to perform detailed design reviews (DR) of each sub-block of a design within one to two hours and a DR of the entire design within a few days. For today’s designs, this process is nearly impossible to perform in the same time-frame. More than 60% of designers today expect the total number of lines in their RTL code to increase  by 20% in their next project. Even taking into account design reuse methodologies, more potential bugs per design are expected due to greater size and complexity.

20080527_mentor_fig1.gif

Figure 1: Bugs History Histogram

In addition, larger designs cause longer simulation times, and in turn lengthen the lifetime of product development as shown in the bug histogram. As designs grow in size, they have more bugs and it takes longer to identify them, fix them, and verify the fixes. More time must to be spent on verification, increasing the chance of project delay.

So how to address this problem? In conjunction with improving the verification process, design engineers can reduce the number of bugs in their designs by adopting several methodologies—two of them explained here.

SystemVerilog for Reducing Complexity

A wise man once said “make things simple”. So how is it possible to simplify RTL code while the complexity of the design itself is increasing? The answer is to use higher level language structures. Studies have shown that using SystemVerilog for design entry may reduce the size of the design by a factor of two to five.

Much has been written about SystemVerilog and yet it still has not experienced broad adoption by design teams. Among the reasons for its slow adoption includes the effort of changing design methodology, training design engineers, and, of course, finding adequate tool support. This kind of effort requires justification.

One design team leader of a well known semiconductor company stated that his engineers have not adopted SystemVerilog for two primary reasons. First and foremost, they simply have no time. They release a new chip every few months and can not allocate time between projects to research the new language extensions. Secondly, they claim that the available tool support is inadequate.

This latter claim is no longer the case—today’s market leading design tools have comprehensive SystemVerilog support that allow for seamless usage of the language.

20080527_mentor_fig2.gif

Figure 2 : Next Project Choice

There are many useful design constructs in SystemVerilog (SV), but only a sub-set will be examined here. The following is an example of parameterized interfaces, where I/O ports are bundled and reused among different modules, reducing the risk of error during top level integration.

In this example, a behavioral model of Single Port RAM is instantiated under the top level module.  The use of parameterized interfaces prevents the common mistakes of port mismatch and wrong interface interconnections.

20080527_mentor_fig.gif

As seen from the above example, once the interface named address_bus is defined,  it may be reused in different modules in the following way:

module memory (address_bus.address_port_in addr)

where the hierarchical port declaration address_bus.address_port_in is used for the addr port. Using such unified and parameterized declarations can help solve port width mismatch problems in designs.

Another useful construct is the implicit port connection. The memory module is instantiated using these type of connections:

memory #(.p1(p1), .p2(p2)) mem_i (.*);

The (.*) notation automatically connects instance ports to the top level signals with the same names and data types. This technique can significantly reduce integration problems, particularly when naming rules are used as part of an in-company convention.

Behavioral Modeling of FPGA cores

Note that in the above example, the memory is inferable by synthesis and may be implemented using dedicated FPGA memory resources depending on the selected FPGA vendor and device family, as shown in Figure 3 . This brings us to the next design methodology that can reduce project delay—the use of behavioral models.

20080527_mentor_fig3.gif

Figure 3 : Design Implementation

Much has been written about behavioral design and its advantages versus instantiation of FPGA vendor’s IP cores. While there are the advantages of portability and vendor independence, other advantages include faster simulation times, code-re-use, and flexibility for hardware implementation. All of these make the design and verification flow more efficient.

Most FPGA vendor’s IP cores are instantiated as black or gray boxes. These are either linked by synthesis or place-and-route (P&R) tools to generated gate-level netlists, or they are predefined functional blocks. As a result, simulation times drastically increase even at the RTL level versus the same design that uses behavioral models. In fact, the simulation time of a design using behavioral models may be two to twenty times faster than the same design using instantiated IP cores.

Behavioral models also allow for scalability. The memory block shown above may be used many times using different parameters to implement memories throughout the design. A single parameterized module can be enough to describe several configurations, such as a single-port or dual port memory, using either write-first, read-first, or no-change write-modes. These configurations cover the majority of requirements of mainstream FPGA design. This methodology would require four files versus tens or hundreds of files when using vendor IP blocks.

Behavioral models also leverage the flexibility of the synthesis tool to implement the logic using different FPGA resources. Designers may control resource allocation of memory blocks and arithmetical functions during synthesis using either synthesis attributes or via a graphical resource management interface. Controlling resource allocation without changing code or regenerating many IP blocks may considerably shorten the design process.

Conclusion

There are other methodologies for improving the FPGA design and the verification process, but using SystemVerilog language structures along with behavioral design are two simple ways to ease the effort by changing the design process from the start. While there is a time commitment in adopting these methods, it is relatively minor and the time savings gained from them will pay-off many times over in terms of easier debug, shorter simulation times, code re-usability, and flexibility in hardware implementation. Project delivery can finally be predictable by efficiently generating reliable, bug free code for complex designs.

Leave a Reply

featured blogs
Apr 24, 2024
Learn about maskless electron beam lithography and see how Multibeam's industry-first e-beam semiconductor lithography system leverages Synopsys software.The post Synopsys and Multibeam Accelerate Innovation with First Production-Ready E-Beam Lithography System appeared fir...
Apr 24, 2024
Diversity, equity, and inclusion (DEI) are not just words but values that are exemplified through our culture at Cadence. In the DEI@Cadence blog series, you'll find a community where employees share their perspectives and experiences. By providing a glimpse of their personal...
Apr 18, 2024
Are you ready for a revolution in robotic technology (as opposed to a robotic revolution, of course)?...

featured video

MaxLinear Integrates Analog & Digital Design in One Chip with Cadence 3D Solvers

Sponsored by Cadence Design Systems

MaxLinear has the unique capability of integrating analog and digital design on the same chip. Because of this, the team developed some interesting technology in the communication space. In the optical infrastructure domain, they created the first fully integrated 5nm CMOS PAM4 DSP. All their products solve critical communication and high-frequency analysis challenges.

Learn more about how MaxLinear is using Cadence’s Clarity 3D Solver and EMX Planar 3D Solver in their design process.

featured paper

Designing Robust 5G Power Amplifiers for the Real World

Sponsored by Keysight

Simulating 5G power amplifier (PA) designs at the component and system levels with authentic modulation and high-fidelity behavioral models increases predictability, lowers risk, and shrinks schedules. Simulation software enables multi-technology layout and multi-domain analysis, evaluating the impacts of 5G PA design choices while delivering accurate results in a single virtual workspace. This application note delves into how authentic modulation enhances predictability and performance in 5G millimeter-wave systems.

Download now to revolutionize your design process.

featured chalk talk

FlyOver® Technology: Twinax FlyOver® System for Next Gen Speeds -- Samtec and Mouser
Sponsored by Mouser Electronics and Samtec
In this episode of Chalk Talk, Amelia Dalton and Matthew Burns from Samtec investigate the challenges of routing high speed data over lossy PCBs. They also discuss the benefits that Samtec’s Flyover® cable assembly systems bring to data center and embedded designs and how Samtec is furthering innovation with their high speed interconnect solutions. 
Apr 15, 2024
1,289 views