,,,
( )
()
:
VERILOG-Ƞ BER-
2002
1.
1.1. BER- (Bit-Error-Rate ; ITU-T O.153).
1.2. BER- .
2. BER-
2.1.
.
. 2.1 [1].
RG (XOR) .
,
CLK
.
.
. 2.1.
-
̠ N
( > N). . 2.1
.
,
2 1. - ,
.
: ,
.
.
.
1. (2 1 ) . 1 , . 0. . 1 , . , . 0 . 1 .
2. (2 1 ) . 1 1, 2, 3 . .
. 0 . 0. , . , . 1 . 0 , 1/2 .
3. (2 1 ) , W (W , 2 1), , .
.
2.2.
() () , . 2.2. . . , , ( ). . SD, RG1 .
. 2.2.
,
, . 0, XOR1 Y1 XOR2. RG1 , (. . 2.1). , XOR2. () SCRD, . , , RG1, XOR2 . .
SCRD ( ) . ( ) . SCRD RG2, RD.
RD SD .
, RG1 RG2
,
SCRD, , , . Y2 = Y1, ,
,
RD = SCRD Å Y2 = SD Å Y1 Å Y2 = SD Å Y1 Å Y1 = SD Å
0 = SD.
- . RG2, , ( ). , , RG2. RG2, , , XOR3 Y2 . RD Y.
SD = 0.
.
.
RD = 0.
(- RG2)
.
2.3.
. 2.3, RxC RD
DTE DCE
. ,
, ,
. .
(SD = 0, . . 2.2).
RxC RxD
TT .
G2 G3. G2 () . 1. , () . , . G2 . 0.
, . G3 . 0. G3 . 1 , .
. 2.3. DCE DTE
RxC G1 RxD
(.
. 2.4). RxC
RxD.
RxC
D-
.
1 ( 1(L + 4)).
2.
T1(J) T1(J + 3) : S(J), S(J + 1), S(J + 2), S(J + 3). : D(J), D(J + 1), D(J + 2), D(J + 3). , ( , ) . , , .
. 2.4. |
, () , ()! (0 1) RxD. , . , Z D- , . 0.
, 1(J + 4) RxD : . 0 . 1 . 2(J + 4) ( Z , . 1). 2(J + 5) . 1. , .
1(J + 5) RxD . , N. ( ERR), .
2( + 2) N. , . . Y D(K + 2), RxD. . . T2(L + 1) . , . , , . , .
3.
3.1. , . 2.3.
3.2. .
3.3. , . 2.3. . 3.1. gate level.
3.4. . . 3.1. 1000 . , .
3.5. ( 20 40 ). .
3.6. ( ). .
3.7. : ( ) .
. 3.1. :
/ ;
(), . . 2.1;
N , , . . 2.1;
T(DATA) , , , . . 2.3;
T(SYNC) , , , . . 2.3.
3.1.
/ | N | T(DATA) | T(SYNC) | |
1 | 39 | 35 | 756, 759 | 759, 989 |
2 | 36 | 25 | 41, 126 | 41, 42, 43,44 |
3 | 35 | 33 | 88, 89, 90 | 860 867 |
4 | 33 | 20 | 903915 | 34, 44, 54 |
5 | 31 | 28 | 56, 65 69 | 68, 895 |
6 | 29 | 27 | 55, 57, 59, 67 | 757 763 |
7 | 28 | 25 | 85, 847 | 85, 88, 93 |
8 | 25 | 22 | 49 54 | 51 56, 129 |
9 | 7 | 6 | 47, 61 | 84, 99 105 |
10 | 9 | 5 | 55, 78, 88 | 80, 90 |
11 | 10 | 7 | 759, 989 | 55, 57, 59, 67 |
12 | 11 | 9 | 41, 42, 43,44 | 85, 847 |
13 | 15 | 14 | 860 867 | 49 54 |
14 | 17 | 14 | 34, 44, 54 | 47, 61 |
15 | 18 | 11 | 68, 895 | 55, 78, 88 |
16 | 20 | 17 | 757 763 | 85, 847 |
17 | 21 | 19 | 759, 989 | 49 54 |
18 | 22 | 21 | 41, 42, 43,44 | 47, 61 |
19 | 23 | 18 | 860 867 | 55, 78, 88 |
20 | 36 | 25 | 34, 44, 54 | 759, 989 |
21 | 35 | 33 | 68, 895 | 41, 42, 43,44 |
22 | 33 | 20 | 757 763 | 860 867 |
23 | 31 | 28 | 85, 88, 93 | 34, 44, 54 |
24 | 21 | 19 | 51 56, 129 | 68, 895 |
25 | 22 | 21 | 41, 42, 43,44 | 757 763 |
26 | 23 | 18 | 860 867 | 85, 88, 93 |
27 | 36 | 25 | 34, 44, 54 | 51 56, 129 |
28 | 35 | 33 | 759, 989 | 756, 759 |
29 | 31 | 28 | 41, 42, 43,44 | 41, 126 |
30 | 29 | 27 | 860 867 | 88, 89, 90 |
31 | 28 | 25 | 34, 44, 54 | 903915 |
32 | 25 | 22 | 68, 895 | 56, 65 69 |
33 | 7 | 6 | 757 763 | 55, 57, 59, 67 |
34 | 9 | 5 | 85, 88, 93 | 85, 847 |
35 | 10 | 7 | 51 56, 129 | 49 54 |
36 | 11 | 9 | 84, 99 105 | 47, 61 |
37 | 15 | 14 | 80, 90 | 55, 78, 88 |
38 | 25 | 22 | 55, 57, 59, 67 | 759, 989 |
39 | 7 | 6 | 85, 847 | 41, 42, 43,44 |
40 | 9 | 5 | 49 54 | 860 867 |
41 | 10 | 7 | 47, 61 | 34, 44, 54 |
42 | 11 | 9 | 55, 78, 88 | 68, 895 |
43 | 15 | 14 | 85, 847 | 757 763 |
44 | 17 | 14 | 49 54 | 759, 989 |
45 | 18 | 11 | 47, 61 | 41, 42, 43,44 |
46 | 25 | 22 | 55, 78, 88 | 860 867 |
47 | 7 | 6 | 759, 989 | 34, 44, 54 |
48 | 9 | 5 | 41, 42, 43,44 | 68, 895 |
49 | 10 | 7 | 860 867 | 757 763 |
50 | 11 | 9 | 34, 44, 54 | 85, 88, 93 |
51 | 15 | 14 | 68, 895 | 51 56, 129 |
52 | 17 | 14 | 757 763 | 41, 42, 43,44 |
53 | 18 | 11 | 85, 88, 93 | 860 867 |
54 | 28 | 25 | 51 56, 129 | 34, 44, 54 |
55 | 25 | 22 | 41, 42, 43,44 | 759, 989 |
56 | 7 | 6 | 860 867 | 41, 42, 43,44 |
57 | 9 | 5 | 34, 44, 54 | 860 867 |
58 | 10 | 7 | 68, 895 | 34, 44, 54 |
59 | 11 | 9 | 34, 44, 54 | 35, 46, 56 |
60 | 15 | 14 | 759, 989 | 68, 895 |
61 | 17 | 14 | 41, 42, 43,44 | 757 763 |
62 | 18 | 11 | 860 867 | 85, 88, 93 |
63 | 20 | 17 | 34, 44, 54 | 51 56, 129 |
64 | 21 | 19 | 68, 895 | 41, 42, 43,44 |
65 | 22 | 21 | 757 763 | 860 867 |
66 | 23 | 18 | 85, 88, 93 | 34, 44, 54 |
67 | 36 | 25 | 51 56, 129 | 759, 989 |
68 | 35 | 33 | 84, 99 105 | 34, 44, 54 |
69 | 33 | 20 | 80, 90 | 68, 895 |
70 | 31 | 28 | 55, 57, 59, 67 | 757 763 |
71 | 21 | 19 | 85, 847 | 85, 88, 93 |
72 | 22 | 21 | 49 54 | 51 56, 129 |
73 | 23 | 18 | 85, 88, 93 | 41, 42, 43,44 |
74 | 36 | 25 | 51 56, 129 | 860 867 |
75 | 35 | 33 | 41, 42, 43,44 | 34, 44, 54 |
76 | 31 | 28 | 860 867 | 68, 895 |
77 | 29 | 27 | 34, 44, 54 | 34, 44, 54 |
78 | 28 | 25 | 759, 989 | 759, 989 |
79 | 25 | 22 | 34, 44, 54 | 41, 42, 43,44 |
80 | 7 | 6 | 68, 895 | 860 867 |
4.
4.1.
, Verilog HDL.
-
(module), (reg),
(wire), , (input, output) . .
.
4.1 (.
. 2.3) . ,
, . ,
gate-
RTL- (Register Transfer Level). , ,
Ƞ .
,
. ,
, .
, gate-.
(. 4.1) . (module ber_tester) . (module DCE, module Line, module DTE) . D- ( ), .
. . : Project à New à < > à Add ( ) à OK à GO ( )). , , . 4.2, :
timing , . . G1 (. 4.1);
RxCgood ;
RxDgood, ;
A[1:M] - ;
errRxC () RxC;
errRxD () RxD;
RxCbad ();
RxDbad ();
B[1:M] - ;
D_input_TT D- DTE;
ERROR () BER-.
. 4.1. BER- Verilog HDL RTL
4.2. RTL- BER- Verilog HDL
4.2.1. BER-main_module.v
// ( )
module ber_tester (ERROR); // ber_tester - ,
//
// ( , )
output ERROR; // ERROR ( )
wire RxDgood, RxCgood, RxDbad, RxCbad; //
DTE DTE1(ERROR, RxCbad, RxDbad); // BER-ࠠ
Line Line1 (RxCbad, RxDbad, RxCgood, RxDgood); // :
DCE DCE1(RxCgood, RxDgood); // DTE, Line DCE (DTE1, Line1 蠠 //DCE1)
endmodule //
4.2.2. BER-DTE_module.v
module DTE(out1, in1, in2); // ,
input in1, in2; //
output out1; //
parameter M=5, N=3; // - , N -
// . N:
// 3 2, 4 3, 5 3, 6 5, 7 6, 9 5, 10 7, 11 9, 15 14, 17 14,
// 18 11, 20 17, 21 19, 22 21, 23 18, 25 22, 28 25, 29 27,
// 31 28, 33 20, 35 33, 36 25, 39 35
reg [1:M] B; // -
reg TT; // D-
wire D_input_TT; //
assign out1 = TT, // , out1
// D-
D_input_TT = B[N] ^ B[M] ^ in2; // ,
// D_input_TT
// : B[N], // B[M] in2
always begin: analyzer // BER- "" :
@(negedge in1) begin: prediction_and_check // in1
TT = B[N] ^ B[M] ^ in2; // ,
B = B >> 1; //
// ,
B[1] = in2; // [1]
// in2
end // ,
// in1
end // "always"
endmodule
4.2.3. BER-Line_module.v
module Line (out20, out10, in20, in10); // ,
input in20, in10; //
output out20, out10; //
reg errRxD, g3, errRxC; //
integer count, timing; //
initial count = 0; //
initial errRxD=0; //
initial g3=0; //
assign out10 = in10 ^errRxD; // out10
// in10 errRxD
assign out20 = in20 ^errRxC; // out20
// in20 errRxC
// "" in20:
always @(posedge in20) begin: ticking // ( -
count = count + 1; // RxCgood);
timing = count - 1; // timing count
errRxC = g3; // g3 errRxC
end
// "" 20 , . . ,
// , RxD
always #20 if
((count == 39) // RxD (
|(count == 60) // )
|(count == 70)
|(count == 40)
|(count == 40)
|(count == 40)
|(count == 310)
|(count == 120)
|(count == 160)
|(count == 130))
begin
errRxD = 1; //
end
else
begin
errRxD = 0; //
end
// "" 20 , . . ,
// , RxC
always #20 if
((count == 9) // RxC (
|(count == 40) // )
|(count == 700)
|(count == 940)
|(count == 400)
|(count == 126)
|(count == 127)
|(count == 128)
|(count == 129)
|(count == 130))
begin
g3 = 1; //
end
else
begin
g3 = 0; //
end
endmodule
4.2.4. BER-DCE_module.v
module DCE (out40, out30); // , (⠠ // )
output out40, out30; //
reg g1; // g1
parameter M=5, N=3; // - , N -
// . N:
// 3 2, 4 3, 5 3, 6 5, 7 6, 9 5, 10 7, 11 9, 15 14, 17 14,
// 18 11, 20 17, 21 19, 22 21, 23 18, 25 22, 28 25, 29 27,
// 31 28, 33 20, 35 33, 36 25, 39 35
reg [1:M] A; // - A
reg temp; // temp
initial A = 1; //
assign out30 = A[N] ^ A[M], out40 = g1; //
initial begin: stopper //
#20040; $stop; // 2040
end // ( = 20 )
always begin: RxC_generator // :
#10 g1 = 0; // = 10
#10 g1 = 1; // = 10
end
always begin: pseudorandom_RxD //
@(posedge g1) // g1:
temp = A[N] ^ A[M]; // A[N] A[M],
A = A >> 1; // ,
A[1] = temp; // temp
end
endmodule
. 4.2. BER-, . ,
1. .., .., .. . . .: , 2002. 220 .
2. Hyde
Daniel C. CSCI 320 Computer Architecture. Handbook on Verilog HDL.
Bucknell University, 1997.
. .
31. 03. 2002
( ) () :
Copyright (c) 2025 Stud-Baza.ru , , , .