Document Number: 001-68321 Rev. *C Page 7 of 29
Architecture
The CYF1072V, CYF1036V, and CYF1018V are of memory
arrays of 72-Mbit, 36-Mbit, and 18-Mbit respectively. The
memory organization is user configurable and word sizes can be
selected as × 9, × 12, × 16, × 18, × 20, × 24, × 32, or × 3 6. The
logic blocks to implement FIFO functionality and the associated
features are built around these memory arrays.
The input and output data buses have a maximum width of
36 bits configurable through PORTSZ[2:0]. The input data bus
goes to an input register and the data flow from the input register
to the memory is controlled by th e write logic block. The inputs
to the write logic block are WCLK, WEN and WQSEL0. When the
writes are enabled through WEN, the data on the input bus is
written into the memory a rray at the rising edge of WCL K. This
also increments the write pointer. WQSEL0 selects the Queue
for write operation.
Similarly, the output register is connected to the data output bus.
Transfer of contents from the memory to the output register is
controlled by the read control logic. The inputs to the read control
logic include RCLK, R EN, OE, RQSEL0, RT and MARK. When
reads are enabled by REN and outputs are enabled through OE,
the data from the memory pointed by the read pointer is
transferred to the output data bus at the rising edge of RCLK
along with active low Dval0 or Dval1 based on the Queue
number selected using RQSEL0. If the outputs are disabled
through OE but the reads enabled, the outputs are in high
impedance state, but internally the read pointer is incremente d.
The MARK signal is us ed to ‘mark’ the location from which data
is retransmitted when requested.
During write operation, the number of writes performed is always
a even number (i.e., minimum write burst length is two and
number of writes always a multiple of two), whereas during read
operation, the number of reads performed can be even or odd
(i.e., minimum read burst length is one).
By default, the FIFO is accessed as a single Queue device. It is
possible to divide the whole memory space into 2 equal sized
array, and each array can be independently accessed as an
independent FIFO. This is like having two in dependent Qu eues
inside the FIFO instead of entire memory space acting as single
Queue FIFO. User can configure the number of Queues by
setting the value of D0 of configuration register 3(refer Table 3
on pa ge 9). Table 2 on page 8 shows the value to be set in D0 of
configuration register 3 to configure the device in single-Queue
or two-Queue mode.
Reset Logic
The Master Reset (MRS) initializes the read and write pointers
to zero, sets the output registers to all zeros and sets the status
of the flag s to FF deasserted and EF asserted. MRS also resets
the configuration register and the mark address to their default
values. MRS affects all the Queues in the FIFO. A MRS is
required after power up before accessing the FIFO. After MRS,
a minimum latency of 1024 clocks is necessary before the first
access. The word si ze is config ured throug h pins; values of the
three PORTSZ pins are latched during rising edge of MRS. After
MRS, the device is configured in single Queue mode by default.
Flag Operation
This device provides two flag pins to indicate the condition of the
FIFO contents.
Full Flag
The Full Flag (FF) goes LOW when the device is full. All write
operations are ignored whenever FF is LOW regardless of the
state of WEN. FF is synchronized to WCLK, that is, it is
exclusively updated by each rising edge of WCLK. In 2Q mode,
FF indicates the status of the Queue selected by WQSEL0.The
worst case assertion latency for Full Flag is four. As the user
cannot know that the FIFO is full for four clock cycles, it is
possible that user continues writing data during this time. In this
case, the four data word written will be stored to prevent data loss
and these words have to be read back in order for full flag to get
de-asserted. The minimum number of reads required to
de-assert full-flag is two and the maximum number of reads
required to de-assert full flag is six. The assertion and
de-assertion of full flag with associated l atencies is explained in
Latency Table on page 14.
Empty Flag
The Empty Flag (EF) goes LOW when the device is empty . Read
operations are ignored whenever EF is LOW, regardless of the
state of REN. EF is synchronized to RCLK, i.e., it is exclusivel y
updated by each rising edge of RCLK. In 2Q mode, EF indicates
the status of the Queue selected by RQSEL0. The assertion and
de-assertion of empty flag with associated latencies is explained
in Latency Table on page 14.
Retransmit from Mark Operation
The retransmit feature is useful for transferring packets of data
repeatedly. It enables the receipt of data to be acknowledged by
the receiver and retransmitted if necessary. The retransmit
feature is used when the nu mber of writes eq ual to or less than
the depth of the FIFO has occurred – and at least one word has
been read since the last reset cycle. A HIGH pulse on RT resets
the internal read pointer to a physical location of the FIFO that is
marked by the user (using the MARK pin). In 2-Queue mode the
MARK and RT signals are validated wi th RQSEL0, i.e., Mark o r
Retransmit function will be performed for the Queue that is
selected by RQSEL0. With every valid read cycle after
retransmit, previously accessed data is read and the read pointer
is incremented until it is equal to the write pointer. Flags are
governed by the relative locations of the read and write pointers
and are updated during a retransmit cycle. Data written to FIFO
after activation of RT are also transmitted. The full depth of the
FIFO can be repeatedly retransmitted. To mark a location, the
Mark pin is asserted when reading that particular location.
Flow-through mailbox Registe r
This feature transfers data from input to output directly by
bypassing the FIFO sequence. When MB signal i s asserted the
data present in D[35:0] will be available at Q[35:0] after two
WCLK cycles. Normal read and write operations are not allowed
during flow-through mailbox operation. Before starting
Flow-through mailbox operation FIFO read should be completed
to make data valid (DVal0/DVal1) high in order to avoid data loss
from FIFO. The width of flow-through mailbox register always
corresponds to port size.