当前位置:首页 >> 信息与通信 >>

sync


0

Synchronous FIFO 5.0
DS256 May 21, 2004
0 0

Product Specification

Introduction
The Synchronous FIFO is a First-In-First-Out memory queue with

control logic that manages the read and write pointers, generates status flags, and provides optional handshake signals for interfacing with the user logic.

? Incorporates Xilinx Smart-IP? technology for utmost parameterization and optimum implementation ? To be used with version 6.2i or later of the Xilinx CORE Generator? System

Functional Description
Figure Top x-ref 1

About This Revision
Version 5.0 is the final release of the Synchronous FIFO core. For new designs, Xilinx suggests you use the FIFO Generator Logicore, which includes expanded support for applications requiring independent (asynchronous) or common (synchronous) read/write clock domains. See FIFO Generator for detailed information.

Features
? Drop-in module for Virtex?, Virtex-E, Virtex-II?, Virtex-II Pro?, Virtex-4?, Spartan?-II, Spartan-IIE, and Spartan-3 FPGAs ? Supports data widths up to 256 bits ? Supports memory depths of up to 65,536 locations ? Memory is implemented in either Distributed RAM or SelectRAM+ ? Supports full and empty status flags ? Invalid read or write requests are rejected without affecting the FIFO state ? Four optional handshake signals (WR_ACK, WR_ERR, RD_ACK, RD_ERR) provide feedback (acknowledgment or rejection) in response to write and read requests in the prior clock cycle ? Optional count vector provides visibility into the number of data words currently in the FIFO ? Uses relationally placed macro (RPM) mapping and placement technology for maximum and predictable performance
Figure 1: Core Schematic Symbol

The Synchronous FIFO has a single clock port for both data-read and data-write operations. Data presented at the module's data-input port (DIN) is written into the next available empty memory location on a rising clock edge when the write-enable input (WR_EN) is High. The memory full status output (FULL) indicates that no more empty locations remain in the module's internal memory. Data can be read out of the FIFO via the module's data-output port (DOUT) in the order in which it was written by asserting read-enable (RD_EN) prior to a rising clock edge. The memory-empty status output (EMPTY) indicates that no more data resides in the module's internal memory.

? 2004 Xilinx, Inc. All rights reserved. All Xilinx trademarks, registered trademarks, patents, and further disclaimers are as listed at http://www.xilinx.com/legal.htm. All other trademarks and registered trademarks are the property of their respective owners. All specifications are subject to change without notice. NOTICE OF DISCLAIMER: Xilinx is providing this design, code, or information "as is." By providing the design, code, or information as one possible implementation of this feature, application, or standard, Xilinx makes no representation that this implementation is free from any claims of infringement. You are responsible for obtaining any rights you may require for your implementation. Xilinx expressly disclaims any warranty whatsoever with respect to the adequacy of the implementation, including but not limited to any warranties or representations that this implementation is free from claims of infringement and any implied warranties of merchantability or fitness for a particular purpose.

DS256 May 21, 2004 Product Specification

www.xilinx.com 1-800-255-7778

1

Synchronous FIFO 5.0

The FIFO status cannot be corrupted by invalid requests. Requesting a read operation while the EMPTY flag is active will not cause any change in the current sate of the FIFO. Similarly, a write operation while the FULL flag is active will not cause any change in the current state of the FIFO. If enabled, the RD_ERR and WR_ERR handshake signals will indicate the rejection of these invalid requests. In addition to the EMPTY and FULL flags, you can enable a count vector (DATA_COUNT) to provide a more granular measure of the FIFO state. The width of this vector is user programmable to provide easy generation of additional flags. For instance, a vector width of one creates a half-full flag; a width of two creates binary-encoded quadrant flags, and so on. The Synchronous FIFO clock (CLK) is rising edge active for the FIFO core. However, it can be made falling edge active (relative to the clock source) by inserting an inverter between the clock source and the FIFO’s clock input.

