Trên k t qu( mô ph)ng, gi( s, d$ li u GFP data a vào toàn ‘1’, ta th y r=ng t!i v% trí xung frame_start lên m+c ‘1’, d$ li u E1 Data 1c gán v:i t0 mã "ng b khung là “10011011”, sau ó E1 data 1c gán v:i d$ li u GFP data tồn
‘1’.
Sau ó, các byte d$ li u E1 data 1c a n kh i bi n i d$ li u song song thành n i ti p. T0ng bít trong byte d$ li u 1c gán lên chu5i bít *u ra theo
clock E1 theo th+ t0 t0 bít có tr ng s cao nh t (msb) n bít có tr ng s th p nh t(lsb). Ví d#, v:i t0 mã "ng b “10011011” thì chu5i d$ li u E1 Out s8 là : 1 0
41
Sau ây là k t qu( mô ph)ng trên ph*n m m ModelSim
Hình 2.18 Mơ ph)ng d$ li u E1 chuy n thành chu5i bít n i ti p t c E1
2.5. Kh$i giao ti p lu+ng E1 (LIU)
Kh i này th c hi n vi c thu chu5i d$ li u E1 t0 FPGA, sau ó th c hi n mã hóa HDB3 và phát ra &ng dây E1. Ng 1c l!i, th c hi n thu d$ li u E1 d!ng
HDB3 trên &ng dây, sau ó gi(i mã HDB3 thành d!ng d$ li u E1 d!ng NRZ và
a v FPGA.
2.6. Kh$i Rxmodule
2.6.1. Khôi ph c d) li u và ,nh th i
Kh i DPLL có ch+c n/ng khôi ph#c clock t0 d$ li u, ngh>a là nó khơi ph#c l!i clock sao cho s &n d ng c.a clock ch t vào úng gi$a s li u. Ch t l 1ng d$
li u thu v 1c ánh giá qua m9u m7t c.a nó, m9u m7t 1c t!o ra b=ng cách l y
m9u giá tr% trên mi n th&i gian c.a tín hi u b/ng g c (sau l c thu b/ng g c, tr :c l y
m9u quy t %nh bít truy n là 1 hay 0) và ch"ng các khung (có dài là m t s symbol nh t %nh) lên nhau.
Ví d#: n u l y m9u tín hi u t!i t c c 10 m9u /giây và mu n xem m t khung có dài 2 symbol thì chúng ra s8 c7t tín hi u m5i 20 m9u 1 khung và ch"ng l<p các khung ó lên nhau theo th&i gian. Các tín hi u ch"ng l<p lên nhau ó s8 mang nhi u thông tin và 1c g i là bi u " m7t. Nó r t quan tr ng trong vi c xác %nh i m l y
m9u t i u, là i m mà ít nh!y c(m v:i nhi6u, t!p âm, rung pha nh t và có quy t
42
Ta th y r=ng, d$ li u sau khi thu v s8 có Jitter, do v y n u Clock mà ch t d$ li u t!i vùng hay s(y ra Jitter thì các bit s8 b% quy t %nh sai. Do v y tr &ng
h1p lý t ng nh t là tín hi u clk s8 ch t d$ li u t!i chính gi$a d$ li u, l5i s8 s(y
ra khi Jitter c.a clk l:n h n 0.5 chu k2 bít.
Hình 2.19 Q trình khơi ph#c d$ li u và %nh th&i
K thu t hay dùng hi n nay trong thi t k m t b DPLL là dùng gi(i pháp Oversampling, ngh>a là ta dùng nhi u clk v:i pha khác nhau (hay nói cách là s, d#ng m t clk có t*n s r t cao) l y m9u d$ li u, trên c s ó phát hi n s &n c.a
d$ li u và quy t %nh xem clk nào có pha sao cho s &n ch t vào kho(ng chính gi$a
d$ li u.
N u ta xem xét sóng hình vng th hi n trên Hình 2.20 là tín hi u "ng pha
(vuông pha) ã 1c khôi ph#c (t+c là ta ã phát i chu5i d$ li u [+1, − 1, +1, − 1, .
. . ]) và sau ó l y m9u t!i b t k2 i m nào (khác các th&i i m chuy n symbol) thì u cho k t qu( úng.
43
Hình 2.21 Tín hi u ã 1c khơi ph#c có nhi6u.
Tuy nhiên trong tr &ng h1p có nhi6u thì d$ li u thu 1c có th quan sát 1c nh Hình 2.21. Trong tr &ng h1p này, vi c l y m9u t!i b t k2 th&i i m nào
khác v:i th&i i m chuy n i các bít khơng (m b(o 1c r=ng s quy t %nh tín
hi u nào ã 1c phát i là úng nh tr &ng h1p khơng có nhi6u trên. B=ng vi c
tính trung bình trong t0ng kho(ng chu k2 c.a m t bít d$ li u chúng ta có th a ra
1c s ánh giá úng h n v bit d$ li u nào ã 1c phát i. Vì v y b l c
Matched filter t t nh t ây là m t b l c trung bình (median filter).
Hình 2.22 *u ra b l c trung bình c.a tín hi u khơng có nhi6u
44
Chú ý r=ng c( hai tr &ng h1p *u ra c.a b l c ph i h1p có các -nh mà t!i
ó b l c ph i h1p l y chính xác symbol và -nh d ng cho bi t +1 ã 1c phát,
t ng t -nh âm cho bi t -1 1c phát. M<c dù ây v9n nhi6u nh trong Hình
2.22 tuy nhiên các -nh này r t d6 xác %nh 1c và a ra s ánh giá v d$ li u
(+1, -1) chính xác h n nhi u so v:i vi c l y m9u tín hi u mà khơng cho qua l c trung bình.
khơi ph#c %nh th&i ch t d$ li u, ta +ng d#ng gi(i pháp Oversampling,
ngh>a là dùng m t clk cao h n nhi u l*n (ít nh t là 16 l*n và càng cao càng t t) t c d$ li u c*n khôi ph#c l y m9u d$ li u *u vào và x, lý. V c b(n, d a theo
ngun lý vịng khóa pha PLL.
Hình 2.24 Khơi ph#c %nh th&i DPLL
Bit cao nh t c.a symbol sau khi 1c l c ph i h1p 1c a vào *u vào
Datain c.a m!ch khôi ph#c %nh th&i DPLL. B tách sóng pha s8 phát hi n tín hi u
s:m hay mu n so v:i pha c.a b dao ng DCO (Digital Controlled Oxilator – Nguyên lý t ng t nh NCO), thông tin v pha s8 i u khi n t/ng hay gi(m t*n s c.a DCO. Khi m!ch vịng dpll ã khóa pha thì bít cao nh t c.a DCO s8 1c l y ra
ch t d$ li u. B tách sóng pha Alexander (Alexander Phase Detector) th &ng 1c s, d#ng trong vi c khôi ph#c %nh th&i và d$ li u t0 chu5i bít n i ti p b i
vì nguyên lý n gi(n và vi c th c thi trên FPGA n gi(n. S " kh i nh Hình
2.24.
K t qu( X và Y cho phép i u ch-nh t/ng hay gi(m t*n s DCO, X và Y 1c
a qua b l c thông th p lo!i b) nhi6u. Trong ph*n này, b l c n gi(n là vi c có bao nhiêu s ki n X ho<c Y quy t %nh i u ch-nh DCO. Trong lu n v/n này,
45
1c thi t k khi có hai s ki n liên ti p gi ng nhau c.a X ho<c Y thì cho phép i u
ch-nh DCO. i u khi n DCO n gi(n là t/ng hay gi(m b m t!o ra t*n s t/ng hay gi(m, t ng t ph*n tích l;y pha c.a b dao ng NCO.
D$ li u s:m pha so v:i clk
Clk s:m pha so v:i d$ li u
Alexander Phase Detector
Hình 2.25 S " nguyên lý làm vi c b tách sóng pha
Hình 2.26 Mơ ph)ng kh i khơi ph#c %nh th&i
Hình trên ta th y r=ng, d$ li u thu 1c t0 symbol thu b=ng kh i Slicer.
Clock khôi ph#c 1c có s &n d ng ch t vào chính gi$a d$ li u.
2.6.2.Kh$i E1_deframe
Kh i E1 deframe thu chu5i d$ li u E1 t!i s &n d ng c.a clock ã 1c
khôi ph#c t0 kh i khôi ph#c %nh th&i, s " kh i b tách kênh E1 1c minh h a
nh hình
Sync and Frame Control
DeMux rd Serial To Parallel
GFP Data 8 Fr_ch_start E1 Data E1 In E1 Clk 8 fr_start Hình 2.27 S " thi t k kh i E1_deframe
D$ li u E1 n i ti p 1c chuy n i thành d$ li u song song 8 bít, sau ó d$
li u song song này 1c a vào kh i "ng b khung xác %nh t0 mã "ng b và %nh th&i khung E1.
46
Kh i "ng b khung E1 (Sync Frame) có l u " thu t toán nh sau: ,!-. &/ . 0 , 11 0 , 11 0 / , 11 0 , Hình 2.28 Thu t tốn th c hi n "ng b khung E1
Khi phát hi n 1c t0 mã "ng b khung, ngh>a là E1 data có giá tr%
“10011011”, thi t l p c& phát hi n khung lên m+c ‘1’ (frame_det = ‘1’), ng 1c l!i
n u E1_data khác t0 mã "ng b khung thì xóa c& (frame_det = ‘0’).
Ban *u, tr!ng thái c.a h th ng là state[1..0] là 00 và tr!ng thái "ng b là
sync có giá tr% 0, tr!ng thái ti p theo gán state(0) v:i frame_det, do v y khi phát hi n 1c t0 mã "ng b khung thì tr!ng thái h th ng t0 00 s8 chuy n sang 01.
47
Khi tr!ng thái 01, b7t *u t/ng bi n m (cnt) s bít lên 1 n v% theo xung nh%p clock E1, n u cnt có giá tr% 255 (s bít trong m t khung E1) và xung frame_det (xung phát hi n t0 mã "ng b khung ti p theo) cùng th&i i m thì gán tr!ng thái
ti p theo n 11 và xóa b êm cnt v giá tr% 0.
Khi tr!ng thái 11, ti p t#c t/ng bi n cnt và ki m tra xung frame_det t!i cnt b=ng 255, n u hai giá tr% này cùng x(y ra t!i m t th&i i m thì thi t l p tr!ng thái
n 01 và xóa b m v 0.
Tr!ng thái 01là tr!ng thái "ng b , ngh>a là thi t l p sync có giá tr% ‘1’.
tr!ng thái 01 ( "ng b ), ti p t#c ki m tra bi n m cnt và xung frame_det, n u hai
giá tr% này không cùng x(y ra cung m t th&i i m thì t/ng bi n m s l5i lên 1 n v% (error = error + 1), n u không x(y ra tr &ng h1p này thì xóa bi n error v 0.
Nh v y, n u x(y ra 3 l5i liên ti p (error = 3) thì thi t l p tr!ng thái h th ng v tr!ng thái ban *u, xóa error v giá tr% 0 và ti n hành tìm ki m và "ng b l!i.
2.6.3.Kh$i Gfp_deframe
Hình 2.29 S " thi t k kh i GFP_deframe
Kh i GFP_deframe bao g"m các kh i ch. y u: Kh i "ng b khung GFP
(Sync GFP frame); kh i Ram (GFPdeframe_RAM – dual Ram), kh i i u khi n ghi b nh: (Write Control signals generator); kh i i u khi n c b nh: (Read Control
48
signals Generator); kh i t!o các byte mào *u c.a khung Ethernet và ghép d$ li u v:i các byte mào *u ó (Ethernet Header và Mux).
D$ li u GFP_Data thu 1c t0 kh i E1_deframe 1c a vào kh i "ng b
khung GFP tách các byte mào *u c.a khung GFP, tính tốn t(i tr ng d$ li u
trên khung GFP và a tín hi u "ng b kích ho!t kh i t!o tín hi u i u khi n
ghi d$ li u sau khi ã tách các byte mào *u vào b nh: Ram.
B t!o tín hi u i u khi n c s8 c/n c+ vào s byte d$ li u Ethernet thu
1c t!o ra các tín hi u i u khi n c d$ li u t0 b nh: Ram, "ng th&i i u
khi n kh i t!o ra các byte mào *u Ethernet và kh i ghép d$ li u Ethernet cùng v:i
các byte mào *u ó. K t qu( là khơi ph#c 1c khung Ethernet ã phát d :i d!ng
các byte n i ti p nhau. Sau ây là thu t toán th c hi n c# th t0ng kh i
2.6.4.Kh$i +ng b khung GFP
D$ li u GFP_Data 1c ghi vào m t thanh ghi d%ch “buff” 4 byte n i ti p,
d$ li u 1c d%ch trái. Th c hi n tính tốn cHEC t0 2 byte Buff(3) và Buff(2) theo
thu t tốn Cyclic, sau ó so sánh cHEC v0a tìm 1c v:i hai byte Buff(1) và
Buff(0). N u hai giá tr% này b=ng nhau thì xác nh n "ng b khung GFP "ng th&i
a ra s byte d$ li u Ethernet trên khung GFP ó t0 hai byte buff(3) và buff(2), ngh>a là eth_cnt = buff(3) & buff(2).
D$ li u mơ ph)ng nh hình sau
Hình 2.30 Mơ ph)ng th c hi n "ng b GFP_Deframe
Ta th y r=ng, lúc *u khi ch a ki m tra 1c t0 mã "ng b c.a khung GFP
thì tr!ng thái “State” là “Hunt”, khi ki m tra úng t0 mã cHec thì tr!ng thái state chuy n sang “presyn”, "ng th&i ch t chi u dài d$ li u Ethernet là gfp_cnth = 70
úng nh d$ li u phát. Mã cHec ti p theo v9n úng và chuy n “state” sang tr!ng thái "ng b “Syn”.
49
2.6.5.Kh$i t&o tín hi u i u khi n ghi RAM
Khi h th ng ã "ng b khung GFP, th c hi n t/ng giá tr% con tr) ghi wpointer lên m t n v%. L u ý r=ng, c*n ph(i có thêm i u ki n eth_cnt khác 0 thì m:i t/ng giá tr% con tr) ghi b i vì n u eth_cnt b=ng 0 thì các byte thu 1c chính là
d$ li u IdleGFP.
Hình 2.31 Mơ ph)ng t!o tín hi u i u khi n ghi RAM
K t qu( mơ ph)ng hình v8 trên ta th y, khi tr!ng thái "ng b GFP 1c
thi t l p thì con tr) ghi wpointer b7t *u t/ng theo m5i byte d$ li u.
2.6.6.Kh$i t&o tín hi u i u khi n "c RAM và óng khung Ethernet
L u " thu t toán nh sau:
Ram empty? (rpointer = wpointer + 1) Counter byte _cnt: 0 to ethernet _len + 19 START Case byte _cnt: 0 to 7 : preamble 8 : SFD
9 to Ethernet _len + 8 : Data
Ethernet _len + 9 to Ethernet _len + 19: IFGs No
If
Byte_cnt = 9 to Ethernet _len + 19 Then
rpointer = rpointer + 1
50
Tr :c tiên ki m tra tr!ng thái c.a b nh: Ram xem có Empty hay khơng,
ngh>a là ki m tra i u ki n rpointer = wpointer + 1. N u Ram không b% empty, th c hi n t/ng bi n m s byte Ethernet thu 1c, n u bi n m này có giá tr% b=ng s
byte Ethernet c ng v:i 19 byte, ngh>a là i u kiên ethbytecnt = ethlenth + 19 th)a mãn thì kh i ng l!i bi n m. Trong ó, 19 byte có ý ngh>a bao g"m 12 byte idle là kho(ng cách gi$a hai khung Ethernet, 7 byte preamble và 1 byte cho SFD.
N u ethbytecnt có giá tr% t0 0 n 6 thì gán *u ra Eth_8 v:i các byte d$ li u
preamble (01010101),
Ethbytecnt có giá tr% b=ng 7 thì gán d$ li u Eth_8 v:i byte SFD (11010101), Ethbytecnt có giá tr% l:n h n 7 và nh) h n ho<c b=ng ethlength + 6 thì gán Eth_8 v:i d$ li u 1c c ra t0 b nh: RAM
Ethbytecnt có giá tr% t0 ethlength + 7 n ethlength + 19 thì gán Eth_8 v:i d$ li u idle gi$a các khung Ethernet.
Khi Ram không b% empty và ethbytecnt n=m trong kho(ng t0 8 n ethlength + 7 thì th c hi n t/ng d*n con tr) c rpointer.
51
Hình 2.33 Mơ ph)ng t!o tín hi u c Ram và óng khung Ethernet a, Mơ ph)ng giai o!n b7t *u khung a, Mô ph)ng giai o!n b7t *u khung
b, Mô ph)ng giai o!n k t thúc khung
2.6.7.Kh$i chuy n i d) li u 8 bít thành chu-n MII
D$ li u 8 bít song song 1c chuy n thành các nible n i ti p theo quy lu t, 4
bít th p chuy n i tr :c và 4 bít cao chuy n i sau.
a
52
Hình 2.34 Mơ ph)ng th c hi n chuy n i 8 bít thành nible 4 bit
2.7. K t qu mô ph.ng h th$ng
D$ li u mô ph)ng *u vào h th ng g"m có: D$ li u Ethernet rxd_4, rxclk_4(25 Mhz) và rxdv_4 1c a vào liên t#c, kho(ng cách gi$a các gói Ethernet là 12 bytes (t ng +ng v:i 48 chu k2 rxclk_4). Clock PDH a vào có t c
TxE1clk = 2.048 Mhz.
Th c hi n loopback d$ li u DataE1, Clock txclk_4 (25 Mhz) cho ph*n thu. Ta thu 1c d$ li u *u ra h th ng g"m: txen_4, txd_4, cùng v:i txclk_4 (25 Mhz)
a vào.
So sánh d$ li u Ethernet phát và thu ta th y hoàn toàn gi ng nhau, tuy nhiên t c gói Ethernet thu 1c nh) h n t c Ethernet phát vào. i u này theo tính
53
54
Chư ng 3. K T QU VÀ ÁNH GIÁ 3.1 S + kh$i và thi t k ph/n c ng
3.1.1 S + kh$i
Trong s " trên, ph*n c+ng 1c thi t k cho c( chi u thu và chi u phát.