Designing With Xilinx Fpgas Pdf

0 views
Skip to first unread message

Mariela Coxon

unread,
Aug 3, 2024, 6:09:08 PM8/3/24
to guaganricheck

Design iterations are common as developers add new features and debug their designs. In many cases these iterations are incremental changes are within a small portion of the design. The Vivado Design Suite offers two key technologies that significantly reduce design iteration times: Incremental compile and Abstract Shell.

While designing Adaptive SoCs and FPGA, early and accurate power estimation is critical to driving crucial design decisions. Power Design Manager is a next generation power estimation tool engineered to provide accurate power estimation early in the design process for large and complex devices such as Versal and UltraScale+ families. This tool was specifically designed to provide accurate power estimations for devices with multiple complex hard IP blocks.

Vivado supports design entry in traditional HDL like VHDL and Verilog. It also supports a graphical user interface-based tool called the IP Integrator (IPI) that allows for a Plug-and-Play IP Integration Design Environment.

Verification and hardware debug is critical to ensure the functionality, performance, and reliability of the final FPGA implementation. The Vivado tool's verification features enable efficient validation of design functionality. Its comprehensive debugging features empower engineers to efficiently locate and resolve issues within complex designs.

Dynamic Function eXchange (DFX) allows designers to dynamically modify sections of their designs on-the-fly. Designers can download partial bitstreams to their AMD devices while the remaining logic continues to operate. This opens a world of possibilities for real time design changes and performance enhancements. Dynamic Function eXchange allows designers to move to fewer or smaller devices, reduce power, and upgrade systems in real-time.


"Intelligent Design Runs is a game-changer by offering a push-button method for aggressively improving timing results. IDR generates QoR suggestions that bring maximum impact, resulting in expert quality results and a reduction in user analysis, especially for tough to close designs."

Estimation of a block of logic can be done in a couple ways. One method is to actually pen out the logic on paper and look at what registers you are planning on creating. Then you need to look at the part you working with. In this case the Spartan 7 has CLB config as below:

This is from the Xilinx UG474 7 Series document, pg 17. So now you can see the quantity of flops and memory per CLB. Once you look at the registers in the code and count up the memory in the design, you can figure out the number of CLB's. You can share memory and flops in a single CLB generally without issue, however, if you have multiple memories, quantization takes over. Two seperate memories can't occupy the same CLB generally. Also, there are other quantization effects. Memories some in perfect binary sizes, and if you build a 33 bit wide memory x 128K locations, you will really absorbes 64x128K bits of memory, where 31 bits x 128K are unused and untouchable for other uses.

The second method of estimating size is more experienced based as is practiced by larger FPGA teams where previous designs are looked at, and engineers will make basic comparisons of logic to identify previous blocks that are similar to what you are designing next. You might argue that I2C interface isn'a 100% like a SPI interface, but they are similar enough that you could say, 125% of I2C would be a good estiamte of a SPI with some margin for error. You then just throw that number into a spread sheet along with estimates for the 100 other modules that are in design and you call that the rough estimate.

If the estimate needs a second pass to make it more accurate, then you should throw a little code together and validate that it is functional enough to NOT be optimizing flops, gates and memory away and then use that to sure up the estimate. This is tougher because optimization (Read as dropping of unused flops) can happen all too easily, so you need to be certain that flops and gates are twiddle-able enough to not let them be interpreted as unused or always 1 or always 0.

To figure out the number of CLB's you can use the CLB slice configuration table above. Take the number of flops and divide by 16 (For the 7 Series devices) and this will give you the flop based CLB number. Take the memory bits, and divide each memory by 256 (again for 7 series devices) and you will get the total CLB's based on memory. At that point just take the larger of the CLB counts and that will be your CLB estimate.

Field-programmable gate arrays (FPGAs) are used in a wide variety of applications and end markets, including digital signal processing, medical imaging, and high-performance computing. This application note outlines the issues related to powering FPGAs. It also discusses Analog Devices' solutions for powering Xilinx FPGAs.