Behavior of Status Signals
The activation of the synchronous initialization input (SINIT) will reset the internal pointers and initialize the EMPTY output to 1 and FULL output to 0. This effectively empties the FIFO, discarding any data that may have been stored in the module but which had not been read-out. Optional handshaking signals are provided to simplify the user control logic designed to interact with the FIFO. The WR_ACK and WR_ERR signals indicate acknowledgement or rejection of requested write operations (WR_EN active) respectively. Similarly, RD_ACK and RD_ERR signals indicate the acknowledgement or rejection of read operations (RD_EN active). Each of these control signals, shown in Figure 1, can be made Active High or Low from the GUI. Because an acknowledgement or error response depends on an active request (WR_EN or RD_EN), the acknowledge and error signals are not always the inverse of each other. If no operation is requested then both the acknowledge and the error signals will be inactive during the subsequent clock period. For an example of expected signal sequencing, refer to the timing diagram shown in Figure 2.

Pinout Description
Signal names are described in Table 1.
Table 1: Core Signal Pinout

Signal
DIN[N:0] WR_EN RD_EN CLK SINIT FULL DATA_ COUNT[C:0] WR_ACK

Direction
Input Input Input Input Input Output Output Data Input

Description

Write Enable (request) Read Enable (request) Clock for read and write operations (rising edge) Synchronous initialization of all FIFO functions, flags, and pointers Full: No additional writes can be performed Data Count: Vector (unsigned binary) of number of data words currently in FIFO Write Acknowledge: Handshake signal indicates that data was written to the FIFO on the previous CLK edge while WR_EN was active

Output

2

www.xilinx.com 1-800-255-7778

DS256 May 21, 2004 Product Specification

Synchronous FIFO 5.0

Table 1: Core Signal Pinout (Continued)

Signal
WR_ERR DOUT[N:0] EMPTY

Direction
Output Output Output Output

Description
Write Error: Handshake signal indicates that no data word was written to the FIFO on the previous CLK edge while WR_EN was active Data Output: Synchronous to CLK Empty: No additional reads can be performed Read Acknowledge: Handshake signal indicates that data was read from the FIFO and placed on the DOUT output pins on the previous CLK edge while RD_EN was active Read Error: Handshake signal indicates that no data word was read from the FIFO on the previous CLK edge while RD_EN was active and subsequently data on DOUT output pins was not updated

RD_ACK

RD_ERR

Output

