Elastic Buffer
Elastic Buffer
References
[1] Seong. Jae. Jeong and Keum. Cheol. Hwang: IEICE Electron. Express 7 (2010)
1370
[2] Szecowka. P. M and Pyrzynski. K. J: ICSES Tech. Dig. (2012) 1
[3] Wikipedia: Universal serial bus (2011) https://en.wikipedia.org/wiki/USB_3.0
[4] Intel Corporation, Microsoft Corporation, NEC Corporation, et al. [S]. USA: USB
Organization, 2008, 11.
[5] Nikolaos. Terzopoulos, Costas. Laoudias, Fotis. Plessas: International Journal of
Circuit Theory and Application 43 (2015) 900
[6] Kopanski. J, Pleskacz. W. A and Pienkowshi. D: DDECS Tech. Dig. (2011) 131
[7] Joe. Winkles, “Elastic Buffer Implementation in PCI Express Devices”. Mindshare
Inc, pp: 1-16. November, 2003.
[8] Intel Corporation: PHY interface for the PCI Express, SATA, and USB3.0
©IEICE 2016 architectures (2013) http://www.intel.cn/content/www/cn/zh/io/pci-express/phy
DOI: 10.1587/elex.13.20151084 -interface-pci-express-sata-usb30-architectures.html?wapkw=phy+interface+fo
Received December 18, 2015
Accepted January 25, 2016
Publicized February 12, 2016
1
IEICE Electronics Express, Vol.* No.*,*-*
r+the+pci+express,+sata,+and+usb3.0+architectures&_ga=1.73465044.77706
7156.1444875981.
[9] Xiao jian, Chen guican, Zhang fujia: Journal of Semiconductors 29 (2008) 1417
[10] David Xing: Sciencepaper Online. Papers. (2012) 1.
[11] Zhu xiaoming, Wang xiaoli and Cheng zeng: MICROELECTRONICS &
COMPUTER 29 (2012) 117.
[12] Michelogiannakis G. Balfour and J. Dally. W. J: IEEE Transaction 62 (2013)
295.
[13] Cumming. C. E and Alfke. P: simulation and synthesis techniques for
asynchronous FIFO design, SNUG San Jose, (2002).
[14] Zheng zhengbing: Journal of Computer Applications 32 (2012) 3259
1 Introduction
With the development of Universal Serial Bus (USB) technology, the traditional
series and data interface technology have long since been replaced [1,2]. As a new
interface technology, Universal Serial Bus 3.0 (USB3.0) has been used in the PC
field for recent years [3], which was released by Intel, Microsoft, NEC and other
companies in November, 2008 [4]. Based on the USB2.0, it adds a new
SuperSpeed transfer channel, which promotes the data rate ten times higher than
before to 5 Gbps [5]. However,it still belongs to the transport protocol of high
speed, serial and source synchronous transmission, relative to USB2.0, which
transmitting serial data in the sender in the form of differential signal and deriving
serial data and clock by the Clock Data Recovery (CDR) circuit in the receiver.
Because the sending and receiving ends adopt independent reference clock sources,
a certain frequency difference can arise between the clock frequency restored from
the ends of the receiving and the local one [6]. In order to ensure the correctness of
data transmission and the synchronization of the data of clock domain, which
recovered from the clock data recovery circuit to the local clock domain, USB3.0
uses the elastic buffer to compensate the clock frequency and achieve phase
synchronization [7].
Elastic buffer was earliest put forward by Maurice Karnaugh in Pulse Code
Modulation (PCM) signal for the telephone network transmission, which achieves
the goal of the clock compensation by adding or removing specific symbols [8]. In
the circuit design of USB 3.0, to compensate the clock frequency difference
between the two clock domains, the sender sends a sequence of SKP at an average
of every 354 characters and the elastic buffer delete or add SKP symbol according
to the instruction [4].
In conclusion, for the integrity of the data, the design for elastic buffer has
become an important link in USB 3.0 [9]. Many scholars have researched the
design of the elastic buffer, such as Dvaid Xing [10] and Zhu Xiaoming [11] who
put forward the method of using breakpoint restore, pointer jump and write pointer
suspend to achieve the design of elastic buffer. However, a complex asynchronous
control logic circuit is need by this method and the timing errors may appear
during the process of adding SKP symbol. In this paper, in order to avoid this
problem, a new method of adding SKP symbol by the suspending of the read
2
IEICE Electronics Express, Vol.* No.*,*-*
pointer is proposed for the design of elastic buffer, which make the process of
adding and deleting are finished in the two clock domains, respectively. In this
way, the timing errors caused by asynchronous control can be avoided. In addition,
it is no need to write pointer jump and breakpoint preserve in the process, which
reduce the utilization of logic units and registers. Under the TSMC65nm process
condition, this paper has accomplished a new elastic buffer and made emulation
proof to it. The post-simulation results show that in the more conservative
temporal constraints, both the read and write clock frequencies of this
newly-introduced elastic buffer can reach 500 MHz.
The rest of this article is organized as follows. Section 2 of this paper
describes the design principle of elastic buffer. Section 3 introduces
implementation of the proposed elastic buffer and section 4 shows the simulation
results of the design.
3
IEICE Electronics Express, Vol.* No.*,*-*
Read Pointer
Elastic Buffer
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
8 valid data
Write Pointer
SKP
add SKP
SKP Yes
pause Read
Elastic Buffer Instruction
Pointer
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
SKP
6 valid data addition
Next Write Write
Pointer Pointer
Normal Half-Full
Fig. 2. Operations under the write clock higher than the read clock
On the contrary, the amount of write data will be more than that of read one,
which causes an increase in the number of valid data and even to the overflow in
the FIFO. As shown in Fig. 3, when the deleting command is effective, the elastic
buffer should suspend the write pointer and allow the next data to cover the data of
the current address to complete the deletion of SKP symbol. In this process, the
data stored in FIFO can be read out normally, which guarantees the state of elastic
buffer at half-full by reducing the volume of effective data.
SKP
add SKP
SKP Yes
pause Read
Elastic Buffer Instruction
Pointer
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
DATA
SKP
Normal Half-Full
Fig. 3. Operations under the write clock higher than the read clock
4
IEICE Electronics Express, Vol.* No.*,*-*
Synchronous Unit
Threshold
Monitor
5
IEICE Electronics Express, Vol.* No.*,*-*
The threshold monitor unit counts the valid data in the FIFO and decides to
whether produce SKP add or remove request based on its difference with 8.
3.1 SKP deserting operation
As shown in Fig. 5, when the frequency of read clock is slower than write
clock, after a certain time, the number of valid date will exceed the threshold of
delete, which causes the request for deletion of SKP by threshold monitor.
Meanwhile, if the input data is SKP, the SKP delete instruction will effective. As a
result, the elastic buffer will suspend the write pointer, then the next data will
cover the current data to complete the deletion of SKP symbol. Simultaneously,
the data in memory is read out normally, which guarantees the state of elastic
buffer at half-full by reducing the number of effective data.
begin
Detect:full==1? Y
N Detect:
wrptr<=4‘b0000 delete_req==1?
Y
Y
N Detect:
wrptr==4'b1111? data_in==SKP?
N Y
6
IEICE Electronics Express, Vol.* No.*,*-*
begin
N
Detect:add_req==1?
rdptr<=4'b0000
Y
Y
N Detect:
rdptr==4'b1111? data_out==SKP?
N Y
4 Simulation results
In this paper, the proposed elastic buffer is implemented on the FPGA
development board with Cyclone IV (Models: EP4CE15F17C8N) and is verified
by Agilent logic analyzer (Models: 16803A). According to the literature [4], SKP
symbol must be added at least every 1056 data, in order to simulate the output data
from CDR, the test signal is inserted a pair of SKP symbols every 1056 data, which
is imported into the proposed elastic buffer used in logic verification and testing.
Fig. 7 and Fig. 8 are the test results of the proposed elastic buffer,which shows that
in the case of inconsistent read and write clock frequency, the proposed elastic
buffer can achieve SKP adding and removing function correctly.
7
IEICE Electronics Express, Vol.* No.*,*-*
rclk
Datain[0]
rclk period:
Datain[1] 2ns Input SKP symbol:
3'h0f9 or 3'h306
Datain[2]
Datain[3]
Datain[4]
Datain[5]
The transition in add signal
Datain[6]
from a logic low to logic high
Datain[7] showed that read pointer pause
(rdptr<=rdptr) and a new SKP
Datain[8] sclk period: order sets will be insert.
Datain[9] 1.99ns
sclk
add
Datain[0]
Datain[3]
Datain[4]
Datain[5]
Datain[6]
Datain[7]
Datain[8]
Datain[9]
8
IEICE Electronics Express, Vol.* No.*,*-*
As shown in Fig. 9, the clock cycles of write and read are set to 2ns and 1.99ns,
respectively. In this case, the differences between two clocks should be
compensated by adding SKP symbol (3’h0f9, 3’h306). When the insert signal is
valid, read pointer will be paused and the address of read pointer remains the same,
the new SKP symbol will be inserted in the next clock period.
rclk
Datain[0]
rclk period:
Datain[1] 2ns Input SKP symbol:3'h0f9
and 3'h306, and the next
Datain[2] input data is 3'h2fa.
Datain[3]
Datain[4]
Datain[5]
Datain[6]
The transition in remove signal
Datain[7] from a logic low to logic high
showed that write pointer pause
Datain[8] (wrptr<=wrptr) and the input SKP
order sets will be consume.
Datain[9] Sclk period:
2.01ns
remove
sclk
Datain[0]
Datain[1]
the SKP symbol before
Datain[2] this 3'h2fa is removed
Datain[3]
Datain[4]
Datain[5]
Datain[6]
Datain[7]
Datain[8]
Datain[9]
Table I gives the comparison between the two kinds of elastic buffers.
Comparing with the conventional elastic buffer, the proportion of area of this work
remains a constant value. In addition, the read speed and the power consumption
under the supply voltage of 1.2V also remain unchanged.
9
IEICE Electronics Express, Vol.* No.*,*-*
5 Conclusions
A new SKP adding technology which is achieved by read pointer suspend is
proposed in this paper. Comparing with the elastic buffer proposed in literature 5
and 6, this design avoids the timing errors caused by the asynchronous control
between the read and write operations. Additionally, it is no need to write the
pointer jumping and breakpoint save, which reduce the use of logical units. The
function of the proposed elastic buffer is verified by Agilent logic analyzer.
Besides, under the condition of TSMC65nm, the design is synthesized by DC tool
and post simulation is accomplished by HSIM. The results of the post simulation
indicate that the designed elastic buffer can correctly realize the SKP adding and
deleting functions at 500MHz, which meets the requirement of the design of USB
3.0.
Acknowledgments
This work is supported by the National Natural Science Foundation of China
(Grant No. 61076086 and No.61376098), the Natural Science Foundation for
Outstanding Young Talent in Colleges and University of Anhui Province (Grant
No. 2012SQRL013ZD)
10