Professional Documents
Culture Documents
One structure that is best suited at the interface of different This work uses a Register File as buffer elements, which
synchronous blocks is bi-synchronous first-in first-out (FIFO) support speed and improve FIFO latency. Its also includes
buffer or multi-synchronous FIFO buffer [3]. The Basic configurable buffer depth or size, when compared with most
FIFO buffer must be improved to accommodate two different recent work. The proposed work has been implemented
self-regulating clock inputs. Data writing into the FIFO buffer using parametric HDL and Xilinx FPGA series. This paper is
taking place with the reference of write clock domain and organized as Section II describes the fundamental architectures
data reading with the reference of read clock domain. In this of all type of synchronous FIFO and their key parameters.
way, data can be passed smoothly between two clock domains Section III introduces metastability and synchronization issues
without issue of metastability [4]. The important application and their solution. In the Section IV, the proposed design of
of the bi-synchronous FIFO at the router-router interface and dynamic depth FIFO architecture is discussed. And Section V
the router-IP interface within DSPIN. describes HDL implementation of proposed bi-synchronous
FIFO.
The presented architecture facilitates the transfer of data
between different modules, which are completely unrelated
clock domains and also provide dynamic depth calculation of II. SYNCHRONOUS FIFO
the buffer to save unwanted space of FIFO [5]. It is particularly
A. Serial input serial output FIFO or Linear FIFO
useful in applications where size of buffer is important rather
than latency which is critical such as in many NoC applications This section discusses the fundamental principle and prac-
[6]. tices of basic synchronous FIFO structure called Linear FIFO.
31
2015 1st International Conference on Next Generation Computing Technologies (NGCT-2015)
Dehradun, India, 4-5 September 2015
32
2015 1st International Conference on Next Generation Computing Technologies (NGCT-2015)
Dehradun, India, 4-5 September 2015
V. DETAIL ARCHITECTURE OF PROPOSED FIFO Due to the metastability issue, the pointers are transferred
to a Gray code format before the clock cross domains.
The complete architecture of the proposed bi-synchronous The pointers again converted back to Binary representation
FIFO is shown in figure 6. In this high-level diagram, there into other clock domain because arithmetic of binary
are four major blocks namely, Register file array, Full flag representation is quite easy and understandable. Since Gray
generation, Empty flag generation, and depth calculator. The code representation is a single bit change code format, thats
WRITE logic is shown on the left hand side where as READ why the chance of metastability issue will be very less in
logic is on the right hand side of figure 6. case of clock domain crossing. In the case of Binary pointers,
trying to synchronize binary count value from one clock
On the READ side FIFO calculates whether or not it is domain to another clock domain is challenging. Consider an
empty, on the basis of Rd enable signal, receiver can consume example, when pointer value changes from 0111 to 1000, then
all the data available within the FIFO memory. On the WRITE all bits changed and increase the probability of metastability.
side, the FIFO indicates whether or not it is full. The sender The implementation of binary-to-gray conversion and grayto-
should only send data when the FIFO is not full and asserting binary conversion requires special circuit that is based
wr en signal. On the READ side FIFO indicates whether or on xoring operations. In the case of binary-to-gray, an
not it is empty for the receiving the data. Actually the sender n-bit binary vector (bn − 1, bn − 2, ..., b2, b1) can be used to
cannot write data within the FIFO memory when full signal convert to n-bit gray coded vector(gn − 1, gn − 2, ..., g2, g1) as
is generated and receiver cannot read from the FIFO memory shown in given equation 5, where + indicate the XOR function.
when empty signal is generated.
gn − 1 = bn − 1, gn − 2 = bn − 1 + bn − 2, gn − 3
How FIFO pointers works, it is very useful for the better = bn − 2 + bn − 3, . . . , g1 = b2 + b1, g1 = b1 + b0 (5)
understanding the FIFO design. There are two types of pointer
available called write pointer and read pointer where write Similarly in In the case of binary-to-gray, an n-bit gray
pointer always points to next word to be written and similarly coded vector (gn − 1, gn − 2, ..., g2, g1) can be used to convert
33
2015 1st International Conference on Next Generation Computing Technologies (NGCT-2015)
Dehradun, India, 4-5 September 2015
VI. CONCLUSION
The projected bi-synchronous FIFO design is well-matched
for the many applications especially at the interface of two
different clock domains. It can be utilized as a drop-in module
at the router interface of the multi-synchronous networkon-
chip. This design provides high sturdiness, variable size
register files, good energy proficiency, high frequency clock
support and good scalability.
This FIFO architecture is implemented using parametric
VHDL and synthesis is performed using Xilinx ISE 12.1.The
functional simulation and Verification is performed by the
Modelsim ISE 6.0d.
34
2015 1st International Conference on Next Generation Computing Technologies (NGCT-2015)
Dehradun, India, 4-5 September 2015
[18] Y.Xiao and R.Zhou, Low latency high throughout circular asynchronous
FIFO, in Tsinghua Science and Technology, pp.812-816, Dec. 2008.
[19] P.P.Chu, RTL Hardware Design Using VHDL, Coding for Efficiency,
Portability, and Scalability , in John Wiley Sons 2006
35