Field-programmable gate arrays (FPGAs) are used in a wide variety of applications and end markets, and they have been gaining market share over ASICs due to their excellent design flexibility and low engineering costs. Power-supply design and management for FPGAs is an important part of the overall application. This article discusses ways to overcome some of the power-supply design challenges and explains the trade-offs between cost, size, and efficiency. Analog Devices' solutions for Xilinx FPGAs are also presented.

FPGAs are programmable devices consisting of an array of configurable logic blocks (CLBs) connected through programmable interconnects. These CLBs typically comprise various digital logic components, such as lookup tables, flip-flops, multiplexers, etc. Other components of an FPGA include input/output pin driver circuits (I/Os), memory, and digital-clock management (DCM) circuits. Modern FPGAs integrate features that include FIFO and error correction code (ECC) logic, DSP blocks, PCI Express controllers, Ethernet MAC blocks, and high-speed gigabit transceivers Figure 1.

Most high-performance/high-power FPGA applications in communications applications are built on plug-in cards that are powered by a 48V backplane. A two-stage intermediate bus architecture (IBA) is typically used in these applications for the individual cards (Figure 2). The first stage is a step-down converter that converts the 48V to an intermediate voltage, such as 12V or 5V. The plug-in-cards are often isolated from each other for safety reasons, and to eliminate the possibility of current loops and interference between the cards. The second stage of the IBA is to convert the intermediate voltage to multiple lower DC voltages, using nonisolated regulators known as "point-of-load" (POL) regulators. FPGAs used in computing, industrial, and automotive applications typically derive their power from a 12V to 24V nonisolated supply.

POLs are high-performance regulators whose VOUT rails are placed close to their respective loads. This helps solve the difficulties of high-transient-current demands and the low-noise requirements of high-performance semiconductor devices like FPGAs. The application-level parameters to be considered when designing a POL are:

The priority assigned to each of the above parameters often depends on the end market. Thus, each solution should be considered independently. For example, industrial and medical markets tend to favor size over cost, while wireless applications generally favor cost over size. Consumer applications are very conscious of all three parameters. Efficiency is particularly important to applications that run on batteries. The required efficiency usually determines what kind of DC-DC regulator is used, either low-dropout linear regulators or switch-mode power supplies.

LDOs are relatively simple to implement, inexpensive, and produce very little noise. The major drawback with LDOs is their poor efficiency, which depends on the ratio of VOUT to VIN. For example, an LDO with VIN = 3.3V and VOUT = 1.2V has only 36% efficiency. The power difference is dissipated as heat.

LDOs are typically considered for applications with relatively low power requirements. SMPSs are used in higher-power applications due to their better efficiency, an important parameter for thermal management and reliability. Higher efficiency results in lower device temperatures, which improves reliability and reduces the overall solution size through smaller heatsink requirements.

A good example of a high-performance FPGA is the Xilinx Virtex-7 FPGA. Table 1 shows the main voltage-supply requirements for this part. There are also other less-demanding voltage rails such as VCCBRAM, VBATT and VREF that require lower current levels. In many applications, a single power supply can be used, along with passive filters to supply two or more of the power rails that use a common voltage. In these cases, the power supply may be required to supply 20A or more.

FPGA manufacturers such as Xilinx have power estimation spreadsheets for estimating the power requirements of an FPGA device, based on the required functionality of the FPGA (www.xilinx.com/power). Designers should use these spreadsheets at the early design stage of a project to assist in selecting appropriate power-supply and thermal-management components. Through the use of the power estimators, designers can determine the voltage supply rails needed and their currents to select the most suitable regulators. Table 2 shows a sample power budget for a Virtex-7 FPGA. These power calculations are used to determine the system efficiency and the required thermal-management solution.

In addition to using the power estimation tools to estimate the FPGA supply rail voltages and currents, there are several other aspects to choosing a power regulator. The following are some topics to consider.

c80f0f1006
Reply all
Reply to author
Forward
0 new messages