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

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


相关文章:
brocade 光纤交换机改成ag模式
Sync FC Disabled (N-Port Offline for F-Port) 2 2 010200 cu AN No_Sync FC Disabled (N-Port Offline for F-Port) 3 3 010300 cu AN No_Sync ...
SyncBack同步软件入门使用手册
SyncBack同步软件入门使用手册_计算机软件及应用_IT/计算机_专业资料。SyncBack软件安装,应用入门 点“同步任务”—>“新建任务” 选择“备份” 选择图片下面的“...
Android studio安装配置常见问题及其解决方案
8:01:10 Gradle sync started 8:01:39 Gradle sync failed: Unable to start the daemon process. This problem might be caused by incorrect configuration of...
Windows下SVN双机备份实现
备份机上操作 1.新建 Repository 2.在 hooks 下新建 pre-revprop-change.bat 空白文件 3.执行初始化 svnsync init file:///{之前新建立的 Repository} {源...
BROCADE博科光纤交换机的配置
No_Sync – In_Sync – 该端口没有收到光信号 收到光信号但是没有同步 收到光信号并且正在同步 (铜口显示为 Sync, 光纤将显示为 Online) Laser_Flt – ...
SYNC_C_LOS告警
www.szhjh.net SYNC_C_LOS 告警告警解释 SYNC_C_LOS(Synchronous Source Level Loss)告警表明时钟板设置的时钟源优先级表中的 时钟源丢失。 告警属性 告警级别 ...
开发中studio工程导入失败问题总结
gradle project sync failed: 出现此问题的原因是 gradle 更新失败,在 C:\Documents and Settings\user\.gradle\wrapper\dists 目录中可看到需要更新的版本: 解决...
QTP中与时间同步点:Sync、Wait、Waitproperty、Exist
QTP 中与时间同步点:Sync、Wait、Waitproperty、Exist http://www.51testing.com/html/74/27374-848211.html 同步点是 QTP 是很重要的一部分。常用的同步点方法...
超详细GoodSync使用教程
超详细 GoodSync 使用教程 GoodSync 是一种简单和可靠的文件同步工具, GoodSync 会自动分析、同步,并备份您的电子邮件、珍贵 的家庭照片、联系人,、MP3 歌曲,...
排查光纤交换机的故障方法
admin> porterrshow frames enc crc too too bad enc disc link loss loss frjt fbsy tx rx in err shrt long eof out c3 fail sync sig === 0: 2.3...
更多相关标签: