1
\$\begingroup\$

What does influence of routing in static/dynamic power consumption in FPGA design?

I want to know that, different routing results different power consumption?

\$\endgroup\$
  • \$\begingroup\$ Have you looked at the power estimation spreadsheet for your device? Does it have any inputs related to routing? If it doesn't, do you think we know more about it than the company that makes the device? \$\endgroup\$ – The Photon Jan 8 '18 at 19:33
  • \$\begingroup\$ I use ISE 14.7 and xilinx FPGA device. \$\endgroup\$ – anna martin Jan 8 '18 at 20:05
  • \$\begingroup\$ @The Photon I don't follow your logic at all. A power estimation spreadsheet doesn't have inputs for routing because it's completely dynamic and too granular for the user to worry about before the design is completed. That doesn't mean Xilinx doesn't know the effects of routing, or that there aren't general assumptions that you can make; your comment is unwarranted. \$\endgroup\$ – jalalipop Jan 9 '18 at 13:38
  • \$\begingroup\$ @jalalipop. You are stepping out of line with a member who has a much higher rep than you. His comment is correct. OP wants details that only the manufacture has, and OP may have to pay for proprietary information. \$\endgroup\$ – Sparky256 Jan 28 '18 at 23:32
  • \$\begingroup\$ @Sparky256 That's incredibly condescending. If you think rep makes anyone immune to criticism then I can only assume you're in management. The comment I replied to is flawed because routing inputs on an estimation spreadsheet are completely impractical, and their absence says nothing about whether this question can be answered in general terms (see below), which is all the OP asks for. Power consumption in digital circuits isn't exactly a mystery. \$\endgroup\$ – jalalipop Jan 29 '18 at 13:04
1
\$\begingroup\$

There will definitely be effects. Longer wires have more capacitance that will need to be charged up on every transition, increasing power consumption. Generally the place and route tools will attempt to make the wires as short as possible in an effort to minimize delay. There could be variations in the static power consumption of routing components as well, though this would be extremely architecture-dependent.

\$\endgroup\$
  • \$\begingroup\$ Thanks alot. Can i find wire length in ISE (plan ahead or FPGA editor,...) ? \$\endgroup\$ – anna martin Jan 9 '18 at 18:07
  • \$\begingroup\$ Not sure if there is a nice way to get that information. Looking at the delays reported in the timing analysis might be a good proxy. You can also look at the physical locations of each end of the wire and get an idea of how long it is with manhattan distance (sum of x and y distance). However, this does not take into consideration the variety of routing options along that path. \$\endgroup\$ – alex.forencich Jan 10 '18 at 5:57
0
\$\begingroup\$

Yes, with each trace on the PCB there will be parasitic resistance and inductance.

The problem is FPGA's have a lot of gates that switch at the same time (even amps of current can be drawn from some FPGA's), this results in the load increasing and the demand for current increasing on very short timescales. This causes a voltage drop at the power pins on the FPGA. If the voltage drop is to great, the gates will not be powered and output 'noise' instead of the correct voltage for a 1 or a 0 which will result in an error in a Boolean calculation.

PCB traces are simply conductors, every conductor has resistance (which causes a voltage drop) and inductance (which prevents current from moving from one place to another immediately). This contributes the voltage at the FPGA to drop.

What can you do about it? There are two ways to combat this problem:

1) Make sure you have sufficient power filter capacitors. Power filter capacitors provide a short term storage next to the FPGA to combat line inductance.

2) Make sure the voltage drop through PCB traces is small enough for the current moving through it. The first thing you will need to do is find a PCB trace calculator that can estimate the resistance of the trace. Then estimate the current needed by the FPGA, most provide a tool or a spreadsheet (like Xilinx) that can estimate the current.

If your FPGA needs at most 1A, and it the pcb trace is 0.100Ω then this would result in a 0.1V drop (V=I*R). This may not be acceptable for a 1.2V or 1.5V design, check the FPGA datasheet for limits on power. If you increased the trace size by 5x then you would only have 0.020Ω and a 0.02V drop.

\$\endgroup\$
0
\$\begingroup\$

An FPGA, at least the Xilinx ones I've used, has a variety of routing resources.

Clock distribution is optimised for high speed clocking, and covers the entire chip. This is used preferentially for clocks by the PAR.

Data has a number of different lengths of line. Some go LUT to LUT for very local connections, fast carry chains for instance. There are so-called 'long lines' that cross the die, which can be broken into small sections to limit dynamic power consumption, or routed right across. There are also several types of intermediate length line. All of these will have different dynamic power consumption.

The PAR will select from the available resources to meet timing constraints. With a sparsely populated die, it might be possible to anticipate what will get used for what. With a dense design, where the PAR struggles, it will be difficult to guess what it's going to use for what.

This means that only the post-layout reports will give you accurate estimates.

There is only so much you can do to control power dissipation from interconnect, once you have done the obvious things of arranging adders in columns, putting logic next to its IO so you don't cross the chip, using the dedicated clock buffers and so on, the obvious stuff. Basically if the PAR is to meet timing constraints, then it has to use what it uses.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.