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

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


相关文章:
SyncToy详细使用说明
Sync‖(同步) 沿两个方向复制新的和更新的文件。如果在一个文件夹中重命名或删 除某个文件,此操作会复制到另一个文件夹。 ―Echo‖(回传) 只沿从左侧...
SyncNavigator轻松实现数据库异地同步、断点续传、异构...
SyncNavigator 轻松实现数据库异地同步、断点续传、 异构同步最近一直在研究数据库同步的问题,在网上查了很多资料,也请教了很多人,找 到了一种通过快照复制的方法。...
福特SYNC系统技术解读与评测
福特SYNC系统技术解读与评测_电子/电路_工程科技_专业资料。我们之前跟踪报道过许多关于福特 SYNC 系统的消息,甚至连我们的 年度峰会都叫做 SYNC(注意,这只是巧合)...
(文件同步)GoodSync 使用经验谈
(文件同步)GoodSync 使用经验谈_电脑基础知识_IT/计算机_专业资料。自己花了几个小时试了试基本功能!终于搞清楚文件同步时怎么回事了。...
超详细GoodSync使用教程_图文
超详细 GoodSync 使用教程 GoodSync 是一种简单和可靠的文件同步工具, GoodSync 会自动分析、同步,并备份您的电子邮件、珍贵 的家庭照片、联系人,、MP3 歌曲,...
QTP中与时间同步点:Sync、Wait、Waitproperty、Exist
QTP 中与时间同步点:Sync、Wait、Waitproperty、Exist http://www.51testing.com/html/74/27374-848211.html 同步点是 QTP 是很重要的一部分。常用的同步点...
visualsvn热备份(sync同步)
visualsvn热备份(sync同步)_计算机软件及应用_IT/计算机_专业资料。我试了,可行 利用svnsync 同步 SVN 版本库配置环境: 主 SVN Sever:windows 2003 + VisualSVN...
开发中studio工程导入失败问题总结
gradle project sync failed: 出现此问题的原因是 gradle 更新失败,在 C:\Documents and Settings\user\.gradle\wrapper\dists 目录中可看到需要更新的版本: 解决...
SyncBack同步软件入门使用手册
SyncBack同步软件入门使用手册_计算机软件及应用_IT/计算机_专业资料。SyncBack软件安装,应用入门 点“同步任务”—>“新建任务” 选择“备份” 选择图片下面的“...
win8开机提示OneDrive Sync Engine Host已停止工作,该...
win8开机提示OneDrive Sync Engine Host已停止工作,该怎么解决_电脑基础知识_IT/计算机_专业资料。法一: 管理员运行 cmd,输入下面两条命令即可搞定: SCHTASKS /...
更多相关标签:
async | synchronized | sync 同步 | bittorrent sync | sync linux | linux sync | sync是什么意思 | 福特sync |