Académique Documents
Professionnel Documents
Culture Documents
The FIFO Generator IP core delivers fully optimized FIFO solutions for
any configuration, freeing you to focus on your own design challenges.
by Tom Fischaber RAM, shift registers, and the Virtex™-4 The first page of the FIFO Generator
Staff Design Engineer, IP Solutions Division built-in FIFO. The core also supports GUI is shown in Figure 1, and highlights
Xilinx, Inc. write and read interfaces with either a sin- how you can configure the FIFO with a
tom.fischaber@xilinx.com gle common clock or dual independent single common clock or dual independent
James Ogden clocks. These and other options are easily clocks using various memory types. Figure
Design Engineer, IP Solutions Division customizable through the GUI. In this 1 also includes the key features supported
Xilinx, Inc. article, we’ll highlight the benefits of the in each configuration for the FIFO
james.ogden@xilinx.com FIFO Generator solution and how it can Generator v2.1 release, available for free in
help you quickly develop a FIFO that ISE™ 7.1i software with IP Update 1.
In digital designs, first-in first-out memory exactly meets your needs.
queues (FIFOs) are ubiquitous constructs Virtex-4 Built-In FIFO Support
required for data manipulation and buffer- Common and Independent Clock Domains Included in the Virtex-4 architecture is a
ing – tasks that are often very challenging. The FIFO Generator supports FIFOs both built-in FIFO controller with every on-
Are all clock domain crossings properly with a single common clock and dual chip block RAM (see Peter Alfke’s article,
timed and synchronized? How do I convert independent clocks for write and read “FIFOs Made Easy,” in the First Quarter
my 16-bit data path to 64 bits? These ele- operations. The common clock configura- 2005 issue of the Xcell Journal). By utilizing
ments of a FIFO design are difficult and tion provides small, fast, low-latency this new built-in FIFO, the FIFO
time-consuming to implement, and are FIFOs supporting a variety of status flags, Generator provides easy access to these
often error-prone. The Xilinx® FIFO and is ideally suited for single-clock data- high-performance independent clock
Generator core solves these challenges and buffering applications. FIFOs, saving valuable FPGA fabric
provides an assortment of complex FIFO The independent clock configuration resources while providing substantially
designs through a convenient, configurable provides even greater utility, solving lower power consumption.
graphical user interface (GUI), enabling notoriously difficult and error-prone The FIFO Generator also expands on
you to focus on your system requirements. FIFO designs at the touch of a button. the capabilities of built-in FIFOs by pro-
From application notes and reference The FIFO Generator handles the syn- viding FIFOs of arbitrary width and
designs to IP cores, Xilinx has a long histo- chronization between clock domains, depth, as well as providing additional sta-
ry of developing FIFOs. With the intro- placing no requirements on phase and tus flags. The concatenating of multiple
duction of the FIFO Generator, almost any frequency. Not only does the FIFO embedded FIFOs and additional logic for
imaginable FIFO configuration is provided Generator core solve the complexities of status flags are handled automatically,
as a fully optimized, pre-engineered solu- independent clock designs, but it also enabling very high-performance designs
tion delivered through Xilinx CORE provides a variety of additional capabili- to be supported with only minimal FPGA
Generator™ software. The FIFO ties (including a full suite of status flags), resources. A functional diagram of the
Generator supports a suite of memory enabling you to customize the FIFO built-in FIFO design is illustrated in
types, including block RAM, distributed Generator for your application. Figure 2.
01 11 00
Built-In FIFO • • • • •
Time
11 01 Block RAM • • • • •
11
Shift Register • • •
Figure 3 – Non-symmetric aspect ratios Distributed RAM • • •
(4-to-1 ratio)
Table 1 – Memory type support and benefits