CORE Generator Parameters
The main CORE Generator parameterization default values can be found in Table 2, and the parameter descriptions are as follows: ? Component Name: The component name is used as the base name of the output files generated for this module. Names must begin with a letter and must be composed from the following characters: a to z, 0 to 9 and “_”. ? Memory Type: Distributed Memory radio button will implement the FIFO’s memory using LUT-based SRL16 elements. Select the appropriate radio button for the type of memory desired. Block Memory implements the FIFO’s memory using SelectRAM+. ? Data Width: The width of the input data bus (also the width of the output data bus). The valid range is 1-256. ? FIFO Depth: Select the available depth from the pull-down list. Depths are (2N). N can be any integer from 4 to 16, with additional restrictions based on Memory Type and Data Width. ? Data Count: When selected, the corresponding data count width dialog box becomes active. ? Data Count Width: Valid count widths are any integer from 1 to N+1 (where 2N = FIFO Depth). If an integer greater than N+1 is entered, the core generation will be inhibited until it is corrected. For example, for a FIFO Depth of 16, the internal counter will have a width of 5-bits, or INT_COUNT[4:0]. There are two cases to be considered: - Case 1: The selected width of DATA_COUNT is equal to the internal counter (C=5). In this case the output vector generated is equal to the internal counter: DATA_COUNT[4:0] = INT_COUNT[4:0]. - Case 2: The selected width of the DATA_COUNT is less than the internal counter (C<5). In this case, the output vector generated is: DATA_COUNT[(C-1):0] = INT_COUNT[(C-2):(log2(FIFO Depth)-C) · For C=4, DATA_COUNT[3:0]=INT_COUNT[3:0] · For C=3, DATA_COUNT[2:0]=INT_COUNT[3:1] · For C=2, DATA_COUNT[1:0]=INT_COUNT[3:2]

DS256 May 21, 2004 Product Specification

www.xilinx.com 1-800-255-7778

3

Synchronous FIFO 5.0

· For C=1, DATA_COUNT[0]=INT_COUNT[3] The optional handshaking control signals (acknowledge and/or error) can be enabled via the Handshaking Options button. ? Read Acknowledge Flag: Asserted active on the clock cycle after a successful read has occurred. This signal can be made active high or low through the GUI. ? Read Error Flag: Asserted active on the clock cycle after a read from the FIFO was attempted, but not successful. This signal can be made active high or low through the GUI. ? Write Acknowledge Flag: Asserted active on the clock cycle after a successful write has occurred. This signal can be made active high or low through the GUI. ? Write Error Flag: Asserted active on the clock cycle after a write to the FIFO was attempted, but not successful. This signal can be made active high or low through the GUI.

Parameter Values in XCO File
Names of XCO file parameters and their parameter values are identical to the names and values shown in the GUI, except that underscore characters (_) are used instead of spaces. The text in an XCO file is case insensitive. The format for the XCO file should be as follows: CSET <parameters> = <desired_options>

4

www.xilinx.com 1-800-255-7778

DS256 May 21, 2004 Product Specification

Synchronous FIFO 5.0

SINIT CLK

RD_ACK

RD_ERR

DOUT

FULL

Figure 2: Write/Read Waveform for FIFO Depth of 16

For example: CSET component_name = my_fifo_name

DS256 May 21, 2004 Product Specification

www.xilinx.com 1-800-255-7778

DATA_COUNT

DIN

WR_EN

WR_ACK

WR_ERR

RD_EN

EMPTY

5

Synchronous FIFO 5.0

Table 2 shows the XCO file parameters and values, as well as summarizes the GUI defaults.
Table 2: XCO File Values and Default GUI Settings

Parameter
component_name

XCO File Values
ASCII text starting with a letter and based upon the following character set: a..z, 0..9, and _ One of the following keywords: Distributed Memory, Block Memory Integer in the range 1 to 256 Integer in the range 15 to 65536. Must be equal to (2^N; N = 4 to 16) One of the following keywords: true, false One of the following keywords: active_high, active_low One of the following keywords: true, false One of the following keywords: active_high, active_low One of the following keywords: true, false One of the following keywords: active_high, active_low One of the following keywords: true, false One of the following keywords: active_high, active_low One of the following keywords: true, false Integer in the range 1 to N+1, where N is determined by the fifo_depth

Default GUI Setting
blank

memory_type data_width fifo_depth write_acknowledge_flag write_acknowledge_sense write_error_flag write_error_sense read_acknowledge_flag read_acknowledge_sense read_error_flag read_error_sense data_count data_count_width

Distributed Memory 1 16 false active_high false active_high false active_high false active_high false 1

Core Resource Utilization
The resource requirements of the synchronous FIFO are highly dependent on the memory size and the presence of optional ports. For some memory depths extra logic is required to decode the address and multiplex the output from various primitives. Table 3 shows the maximum number of slices for various depth and width combinations for the Virtex family. Similarly, Table 4 and Table 5 show maximum resource utilizations for the Virtex-II and Virtex-II Pro families.
Table 3: Virtex Distributed RAM Resource Utilizations

Depth
16 32

Min Width
1 1

Max Width
256 256

Max Size (bits)
4096 8192

Max Number of Slices
270 655

6

www.xilinx.com 1-800-255-7778

DS256 May 21, 2004 Product Specification

Synchronous FIFO 5.0

Table 3: Virtex Distributed RAM Resource Utilizations

Depth
64 128 256

Min Width
1 1 1

Max Width
256 144 72

Max Size (bits)
16384 18432 18432

Max Number of Slices
1680 1961 2000

Table 4: Virtex-II Distributed RAM Resource Utilizations

Depth
16 32 64 128 256

Min Width
1 1 1 1 1

Max Width
256 256 256 256 256

Max Size (bits)
4096 8192 16384 32768 65536

Max Number of Slices
271 400 913 1683 3221

Table 5: Virtex-II Pro Distributed RAM Resource Utilizations Depth
16 32 64 128 256

Min Width
1 1 1 1 1

Max Width
256 256 256 256 256

Max Size (bits)
4096 8192 16384 32768 65536

Max Number of Slices
396 397 783 1552 3218

Performance Benchmarking
To properly constrain the Synchronous FIFO, place an appropriate period constraint on the FIFO clock (CLK). The Synchronous FIFO benchmark results are shown in Tables 6 and 7 for Distributed Memory implementation, and Tables 9 and 10 SelectRam+ implementation.
Table 6: Virtex-E Synchronous FIFO Performance Benchmarking (Distributed Memory implementation)

Data Width Depth=64

8
159 MHz (6.3 ns)

16
137 MHz (7.3 ns)

32
130 MHz (7.7 ns)

64
125 MHz (8.0 ns)

128
110 MHz (9.0 ns)

Note: These benchmark designs contain only one FIFO without any additional logic, so benchmark numbers approach the performance ceiling rather than representing performance under typical conditions.

DS256 May 21, 2004 Product Specification

www.xilinx.com 1-800-255-7778

7

Synchronous FIFO 5.0

Table 7: Virtex-II Synchronous FIFO Performance Benchmarking (Distributed Memory implementation)

Data Width Depth=64 Depth=128 Notes:

8
200 MHz (5.0 ns) 181 MHz (5.5 ns)

16
185 MHz (5.4 ns) 166 MHz (6.0 ns)

32
185 MHz (5.4 ns) 166 MHz (6.0 ns)

64
169 MHz (5.9 ns) 156 MHz (6.4 ns)

128
156 MHz (6.4 ns) 145 MHz (6.9 ns)

1. These benchmark designs contain only one FIFO without any additional logic, so benchmark numbers approach the performance ceiling rather than representing performance under typical conditions. 2. These results were obtained using preview speed files.

Table 8: Virtex-E Synchronous FIFO Performance Benchmarking (Distributed Memory Implementation)

Data Width
Depth = 64

8
339 MHz (2.9ns) 290 MHz (3.5ns)

16
339 MHz (2.9ns) 245 MHz (4.1ns)

32
318 MHz (3.1 ns) 234 MHz (4.3 ns)

64
204 MHz (4.9 ns) 220 MHz (4.6 ns)

128
167 MHz (6.0 ns) 152 MHz (6.6 ns)

Depth = 128

Notes:
1. These benchmark designs contain only one FIFO without any additional logic, so benchmark numbers approach the performance ceiling rather than representing performance under typical conditions. 2. These results were obtained using preview speed files.

Table 9: Virtex-E Synchronous FIFO Performance Benchmarking (SelectRAM+ implementation)

Part
V50E -7 -8 256 x 16 192 MHz - (5.2 ns) 204 MHz (4.9 ns)

FIFO Implementation
512 x 8 188 MHz (5.3 ns) 200 MHz (5 ns) 1024 x 8 182 MHz (5.5 ns) 200 MHz (5 ns)

Note: These benchmark designs contain only one FIFO without any additional logic, so benchmark numbers approach the performance ceiling rather than representing performance under typical conditions.

8

www.xilinx.com 1-800-255-7778

DS256 May 21, 2004 Product Specification

Synchronous FIFO 5.0

Table 10: Virtex-II Synchronous FIFO Performance Benchmarking (SelectRAM+ implementation)

Part
2V250 -5 256 x 16 250 MHz (4 ns)

FIFO Implementation
512 x 8 250 MHz (4 ns) 1024 x 8 250 MHz (4 ns)

Note: These benchmark designs contain only one FIFO without any additional logic, so benchmark numbers approach the performance ceiling rather than representing performance under typical conditions.
Table 11: Virtex-II Pro Synchronous FIFO Performance Benchmarking (SelectRAM+ implementation)

Part
2VP20 -7 256 x 16 360 MHz (2.8ns)

FIFO Implementation
512 x 8 330 MHz (3.0ns) 1024 x 8 348 MHz (2.9ns)

Note: These benchmark designs contain only one FIFO without any additional logic, so benchmark numbers approach the performance ceiling rather than representing performance under typical conditions.

DS256 May 21, 2004 Product Specification

www.xilinx.com 1-800-255-7778

9

Synchronous FIFO 5.0

Ordering Information
This core may be downloaded from the Xilinx IP Center for use with the Xilinx CORE Generator System v6.2i and later. The Xilinx CORE Generator System tool is bundled with all Alliance Series Software packages, at no additional charge. To order Xilinx software, please visit the Xilinx Silicon Xpresso Cafe or contact your local Xilinx sales representative. Information on additional Xilinx LogiCORE modules is available on the Xilinx IP Center.

Revision History
The following table shows the revision history for this document. Date
03/28/03 05/21/04

Version
1.0 1.1

Revision
Revision History added to document. Updated for Virtex-4 and Xilinx Core Generator v6.2i.

10

www.xilinx.com 1-800-255-7778

DS256 May 21, 2004 Product Specification


相关文章:
(文件同步)GoodSync 使用经验谈
(文件同步)GoodSync 使用经验谈_电脑基础知识_IT/计算机_专业资料。自己花了几个小时试了试基本功能!终于搞清楚文件同步时怎么回事了。...
SYNC在线试题答案
SYNC在线试题答案_财会/金融考试_资格考试/认证_教育专区。2222 销售顾问入门手册在线试题—题目 SYNC?在线试题 一、 单选题(32 题) 1. 以下关于新蒙迪欧 SYNC?...
sync命令
sync 命令用途更新 i-node 表,并将缓冲文件写到硬盘中。 语法 sync 描述 sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统 的完整...
福特SYNC系统技术解读与评测
福特SYNC系统技术解读与评测_电子/电路_工程科技_专业资料。我们之前跟踪报道过许多关于福特 SYNC 系统的消息,甚至连我们的 年度峰会都叫做 SYNC(注意,这只是巧合)...
SYNC_C_LOS告警
SYNC_C_LOS告警_信息与通信_工程科技_专业资料。SYNC_C_LOS告警表明时钟板设置的时钟源优先级表中的时钟源丢失。产生该告警表明时钟板设置的时钟源优先级表中时钟...
使用教程
不同计算机之间同步方式又有很多种:如通过 GoodSync 账号、Windows 共享、FTP、webdav 等,而其中 Windows 共享只能在同一局域网 实现,其它的方式可以在任何一种...
新福克斯SYNC系统
各项功能及操作方法 解决完了发音问题,接下来让我们激活 SYNC 系统,激活 SYNC 系统的开关位于方向盘 右侧功能区的后方,是一个类似方向盘换挡拨片的装置,上面标有...
超详细GoodSync使用教程
超详细 GoodSync 使用教程 GoodSync 是一种简单和可靠的文件同步工具, GoodSync 会自动分析、同步,并备份您的电子邮件、珍贵 的家庭照片、联系人,、MP3 歌曲,...
更多相关标签:
async | synchronized | sync 同步 | bittorrent sync | sync linux | linux sync | sync是什么意思 | 福特sync |