<p>Also, package-level routing and voltage-domain plane cutting need to be design rule check (DRC) clean and must abide by packaging rules–an important consideration for establishing valid chip-to-package net assignments and proper power plane bump/ball assignments. </p>

Compared to motion estimation, motion compensation is much less computationally demanding. While motion estimation must perform SAD or SSD computation on a number of 16-pixel by 16-pixel regions in an attempt to find the best match for each macro block, motion compensation simply copies or interpolates one such region for each macro block. Still, motion compensation can consume as much as 40% of the processor cycles in a video decoder, though this number varies greatly depending on the content of a video sequence, the video compression standard, and the decoder implementation. For example, the motion compensation workload can comprise as little as 5% of the processor cycles spent in the decoder for a frame that makes little use of interpolation.

In fact, this ability to experiment, and to iterate on an algorithm at a high level, is what makes C-to-hardware so compelling. While it may be true that an experienced HDL programmer can, given unlimited time, produce results superior to those achieved by today's C-to-FPGA compilers, it is also true that most projects have a finite development window. C-to-FPGA tools such as Impulse C provide a significant productivity boost, and provide new, more efficient ways of creating FPGA-based algorithms.

The complete, iterative C-to-hardware compilation process can be summarized as follows:

texas instruments ne555p

FPGAs for random number generation Random number generation is a critical part of many high-performance computing applications, including statistical modeling and certain types of financial analysis algorithms. Researchers using random number generators require good quality, evenly distributed numbers, and may require that random numbers be generated at a very high rate. For developers of hardware-accelerated simulation algorithms, such as in the domain of financial computing, arbitrage, and weather modeling, a fast and efficient hardware random number generate is a critical component of the system.

The Mersenne Twister is a pseudorandom number generator described in 1998 by Makoto Matsumoto and Takuji Nishimura of Keio University in Yokohama, Japan. The algorithm is on a matrix linear recurrence over a finite binary field, and provides fast generation of very high quality pseudorandom numbers, with a very large period.

At Pico Computing in Seattle, a Mersenne Twister random number generator has been implemented using a Xilinx Virtex-5 LX50 device. This random number generator, described using Impulse C, uses ten parallel C-language processes that act as independent Mersenne Twister generators. The C code representing one of the ten parallel processes is shown in Fig 11 (Mersenne Twister random number generator (inner code loop) described using Impulse C ).

texas instruments ne555p

In the source code shown, the co_stream data types and related co_stream_open , co_stream_read , co_stream_write , and co_stream_close functions are provided as part of the Impulse C library, and are used to represent streaming data. These ten streaming processes feed a collector process, also written in C, that manages the movement of the random numbers to a host computer, as shown in Fig 12 .

texas instruments ne555p

To allow for fast prototypying and performance analysis, the Pico Computing E-16 card shown in Fig 13 was used to implement and test the random number generator application. The E-16 card is a very small form-factor card (smaller, in fact, than a credit card) that can be clustered to create a low-power, yet high-performance computing platform. For this test, a single E-16 was plugged into the CardExpress slot of a standard Windows-based notebook computer. Two tests were run to evaluate the performance of the generated hardware. In the first test, the performance of the FPGA-based accelerated random number generator was compared to the performance of an equivalent C-language algorithm running on the PC as a software application. This test showed that the random number generator performance, while impressive in terms of numbers generated per estimated watt of power, was limited by the throughput limitations of the single-lane PCIe interface being used to transfer data from the FPGA to the host PC.

This market dynamic is driving single-channel video cards to be replaced by multi-channel designs. Dual, quad, octal and even higher video channel count solutions are hitting the market. The deployment of several channels of video capture on a single board helps to increase the density of the video processing, lowering cost and reducing the space required for surveillance systems. This in turn increases the bandwidth required of the data stream and can result in a reduction in resolution when there is insufficient bandwidth on the I/O channel. PCIe brings the potential for significantly wider I/O bandwidth — up to 32 times that of PCI. This, along with the move toward standardization of PCIe on lower-cost PC platforms, is driving the replacement of PCI and other I/O standards with PCIe.

This article explains how to increase the video capture system channel density through PCI and PCIe bridges and switches. Several examples of increasing channel count are used to illustrate:

1 – Using a synchronous PCIe-to-PCI (P2P) bridge to migrate a design from one channel to four

2 – Migrating a four-channel design into eight channels using a P2P bridge with enhanced bus arbitration

3 – Migrating a PCI-based design into PCIe by replacing a PCI-to-PCI bridge with a P2P bridge in forward mode


To send a message using the MSGQ module, it must first be allocated. An example of a simple allocator is the static allocation called STATICPOOL. STATICPOOL manages a static buffer supplied by the application. At initialization, STATICPOOL manages the memory address, the buffer length, and the requested message size. The buffer is then divided up into sections the size of the messages, and placed in a link list. This makes it easier to locate messages.

Copyright © 苏ICP备11090050号-1 tl431 datasheet All Rights Reserved. 版权投诉及建议邮箱:291310024@725.com