Fpga partitioning software




















Using high performance FPGA-based prototypes, developers can achieve speeds that are orders of magnitude faster than other types of verification, such as simulation or emulation. This performance can scale with the complexity of design thanks to the flexibility of prototyping solutions that allow design partitioning across multiple FPGAs to be utilized in order to handle the design size and deliver enhanced verification throughput.

While full-chip verification is the primary objective, physical prototyping supports other use cases, including proof-of-concept research, test pattern generation for DUTs, IP development and even end-user evaluation — all before final working silicon is available. Because of the size of current generation SoCs, developers often utilize multiple FPGAs in their prototyping methodology to increase throughput and to break the design down into manageable pieces.

Such an approach requires automated partitioning tools to help guide the process step-by-step, from importing RTL to the export to the synthesis tool. As we have seen in our last two posts, prototyping holds much potential to reduce verification time, improve engineering productivity and help meeting demanding product development schedules The entire SoC design and verification flow works best as an integrated flow and that applies within the prototyping environments as well.

Bus structure indicates a possible partitioning boundary while the inter-module connectivity indicates the pin count requirements. Knowledge of module level gate count gives an idea on modules that can be combined and helps in deciding type and number of FPGAs required. The critical issues and solutions of partitioning and timing closure are tightly coupled.

The discussed solutions need to be applied with state-of-art flows and EDA tools. Usually all the SoC modules are not concurrently required to be prototyped. Hence different SoC subsets can be formed. Depending on application test scenarios A, B, C and D different modules can be grouped together, which demands concurrent verification. The modules required for each test scenario are shaded in Figure 2. Figure 2 Concurrency Matrix. The worst-case gate count of these subsets will determine the number of FPGAs required.

Lower number of FPGAs also reduces interconnect complexity. Solution: A subset partitioning can start with the knowledge of module level area utilization, IO and clock requirements. It is not always possible to do TDM of pins, as it brings down system speed. Before attempting TDM technique, apply logical solutions like:. To elaborate this, refer to Figure 3 showing register block kept in a single FPGA and Figure 4 showing the sliced register block and its effect on interconnections.

Figure 3 Common Register Block. The SoC register block Register Array is attached to processor through the processor bus. Large IO requirement issue is resolved by slicing the register block. The sliced register blocks should be placed with its related modules Figure 4. Your question has been submitted.

Please allow business days for someone to respond to your question. Internal error occurred. Your question was not submitted.

Please contact us using Feedback form. The second generation also focused more on system validation of system on chip SoC designs, including long test runs with real software workloads. An ecosystem of off-the-shelf accessory cards arose to connect the protypes to other systems, often via standard interfaces such as Ethernet. As low power design became increasingly important, the prototypes added support for power validation in the context of full system workloads.

Perhaps the most important evolution was support for enterprise prototyping farms with multiple designs and multiple users active at the same time. Generation 3 of FPGA prototyping is now underway, driven by the tremendous demands of designs for graphics processing units GPUs , artificial intelligence AI , machine learning ML , servers, storage, networking, and 5G.

Capacity has increased dramatically in this generation, with support for a billion gates or more. The FPGA partitioning software has had to scale to meet this level of demand. The requirements on debug support are also much higher, including:.

As shown in figure 2, both desktop and rack configurations are required. The desktop is ideal for bench setups, especially when using accessory cards to interface to real-world systems and when reconfiguring the hardware frequently.

The server rack configuration provides scalability and makes it possible to co-locate FPGA prototypes with compute farms for easy access across multiple teams and multiple geographies. A centralized enterprise prototype farm enables higher utilization and lowers the total prototyping cost. An enterprise deployment management system must be available to keep all users synchronized on the latest version of the design and manage the prototypes for efficient utilization. Source: Synopsys.

It satisfies all the requirements listed above and includes some unique features. It uses a unified incremental compiler that spans formal verification, simulation, emulation and prototyping. Management of prototyping resources can be done interactively or with a Python application programming interface API.

For each of its three generations, this approach to system verification and validation has become more powerful and easier to use.



0コメント

  • 1000 / 1000