Receiving device and eye pattern based control parameter adjustment method
By optimizing the control parameters of the receiving circuit through iterative operations based on eye diagrams and eye diagram mask checks, the problem of unstable control parameter adjustment in the prior art is solved, the algorithm is simplified, and the chip area is reduced.
Patent Information
- Application Number
- CN202210106004.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-01-28
- Publication Date
- 2025-11-04
- Estimated Expiration
- 2042-01-28
AI Technical Summary
Existing receiving devices struggle to effectively balance the parameters when adjusting control parameters, leading to unstable optimization results. Furthermore, existing algorithms are complex and require a large chip area.
An eye diagram-based control parameter adjustment method is adopted to optimize the control parameters of the receiving circuit through iterative operations and eye diagram mask checks. This includes updating candidate control parameters and checking the relationship between the eye diagram mask and the recovered data until the optimal control parameter corresponding to the maximum eye diagram mask is found.
Stable optimization of the receiving device in the adjustment of control parameters was achieved, simplifying the algorithm complexity and reducing the chip area.
Smart Images

Figure CN116566410B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to a receiving device and an eye pattern based control parameter adjustment method. BACKGROUND
[0002] A transmitting device can transmit a signal (input signal) to a receiving device through a channel. A receiving circuit of the receiving device can process the input signal according to control parameters to generate recovered data. Most of the existing receiving devices use signal theory based adaptive algorithms to dynamically adjust the control parameters of the receiving circuit, such as using a Least Mean Square (LMS) algorithm (e.g. SS-LMS algorithm). Such algorithms are relatively complex and require a large chip area. Furthermore, because of the interaction between the parameters, different bandwidths and calibration sequences often result in different results. It is difficult for the existing receiving devices to control the balance between the parameters and obtain stable and optimized results. SUMMARY
[0003] The present application relates to a receiving device and an eye pattern based control parameter adjustment method to determine optimized control parameters of a receiving circuit.
[0004] In an embodiment according to the present application, the eye pattern based control parameter adjustment method comprises: performing an iteration operation by a control circuit to determine optimized control parameters; and updating current control parameters of the receiving circuit to the optimized control parameters after the iteration operation is completed. The iteration operation comprises: updating the current control parameters of the receiving circuit to candidate control parameters, so that the receiving circuit processes the input signal according to the current control parameters to generate recovered data; checking the size relationship between an optimized eye mask and a current eye pattern corresponding to the recovered data; when the optimized eye mask conflicts with the current eye pattern, maintaining the optimized eye mask and the optimized control parameters corresponding to the optimized eye mask; and when the optimized eye mask does not conflict with the current eye pattern, generating a new eye mask larger than the optimized eye mask according to the current eye pattern, updating the optimized eye mask to the new eye mask, and updating the optimized control parameters to the candidate control parameters corresponding to the new eye mask.
[0005] In an embodiment according to the present application, the receiving device comprises a receiving circuit and a control circuit. The receiving circuit processes the input signal according to the current control parameter to generate the recovered data. The control circuit is coupled to the receiving circuit to provide the current control parameter. The control circuit performs an iteration operation to determine the optimized control parameter, and updates the current control parameter of the receiving circuit to the optimized control parameter after the iteration operation is completed. The iteration operation comprises: updating the current control parameter of the receiving circuit to a candidate control parameter; checking the size relationship between the optimized eye mask and the current eye diagram corresponding to the recovered data; maintaining the optimized eye mask and the optimized control parameter corresponding to the optimized eye mask when the optimized eye mask violates the current eye diagram; and when the optimized eye mask does not violate the current eye diagram, generating a new eye mask larger than the optimized eye mask according to the current eye diagram, updating the optimized eye mask to the new eye mask, and updating the optimized control parameter to the candidate control parameter corresponding to the new eye mask.
[0006] Based on the above, the receiving device according to the embodiments of the present application can perform the eye diagram based control parameter adjustment method. The control circuit can compare the optimized eye mask and the current eye diagram. When the optimized eye mask is smaller than the current eye diagram (i.e. the optimized eye mask is completely located within the closed region formed by the inner boundary of the current eye diagram), the control circuit can adjust the optimized eye mask according to the current eye diagram. The control circuit can sweep a plurality of candidate control parameters to find the candidate control parameter with the largest eye mask as the optimized control parameter. BRIEF DESCRIPTION OF DRAWINGS
[0007] Figure 1 is a circuit block diagram of a receiving device according to an embodiment of the present application.
[0008] Figure 2 is a flowchart diagram of an eye diagram based control parameter adjustment method according to an embodiment of the present application.
[0009] Figure 3 is a flowchart diagram of an eye diagram based iteration operation according to an embodiment of the present application.
[0010] Figure 4 is a diagram illustrating a current eye diagram and an optimized eye mask according to an embodiment of the present application.
[0011] Figure 5 is a diagram illustrating a current eye diagram and an optimized eye mask according to another embodiment of the present application.
[0012] Figure 6 is a diagram illustrating a current eye diagram and an optimized eye mask according to an embodiment of the present application, Figure 1Circuit block schematic of a receive circuit as shown.
[0013] Figure 7 State flow diagram of an eye-based control parameter optimization method according to an embodiment of the application.
[0014] Figure 8 State flow diagram of a clue optimization according to an embodiment of the application, Figure 7
[0015] Figure 9 State flow diagram of a table traversal state machine according to an embodiment of the application.
[0016] Figure 10 State flow diagram of an eye mask check state machine according to an embodiment of the application.
[0017] Figure 11 State flow diagram of an eye detection point check state machine according to an embodiment of the application.
[0018] Figure 12 State flow diagram of an eye margin scan state machine according to an embodiment of the application.
[0019] Figure 13 Diagram of a current eye margin and threshold according to an embodiment of the application.
[0020] Figure 14 State flow diagram of an amplitude check state machine according to an embodiment of the application.
[0021] Figure 15 State flow diagram of an amplitude detection state machine according to an embodiment of the application.
[0022] Figure 16 State flow diagram of a fine optimization according to an embodiment of the application, Figure 7
[0023] Figure 17 State flow diagram of a perturbation optimization according to an embodiment of the application, Figure 7
[0024] Figure 18 State flow diagram of a table perturbation state machine according to an embodiment of the application.
[0025] Figure 19 State flow diagram of a perturbation check state machine according to an embodiment of the application.
[0026] BRIEF DESCRIPTION OF THE DRAWINGS
[0027] 10: transmitting device
[0028] 20: channel
[0029] 100: receiving device
[0030] 110: receiving circuit
[0031] 111: on-die termination load circuit (ODT)
[0032] 112: continuous time linear equalizer (CTLE)
[0033] 113: variable gain amplifier (VGA)
[0034] 114: decision feedback equalizer (DFE)
[0035] 115: serial-to-parallel (S2P) converter
[0036] 116: clock data recovery (CDR) circuit
[0037] 117: summing circuit
[0038] 118: phase interpolator (PIs)
[0039] 120: control circuit
[0040] 130: functional circuit
[0041] 400, 500: current eye diagram
[0042] 410, 510: optimized eye diagram mask
[0043] 420: new eye diagram mask
[0044] 430: maximum eye diagram mask
[0045] A, B: amplitude points
[0046] all_ones, all_zero_a, all_zeros, amp_chk_bypass, ctle_perturbation_bypass, ctle_sweep_byass, eye_mask_pass, eye_nx, eye_rerun, eye_scan_nx, fine_bypass, idx_nx, perturbation_bypass, perturbation_exit, perturbation_freeze, point_a_check, point_b_check, tap1_perturbation_bypass, tap1_sweep_bypass, vaild, vga_perturbation_bypass, vga_sweep_bypass: parameters
[0047] amp_chk_num, ber_dat_num, eye_max, idx_end, iter_num: threshold values
[0048] ck_0, ck_90, ck_190, ck_270, ck_s2p: clock signals
[0049] ctle[l:0], pi[i:0], tap1[n:0], tapn[n:0], vga[m:0], vref[j:0]: control parameters
[0050] dat_cnt, err_cnt, iter_cnt: count values
[0051] data[k:0], error[k:0]: parallel data
[0052] Dout: recovered data
[0053] err_dat_num: cumulative value
[0054] idx_eye_pt: pointer
[0055] pi_dat[i:0], pi_err[i:0]: control signals
[0056] RXP, RXN: differential signals
[0057] SC: current control parameter
[0058] Sin: input signal
[0059] S210 to S220, S310 to S370: steps
[0060] S710-S750, S810-S830, S910-S990, S1010-S1050, S1110, S1210-S1250, S1410-S1460, S1510-S1520, S1610-S1680, S1710-S1780, S1810-S1850, S1910-S1970: state DETAILED DESCRIPTION
[0061] Reference will now be made in detail to the exemplary embodiments of the present application, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the description to refer to the same or like parts.
[0062] The term "coupled" or "connected" used in the detailed description section of the present application and in the claims, if any, means any direct or indirect coupling or connection. For example, if a first device is coupled or connected to a second device, it can be directly connected to the second device or through some other device or coupling or connection, so that while there can be an electrical or physical direct connection between the first device and the second device, there can also be an electrical or physical coupling having other devices or connections intervening therebetween. The terms "first", "second", and the like used in the detailed description section of the present application and in the claims, if any, are used to name components, or to distinguish components from one another, and are not necessarily used to describe a number or amount of components or to describe a sequence or chronological order of components. Further, where possible, identical reference numerals are used in the drawings and the description to refer to the same or like parts.
[0063] Figure 1 is a circuit block diagram of a receiving device 100 according to an embodiment of the present application. The transmitting device 10 can transmit a signal (input signal Sin) to the receiving device 100 through a channel 20. In the receiving device 100, the input signal Sin received through the channel 20 is converted into a digital signal by an A / D converter 110, and the converted digital signal is input to a channel equalizer 120. Figure 1In the illustrated embodiment, the receiving device 100 includes a receiving circuit 110, a control circuit 120, and a functional circuit 130. The control circuit 120 is coupled to the receiving circuit 110 to provide a current control parameter SC. The receiving circuit 110 can process an input signal Sin of the channel 20 in accordance with the current control parameter SC to generate recovered data Dout to the functional circuit 130. The present embodiment does not limit the implementation details of the receiving circuit 110 and the functional circuit 130. For example, in some embodiments, the receiving circuit 110 can include on-chip termination load circuit, decision feedback equalizer (DFE), variable gain amplifer (VGA), continuous time linear equalizer (CTLE), serial to parallel (S2P) converter, clock data recovery (CDR) circuit, phase interpolator (PI), and / or other receiving interface circuit.
[0064] Figure 2 is a flow diagram of an eye diagram based control parameter adjustment method according to an embodiment of the present application. Please refer to Figure 1 and Figure 2 In step S210, the control circuit 120 can perform an eye diagram based iterative operation to determine an optimized control parameter. The control circuit can sweep a plurality of candidate control parameters in the iterative operation to find a candidate control parameter with a largest eye mask as the optimized control parameter. After the iterative operation is completed, the control circuit 120 can update the current control parameter SC of the receiving circuit 110 to the optimized control parameter (step S220). Accordingly, the receiving circuit 110 can process the input signal Sin of the channel 20 in accordance with the optimized control parameter to generate the recovered data Dout to the functional circuit 130.
[0065] Figure 3 is a flow diagram of an eye diagram based iterative operation according to an embodiment of the present application. Figure 2 The iterative operation of step S210 can refer to the related description of Figure 3 Please refer to Figure 1 and Figure 3In step S310, the control circuit 120 can update the current control parameter SC of the receiving circuit 110 to any candidate control parameter, so that the receiving circuit 110 processes the input signal Sin according to the current control parameter SC to generate the recovered data Dout. In step S320, the control circuit 120 can check the size relationship between the optimized eye diagram mask and the current eye diagram corresponding to the recovered data Dout. In the first iteration of the iterative operation, the "optimized eye diagram mask" can be set as an initial eye diagram mask. For example, the initial eye diagram mask can be a minimum eye diagram mask determined according to the actual design. Corresponding to the initial eye diagram mask, in the first iteration of the iterative operation, the "optimized control parameter" can be set as an initial control parameter, which can be determined according to the actual design.
[0066] Figure 4 This is a schematic diagram illustrating the current eye diagram 400 and the optimized eye diagram mask 410 according to an embodiment of the present invention. Figure 4 In the embodiment shown, the geometry of the optimized eye mask 410 is rhomboid, while Figure 4 The vertices of the rhombus (optimized eye diagram mask 410) shown are labeled A, B, C, and D, respectively. In other embodiments, the optimized eye diagram mask 410 may be rectangular, elliptical, or other geometric shapes. For example, Figure 5 This is a schematic diagram illustrating the current eye diagram 500 and the optimized eye diagram mask 510 according to another embodiment of the present invention. Figure 5 In the illustrated embodiment, the geometry of the optimized eye mask 510 is hexagonal, while Figure 5 The vertices of the hexagon shown (optimized eye mask 510) are labeled as A, B, C, D, E and F, respectively. Figure 5 The current eye diagram 500 and the optimized eye mask 510 shown can be used as a reference. Figure 4 The descriptions of the current eye diagram 400 and the optimized eye diagram mask 410 are shown below, and further explanations can be drawn from them.
[0067] Please refer to Figure 1 , Figure 3 and Figure 4In step S320, the control circuit 120 can check the size relationship between the optimized eye mask 410 and the current eye 400 corresponding to the recovered data Dout. For example, the control circuit 120 can check whether each of the vertices A, B, C and D of the optimized eye mask 410 exceeds the inner boundary of the current eye 400. When any of the vertices A, B, C and D exceeds the inner boundary of the current eye 400, the control circuit 120 can determine that the optimized eye mask 410 violates the current eye 400. When the optimized eye mask 410 violates the current eye 400 (the determination result of step S330 is "Yes"), the control circuit 120 can maintain the optimized eye mask 410 and the optimized control parameter corresponding to the optimized eye mask 410, and proceed to step S360. When the optimized eye mask 410 does not violate the current eye 400 (the determination result of step S330 is "No"), the control circuit 120 can proceed to step S340 to generate a new eye mask 420 larger than the optimized eye mask 410 according to the current eye 400. Figure 4 The vertices of the new eye mask 420 are denoted as A', B', C' and D', respectively. In step S350, the control circuit 120 can update the optimized eye mask 410 to the new eye mask 420, and update the optimized control parameter to the candidate control parameter corresponding to the new eye mask 420.
[0068] In step S360, the control circuit 120 can determine whether all candidate control parameters have been selected. When there is still a candidate control parameter not selected (the determination result of step S360 is "No"), the control circuit 120 can proceed to step S370. In step S370, the control circuit 120 can select a next candidate control parameter from the candidate control parameters not selected, so as to perform steps S310-S360 again.
[0069] Based on the above, the receiving device 100 according to the embodiments of the present application can perform the eye-based control parameter adjustment method. The control circuit 120 can compare the optimized eye mask 410 with the current eye 400. When the optimized eye mask 410 is smaller than the current eye 400 (i.e., the optimized eye mask 410 is completely located within the closed region formed by the inner boundary of the current eye 400), the control circuit 120 can enlarge the optimized eye mask 410 according to the current eye 400. The control circuit 120 can sweep the candidate control parameters to find the candidate control parameter with the largest eye mask as the optimized control parameter.
[0070] According to actual design, the receiving circuit 110 can be any signal receiving interface circuit. For example, Figure 6 is shown according to an embodiment of the present application, Figure 1A circuit block diagram of the receive circuit 110 is shown. In Figure 6 In the embodiment shown, the receive circuit 110 includes an on die termination (ODT) circuit 111, a continuous time linear equalizer (CTLE) 112, a variable gain amplifier (VGA) 113, a decision feedback equalizer (DFE) 114, a serial-to-parallel (S2P) converter 115, a clock data recovery (CDR) circuit 116, a summing circuit 117, and phase interpolators (PIs) 118. The input of the continuous time linear equalizer 112 receives differential signals RXP and RXN (input signal Sin) from the channel 20. The control terminal of the continuous time linear equalizer 112 is coupled to the control circuit 120 to receive a control parameter ctle[l:0] (one of the current control parameters SC). The output of the continuous time linear equalizer 112 is coupled to the input of the variable gain amplifier 113. The control terminal of the variable gain amplifier 113 is coupled to the control circuit 120 to receive a control parameter vga[m:0] (one of the current control parameters SC). The output of the variable gain amplifier 113 is coupled to the input of the decision feedback equalizer 114.
[0071] In Figure 6 In the embodiment shown, the decision feedback equalizer 114 is an n-tap decision feedback equalizer, where n can be any integer as determined by the actual design. The control terminal of the decision feedback equalizer 114 is coupled to the control circuit 120 to receive control parameters tap1[n:0],..., tapn[n:0] (n of the current control parameters SC) and a control parameter vref[j:0] (one of the current control parameters SC). The output of the decision feedback equalizer 114 is coupled to the input of the serial-to-parallel converter 115. The serial-to-parallel converter 115 outputs parallel data error[k:0] and data[k:0] (recovered data Dout) to the functional circuit 130 and the control circuit 120.
[0072] The input of the clock data recovery circuit 116 is coupled to the output of the serial-to-parallel converter 115 to receive the parallel data error[k:0] and data[k:0]. The adder circuit 117 and the phase interpolator 118 are coupled to the output of the clock data recovery circuit 116 to receive the control signal pi dat[i:0]. The adder circuit 117 is also coupled to the control circuit 120 to receive the control parameter pi[i:0] (one of the control parameters in the control parameter SC). The phase interpolator 118 is also coupled to the adder circuit 117 to receive the control signal pi err[i:0]. The phase interpolator 118 generates the sampling clock for the decision feedback equalizer 114 and the serial-to-parallel converter 115 according to the different phase clock signals ck_0, ck_90, ck_190 and ck_270.
[0073] Figure 7 Fig. 7 is a state flow diagram of an eye diagram based control parameter optimization method according to an embodiment of the present application. Figure 7 The embodiment shown includes two foreground optimization states and one background optimization state. The foreground optimization includes a hint optimization in state S710 and a fine optimization in state S730. The foreground optimization can use the training data for control parameter optimization. The hint optimization in state S710 will be described in detail in Figure 8 the embodiment shown. After the completion of state S710, the system enters state S720 to generate a hint results record. The hint results record (the result generated in state S710) will be used as the initial value for the next optimization state (state S730). The fine optimization in state S730 will be described in detail in Figure 16 the embodiment shown. After the completion of state S730, the system enters state S740 to generate a fine results record. The fine results record (the result generated in state S730) will be used as the initial value for the next optimization state (state S750). The background optimization state includes a perturbation optimization in state S750. The perturbation optimization in state S750 will be described in detail in Figure 17 the embodiment shown. The background optimization is started when the receiving device 100 enters the normal data transmission and remains working (or can be turned off). The background optimization state can use the normal transmission data for control parameter optimization.
[0074] Depending on different configurations, either of state S730 (fine optimization) and state S750 (perturbation optimization) can be bypassed. For example, when the parameter fine_bypass in Figure 7 is 1, fine optimization (state S730) will not be performed. Similarly, when the parameter perturbation_bypass in Figure 7 is 1, perturbation optimization (state S750) will not be performed. When fine optimization is bypassed, the fine result record recorded in state S740 is the clue result record recorded in state S720, including the optimal parameter index after clue optimization and the corresponding optimized eye diagram mask.
[0075] Figure 8 is illustrated according to an embodiment of the present application, Figure 7 is a state flow diagram of clue optimization (state S710). Figure 8 The clue optimization shown in FIG. 7 (i.e., state S710) can be used to search for an optimal set of parameter values from a plurality of sets of pre-set parameter value combinations, to serve as initial parameter values for subsequent fine optimization (i.e., state S730 shown in FIG. 8). Control circuit 120 can perform Figure 7 The clue optimization shown in FIG. 7 (i.e., state S710) can be used to search for an optimal set of parameter values from a plurality of sets of pre-set parameter value combinations, to serve as initial parameter values for subsequent fine optimization (i.e., state S730 shown in FIG. 8). Control circuit 120 can perform Figure 7 The clue optimization shown in FIG. 7 (i.e., state S710) can be used to search for an optimal set of parameter values from a plurality of sets of pre-set parameter value combinations, to serve as initial parameter values for subsequent fine optimization (i.e., state S730 shown in FIG. 8). Control circuit 120 can perform Figure 8 The clue optimization shown in FIG. 7 (i.e., state S710) can be used to search for an optimal set of parameter values from a plurality of sets of pre-set parameter value combinations, to serve as initial parameter values for subsequent fine optimization (i.e., state S730 shown in FIG. 8). Control circuit 120 can perform Figure 9 The clue optimization shown in FIG. 7 (i.e., state S710) can be used to search for an optimal set of parameter values from a plurality of sets of pre-set parameter value combinations, to serve as initial parameter values for subsequent fine optimization (i.e., state S730 shown in FIG. 8). Control circuit 120 can perform
[0076] Table 1: Hint table
[0077]
[0078] The different parameter index fields of Table 1 record the indexes of different control parameter tables, and the different control parameter tables are used to record the control parameters of different component circuits of the receiving circuit 110. For example, the parameter index field Index_vga of Table 1 records the index value in the index field Index_vga of the VGA table (control parameter table) shown in Table 2 below; the parameter index field Index_ctle of Table 1 records the index value in the index field Index_ctle of the CTE table (control parameter table) shown in Table 3 below; and the parameter index field Index_dfe of Table 1 records the index value in the index field Index_dfe of the DFE table (control parameter table) shown in Table 4 below. The VGA table shown in Table 2 is used to record the control parameters vga[m:0] of the variable gain amplifier 113. For example, the control parameter vga[m:0] pointed to by the index "0" shown in Table 2 is "vga_0", and the control parameter vga[m:0] pointed to by the index "15" shown in Table 2 is "vga_15". The "vga_0" and "vga_15" shown in Table 2 respectively represent any real number determined according to actual design. The CTE table shown in Table 3 is used to record the control parameters ctle[l:0] of the continuous time linear equalizer 112. For example, the control parameter ctle[l:0] pointed to by the index "0" shown in Table 3 is "ctle_0", and the control parameter ctle[l:0] pointed to by the index "15" shown in Table 3 is "ctle_15". The "ctle_0" and "ctle_15" shown in Table 3 respectively represent any real number determined according to actual design. The DFE table shown in Table 4 is used to record the control parameters tap1[n:0] of the decision feedback equalizer 114. For example, the control parameter tap1[n:0] pointed to by the index "0" shown in Table 4 is "tap1_0", and the control parameter tap1[n:0] pointed to by the index "15" shown in Table 4 is "tap1_15". The "tap1_0" and "tap1_15" shown in Table 4 respectively represent any real number determined according to actual design.
[0079] Table 2: VGA table (control parameter table)
[0080] Table 3: CTE table (control parameter table)
[0081] Table 4: DFE table (control parameter table)
[0082]
[0083]
[0084] Based on the current eye diagram size 400 set according to any parameter index combination (control parameter combination) pointed to by the index_hint field of the clue table shown in Table 1, the state machine traversing the table can search for the control parameter combination with the best performance. Figure 8 The initialization operation in state S810 is used to set the starting thread index, ending thread index, and thread index step size for the `index_hint` field in the thread table shown in Table 1. State S810 can also set the "optimized eye diagram mask" to a pre-defined initial eye diagram mask, which can be determined according to the actual design. The thread table traversal operation in state S820 can call the table traversal state machine (see details). Figure 9 (Explanation) The control circuit 120 iterates through the clue table shown in Table 1 to perform the iterative operation on the clue table shown in Table 1. For example, the control circuit 120 can select one (hereinafter referred to as the selected clue index) from multiple clue indices (e.g., 0 to 15, but not limited thereto) in the clue index field index_hint shown in Table 1 according to the start clue index, the end clue index, and the clue index step size. The control circuit 120 can extract multiple parameter indices corresponding to the selected clue index from the multiple parameter index fields Index_vga, Index_ctle, and Index_dfe of the clue table shown in Table 1, wherein these parameter indices indicate multiple control parameters in multiple control parameter tables. The control circuit 120 can use the multiple control parameters in these control parameter tables indicated by these parameter indices as... Figure 3 The candidate control parameters.
[0085] For example, control circuit 120 can select clue index "0" from the clue index field index_hint shown in Table 1, and then extract the parameter indices Index_vga_0, Index_ctle_0, and Index_dfe_0 corresponding to the selected clue index "0" from multiple parameter index fields Index_vga, Index_ctle, and Index_dfe in the clue table shown in Table 1. It is assumed (but not limited to) that the parameter indices Index_vga_0, Index_ctle_0, and Index_dfe_0 are all index values "0". Control circuit 120 can use the control parameter vga_0 in the VGA table (control parameter table) shown in Table 2, pointed to by the index value "0" of the parameter index field Index_vga, as... Figure 3one of the candidate control parameters. The control circuit 120 can use the control parameter ctle_0 in the CTLE table (control parameter table) shown in Table 3 indicated by the index value "0" of the parameter index field Index_ctle as the control parameter of the candidate control parameters. Figure 3 one of the candidate control parameters. The control circuit 120 can use the control parameter tap1_0 in the DFE table (control parameter table) shown in Table 4 indicated by the index value "0" of the parameter index field Index_dfe as the control parameter of the candidate control parameters. Figure 3 one of the candidate control parameters.
[0086] After traversing the plurality of clue indexes in the clue index field index_hint of the clue table shown in Table 1, the control circuit 120 can search for a set of parameter index combinations that can give the largest eye diagram as the optimized clue index. After the state S820 is completed, the control circuit 120 can enter the state S830 to generate a clue result record. The clue result record recorded in the state S830 (the optimized eye diagram mask 410 found in the state S820 and the optimized control parameters corresponding to the optimized eye diagram mask 410) can be used in the later state S730 (fine optimization).
[0087] Figure 9 is a state flow diagram of a table traversal state machine according to an embodiment of the present application. Figure 8 the state S820 (clue table traversal operation) and Figure 7 the table traversal operation performed on different control parameter tables in the state S730 (fine optimization) (see Figure 15 the embodiment shown in FIG. 8), can invoke Figure 9 the table traversal state machine to search for the optimal value of each parameter. When Figure 8 the state S820 invokes Figure 9 the table traversal state machine, the traversal object (target table) of the table traversal state machine is the clue table shown in Table 1. When Figure 15 the table traversal operation of the embodiment shown in FIG. 8 invokes Figure 9 the table traversal state machine, the traversal object (target table) of the table traversal state machine is the control parameter table shown in Table 2, Table 3 or Table 4. According to the state (parent state) that invokes the table traversal state machine, Figure 9 the initialization operation of the state S910 can set / load the start index, the end index, the index step and the initial eye diagram mask related to the target table.
[0088] After the initial value loading is completed (state S910), the control circuit 120 can enter state S920 to perform an eye mask check operation. The state S920 can invoke an eye mask check state machine to check whether the current eye diagram 400 under the current parameter index setting can pass the detection of the optimized eye diagram mask 410. For example, the state S920 can compare the current eye diagram 400 with the optimized eye diagram mask 410. If the current eye diagram 400 is greater than or equal to the optimized eye diagram mask 410, the control circuit 120 can consider that the detection of the state S920 is passed (otherwise, the control circuit 120 considers that the detection is not passed). The details of the eye mask check state machine invoked by the state S920 can be referred to the description of the related embodiments shown in FIG. 10. Figure 10
[0089] Figure 10 FIG. 11 is a state flow diagram of an eye mask check state machine according to an embodiment of the present application. The details of the eye mask check state machine can be referred to the description of the related embodiments shown in FIG. 10. Figure 10 The initialization operation of the state S1010 can set the initial eye diagram mask as the current eye diagram mask in the state (parent state) invoking the eye mask check state machine (e.g. the state S920). The details of the eye mask check state machine can be referred to the description of the related embodiments shown in FIG. 10. Figure 4 Figure 4 Figure 10 The control circuit 120 can perform an eye point check in the state S1020. The state S1020 can detect whether one of the vertices (the current detection point) A, B, C and D of the optimized eye diagram mask 410 is inside the inner boundary of the current eye diagram 400. For example, the state S1020 can invoke an eye point check state machine to perform the eye point check on the current detection point of the optimized eye diagram mask 410. Figure 11 FIG. 12 is a state flow diagram of an eye point check state machine according to an embodiment of the present application. The details of the eye point check state machine can be referred to the description of the related embodiments shown in FIG. 10.
[0090] Figure 11 FIG. 12 is a state flow diagram of an eye point check state machine according to an embodiment of the present application. The details of the eye point check state machine can be referred to the description of the related embodiments shown in FIG. 10. Figure 4 Figure 11 Figure 11 The eye pattern detection point check state machine is used to check whether the parallel data data[k:0] and error[k:0] (recovered data Dout) output by the receiving circuit 110 at the top points (detection points) A, B, C and D of the optimized eye pattern mask 410 are the same. Whenever the rising edge of the clock signal ck_s2p output by the serial-to-parallel converter 115 comes, the control circuit 120 can enter the state S1110 to perform a data compare operation. The state S1110 is used to compare whether the bits corresponding to the parallel data data[k:0] and error[k:0] are consistent, and accumulate the number of inconsistent bits, i.e. err_cnt = sum(data[19:0]^error[19:0])+err_cnt, where err_cnt is the inconsistent bit count value. Figure 11 The dat_cnt is the accumulated value of the number of bits of the parallel data data[k:0], i.e. dat_cnt = dat_cnt+(k+1). Assuming that the parallel data data[k:0] is 20-bit data, i.e. assuming that k is 19 (data[19:0]), the accumulated value dat_cnt = dat_cnt+20. If the control circuit 120 judges in the state S1110 that the accumulated value dat_cnt is less than a threshold value ber_dat_num (the threshold value ber_dat_num can be determined according to actual design) and the inconsistent bit count value err_cnt is 0, the control circuit 120 can perform the comparison in the next round (next clock cycle). If the accumulated value dat_cnt is greater than or equal to the threshold value ber_dat_num or the inconsistent bit count value err_cnt is not 0, the eye pattern detection point check state machine can enter an end state (return to the parent state).
[0091] Please refer to Figure 10After state S1020 is completed, the control circuit 120 can check the inconsistent bit count value err_cnt. If the vertices (detection points) A, B, C, and D of the optimized eye mask 410 are inside the inner boundary of the current eye diagram 400 (err_cnt is 0), the control circuit 120 can enter state S1030 to perform an eye point update operation. Otherwise, the control circuit 120 can enter state S1050 to perform a results return operation. State S1030 is used to update the current eye diagram detection points for the next detection point check. If all the vertices (detection points) A, B, C, and D on the optimized eye mask 410 have not been traversed (the pointer idx_eye_pt is less than 4), the control circuit 120 can enter state S1020 again to perform eye point check on the next detection point. If all the vertices (detection points) A, B, C, and D on the optimized eye mask 410 have been traversed (the pointer idx_eye_pt is greater than or equal to 4), the control circuit 120 can enter state S1040 to update the eye mask check times. State S1040 records the count value iter_cnt of the number of times the entire "eye mask check" flow is repeated. If the count value iter_cnt is less than the preset loop number (threshold iter_num), the entire "eye mask check" flow continues to repeat until the preset loop number (the count value iter_cnt is greater than or equal to the threshold iter_num) is completed. When the count value iter_cnt is greater than or equal to the threshold iter_num, the control circuit 120 can enter state S1050 to return the results of the "eye mask check" of the eye mask check state machine to the parent state. If the results of the "eye mask check" are passed, the parameter eye_mask_pass is set to 1, otherwise the parameter eye_mask_pass is set to 0.
[0092] Please refer to Figure 9If the result of the check in state S920 is "No" (the optimized eye mask 410 conflicts with the current eye 400), the parameter eye_mask_pass is 0. If the eye mask check fails (i.e., the parameter eye_mask_pass is 0) and it is the last eye mask check (i.e., the parameter eye_rerun is 1), the control circuit 120 enters the next state S990 to perform a result back operation. The control circuit 120 can return the result of the "table traversal state machine" (the current optimal parameter index and the eye mask under the parameter index setting) to the parent state in state S990. If the eye mask check fails (i.e., the parameter eye_mask_pass is 0) and it is not the last eye mask check (i.e., the parameter eye_rerun is 0), the control circuit 120 can perform an index update (i.e., state S950), an amplitude check (i.e., state S955), and an index average (i.e., state S960) operation according to different settings of the parameters idx_nx and amp_chk_bypass. For example, when the parameter eye_mask_pass is 0 and the parameter eye_rerun is 0 and the parameter idx_nx is less than or equal to a threshold idx_end, the control circuit 120 can enter state S950. The threshold idx_end can be any real number determined according to the actual design. When the parameter eye_mask_pass is 0 and the parameter eye_rerun is 0 and the parameter idx_nx is greater than the threshold idx_end and the parameter amp_chk_bypass is 0, the control circuit 120 can enter state S955. When the parameter eye_mask_pass is 0 and the parameter eye_rerun is 0 and the parameter idx_nx is greater than the threshold idx_end and the parameter amp_chk_bypass is 1, the control circuit 120 can enter state S960.
[0093] If the result of the check in state S920 is "Yes" (the optimized eye mask 410 does not conflict with the current eye 400), the parameter eye_mask_pass is 1, causing the control circuit 120 to enter state S930 to perform an eye boundary scan operation. State S930 is used to detect the inner boundary of the current eye 400. State S930 can invoke an eye boundary scan state machine to search for the inner boundary of the eye under the current parameter index setting, and enter state S940 to perform an eye mask and optimal index update operation after the eye boundary scan state machine is completed. The details of the eye boundary scan state machine invoked by state S930 can be found in Figure 12The relevant description of the illustrated embodiment.
[0094] Figure 12 is shown in accordance with an embodiment of the present application, a state flow diagram of an eye scan state machine. Figure 12 The initialization operation of the illustrated state S1210 can load the detection points of the initial eye mask set by the parent state (e.g. Figure 4 The vertices A, B, C and D of the illustrated optimized eye mask 410), and set the eye step. Please refer to Figure 4 and Figure 12 The control circuit 120 can take the optimized eye mask 410 as the current eye mask. Figure 12 The illustrated parameter eye_scan_nx can represent the X-axis coordinate or the Y-axis coordinate of one of the vertices of the current eye mask. If the current eye mask is greater than the preset maximum eye mask 430 (i.e. eye_scan_nx > eye_max), the control circuit 120 enters the next state S1250 to perform a result return operation to return the result of the "eye scan state machine" to the parent state. The maximum eye mask 430 can be set according to the actual design. Figure 12 The illustrated threshold value eye_max can represent the X-axis coordinate or the Y-axis coordinate of one of the vertices of the maximum eye mask 430. If the parameter eye_scan_nx is greater than the threshold value eye_max, the control circuit 120 can determine that the current eye mask is greater than the maximum eye mask 430.
[0095] If the current eye mask is less than or equal to the preset maximum eye mask 430 (i.e. eye_scan_nx <= eye_max), the control circuit 120 enters the next state S1220 to perform a current eye mask update (eye update) operation. The state S1220 is used to update the current eye mask in order to perform the next round of eye detection. The control circuit 120 can increase the current eye mask in the state S1220. For example, the control circuit 120 can increase the optimized eye mask 410 (the current eye mask) by one step as a new eye mask 420, and then update the current eye mask to the new eye mask 420. In detail, the control circuit 120 can decrease the vertices A and D of the optimized eye mask 410 by one eye step as the vertices A' and D' of the new eye mask 420, and increase the vertices B and C of the optimized eye mask 410 by one eye step as the vertices B' and C' of the new eye mask 420. Therefore, the control circuit 120 can increase the current eye mask from the optimized eye mask 410 to the new eye mask 420 in the state S1220.
[0096] After completing state S1220, control circuit 120 can enter state S1230 to perform eye diagram mask inspection. State S1230 can call... Figure 10 The eye diagram mask check state machine checks whether the current eye diagram 400 under the current parameter index setting can pass the current eye diagram mask updated (enlarged) by state S1220 (e.g., Figure 4 The detection of the new eye mask (420) is shown. The eye mask checking state machine can return the result of the "eye mask check" to the parent state (state S1230). If the result of the "eye mask check" is passed, the parameter eye_mask_pass is set to 1; otherwise, the parameter eye_mask_pass is set to 0. When the parameter eye_mask_pass is 1 and the current eye mask is less than or equal to the maximum eye mask 430 (eye_scan_nx <= eye_max), the control circuit 120 can enter state S1220 again to update (increase) the current eye mask, for example, by increasing its size. Figure 4 The new eye map mask 420 is shown for the next round of eye map detection.
[0097] If the current eye mask is larger than the maximum eye mask 430 (eye_scan_nx > eye_max), the control circuit 120 can enter the next state S1250 to return the result of the "eye scan state machine" to the parent state, and then end the search for the maximum mask. If the parameter eye_mask_pass is 0 (the result of the "eye mask check" is a failure), the control circuit 120 can enter the next state S1240 to perform an eye mask rollback operation. Because the current eye mask failed the detection of the current eye diagram 400, it is necessary to revert the current eye mask back to the eye mask in the previous round of detection (e.g., reduce the current eye mask by one step), and set the candidate parameter index back to the parameter index in the previous round of detection. After completing state S1240, the control circuit 120 can enter state S1250 to return the result of the "eye scan state machine" to the parent state. The result of the "eye scan state machine" includes an optimized candidate eye map mask, which is the "current eye map mask" that is closest to the inner boundary of the current eye map within 400.
[0098] Please refer to Figure 9After state S930 is completed, the control circuit 120 can enter state S940 to perform eye mask and optimized index update operation. State S940 can use the current candidate parameter index from the eye detection as the optimized index, and update the optimized eye mask to the optimized candidate eye mask from state S930. If the previous eye detection is the last eye detection (i.e., parameter eye_rerun is 1), the control circuit 120 can enter the next state S990 to perform result back operation. The control circuit 120 can perform the result back operation of the "table traversal state machine" to the parent state in state S990, which includes the current optimal parameter index and the eye mask under the parameter index setting.
[0099] After state S940 is completed, if the parameter eye_rerun is 0, and the next eye mask is greater than the maximum eye mask 430 (i.e., parameter eye_nx > eye_max) or all parameter indexes have been traversed (i.e., idx_nx > idx_end), the control circuit 120 can perform either the amplitude check operation (state S955) or the index average operation (state S960) according to the parameter amp_chek_bypass setting. For example, when the parameter amp_chek_bypass is 0, the control circuit 120 can enter state S955. When the parameter amp_chek_bypass is 1, the control circuit 120 can enter state S960. After state S940 is completed, if the parameter eye_rerun is 0, and the next eye mask is less than or equal to the maximum eye mask 430 (i.e., eye_nx <= eye_max) and all indexes have not been traversed (i.e., idx_nx <= idx_end), the control circuit 120 can enter state S950 to perform index update operation. In state S950, the current parameter index is updated to the new parameter index (idx_nx) so that the eye detection is performed using the control parameters corresponding to the next parameter index idx_nx. After the parameter index update is completed, the control circuit 120 can return to state S920 (eye mask check).
[0100] State S955 (amplitude check) can invoke the amplitude check state machine to check whether the height / amplitude of the current eye 400 under the current index setting exceeds a pre-set value. Figure 13 is a diagram illustrating the amplitude of the current eye 400 and a threshold value according to an embodiment of the present application. The amplitude check state machine can be used to detect whether the outer boundary of the current eye 400 under the current control parameter SC setting is within the threshold value (e.g., amplitude point A and amplitude point B). Figure 14 Figure 13 The amplitude points A, B are set at the middle of the eye diagram in the horizontal direction. The positions of the amplitude points A, B can be set according to the actual design. If the upper outer boundary of the current eye diagram 400 is below the amplitude point A and the lower outer boundary of the current eye diagram 400 is above the amplitude point B, the control circuit 120 can consider that the current eye diagram 400 under the current control parameter SC setting is valid, and thus the parameter valid is set to 1. If the height of the current eye diagram 400 exceeds a threshold (e.g., the amplitude points A, B), the parameter valid is 0. Thus, the control circuit 120 can check whether the amplitude of the current eye diagram 400 exceeds a threshold (e.g., the amplitude points A, B). When the amplitude of the current eye diagram 400 exceeds the threshold, the optimized eye diagram mask 410 and the optimized control parameter corresponding to the optimized eye diagram mask 410 are maintained (unchanged). The details of the amplitude check state machine invoked in the state S955 can be referred to the related description of the embodiment shown in Figure 14 The details of the amplitude check state machine invoked in the state S955 can be referred to the related description of the embodiment shown in Figure 14 The details of the amplitude check state machine invoked in the state S955 can be referred to the related description of the embodiment shown in Figure 14 The details of the amplitude check state machine invoked in the state S955 can be referred to the related description of the embodiment shown in
[0101] Figure 14 is a state flow diagram of the amplitude check state machine according to an embodiment of the present application. Figure 14 The initialization operation of the state S1410 can load the pre-set amplitude points, e.g., the amplitude points A, B shown in Figure 13 Please refer to Figure 13 and Figure 14 . The control circuit 120 can invoke the amplitude point check state machine in the state S1420 to perform the amplitude point A check operation. The state S1420 can detect whether the outer side of the current eye diagram 400 under the current control parameter SC setting is less than the amplitude point A. If the outer side of the current eye diagram 400 is less than the amplitude point A, the parameter all_zero_a is 1, otherwise the parameter all_zero_a is 0. The details of the amplitude check state machine can be referred to the related description of the embodiment shown in Figure 15 The details of the amplitude check state machine can be referred to the related description of the embodiment shown in
[0102] Figure 15 is a state flow diagram of the amplitude check state machine according to an embodiment of the present application. Figure 15The error data record operation in state S1510 can record the current parallel data error[k:0] and accumulate the number of parallel data error[k:0] that has been recorded. After completing state S1510, the control circuit 120 can enter state S1520 to perform an error data check operation. State S1520 can detect whether each bit of the recorded parallel data error[k:0] is all zeros (or all ones). If all zeros, the parameter all_zeros is set to 1. If all ones, the parameter all_ones is set to 1. When the accumulated number of the detected parallel data error[k:0] is less than or equal to a predetermined value (i.e., err_dat_num <= amp_chk_num), and the current state is S1420 using Figure 15 The amplitude detection state machine detects Figure 13 the state of the amplitude point A, and when the parallel data error[k:0] is all zeros (i.e., point_a_check & all_zeros is logically true), the control circuit 120 returns to state S1510 to perform the error data record operation. Alternatively, when the current state is S1440 using Figure 15 The amplitude detection state machine detects Figure 13 the state of the amplitude point B, and when the parallel data error[k:0] is all ones (i.e., point_b_check & all_ones is logically true), and when the accumulated number of the detected parallel data error[k:0] is less than or equal to a predetermined value (i.e., err_dat_num <= amp_chk_num), the control circuit 120 returns to state S1510 to perform the error data record operation. When the parallel data error[k:0] is not all zeros during the A point detection (i.e., point_a_check & ~all_zeros is logically true), or when the parallel data error[k:0] is not all ones during the B point detection (i.e., point_b_check & ~all_ones is logically true), or when the accumulated number of the detected parallel data error[k:0] is greater than the predetermined value (i.e., err_dat_num > amp_chk_num), the control circuit 120 ends the amplitude detection state machine and returns to the parent state.
[0103] Please refer to Figure 14After state S1420 is completed, control circuit 120 enters state S1430 to perform amplitude point A result recording operation. State S1430 can record the value of current parameter all_zero_a. If parameter all_zero_a is 0, control circuit 120 enters next state S1460 to perform result back operation to return the result of "amplitude check state machine" to the parent state. If parameter all_zero_a is 1, control circuit 120 enters next state S1440. Control circuit 120 can invoke Figure 15 the details of amplitude check state machine please refer to the related description of the embodiment shown in FIG. 14B. State S1440 can detect whether the current eye diagram 400 outside under the current control parameter SC is greater than amplitude point B. If the current eye diagram 400 outside is greater than amplitude point B, parameter all_ones_b is 1; otherwise, parameter all_ones_b is 0. State S1450 can record the value of current parameter all_ones_b. State S1460 can return the amplitude check result of "amplitude check state machine" to the parent state. If the amplitude check is passed, the parameter valid returned by amplitude check state machine to the parent state is 1 (otherwise, 0). The relationship among parameter valid, parameter all_zeros_a and parameter all_ones_b is valid = all_zeros_a & all_ones_b. Figure 15
[0104] Please refer to Figure 9 . If parameter valid of state S955 is 0 and all indexes have not been traversed (i.e., idx_nx <= idx_end), control circuit 120 enters next state S950 to perform index updating operation. If parameter valid is 0 and all indexes have been traversed (i.e., idx_nx > idx_end), control circuit 120 enters next state S970 to update the table sweep times.
[0105] If parameter valid of state S955 is 1, control circuit 120 enters next state S960 to perform index averaging operation. In state S960, the optimal index obtained in current loop of state S940 and the optimal index obtained in other loops will be put together to take average value as the final optimization result. State S970 records the count value iter_cnt generated by repeating the entire "table sweep" process. If count value iter_cnt is less than the preset loop number iter_num (i.e., iter_cnt < iter_num), control circuit 120 returns to state S910, so that Figure 9 The entire process shown will continue to repeat until the preset number of loops is completed. If the count value iter_cnt is greater than the preset number of loops (i.e., iter_cnt >= iter_num), the control circuit 120 enters the next state S980 to perform an eye rerun request operation. In state S980, the parameter eye_rerun is set to 1, and then the control circuit 120 returns to state S910. State S980 is used to initiate a request to evaluate the eye diagram size set by the parameter index after obtaining the optimal parameter index.
[0106] Please refer to Figure 7 Fine-tuning operations for state S730 may include: calling Figure 9 The state machine iterates through a set of control parameter tables (e.g., Tables 2, 3, and / or 4 above) to perform the iterative operation on a target table, determining an optimized index after traversing multiple indexes in the index field of the target table; and for other tables in the set of control parameter tables besides the target table, retrieving multiple control parameters from the other tables according to the multiple parameter indices corresponding to the optimized clue index in the clue table for multiple functional circuits of the receiving circuit. The iterative operation further includes: selecting a selected index from multiple indices in the index field of the target table according to a start index, an end index, and an index step size, wherein the multiple control parameters in the parameter field of the target table are applicable to one of the multiple functional circuits; and using a control parameter in the parameter field pointed to by the selected index as one of the candidate control parameters.
[0107] For example, the table traversal state machine can sequentially traverse each of the control parameter tables according to the set start index, end index, and index step size, such as the VGA table shown in Table 2, the CTLE table shown in Table 3, and / or the DFE table shown in Table 4. When traversing the current control parameter table, the values of the other control parameter tables that have not yet been traversed are the parameter values corresponding to the optimal parameter indices obtained from the thread tables (e.g., Table 1). For example, when traversing the VGA table shown in Table 2, the parameter values of the CTLE table shown in Table 3 and the DFE table shown in Table 4 are the parameter values corresponding to the optimal parameter indices Index_ctle and Index_dfe of the thread tables shown in Table 1 obtained in the thread optimization of state S710. When traversing each parameter, the control circuit 120 can select the optimal control parameters according to the size of the eye diagram mask to set the continuous-time linear equalizer 112, the variable gain amplifier 113, and the decision feedback equalizer 114.
[0108] Figure 16 This is illustrated according to an embodiment of the present invention.Figure 7 a fine-tuning (state S730). The state flowchart of state S730 is shown in FIG. 7B. Figure 7 The state S730 can refer to the related description of Figure 16 The state S730 can refer to the related description of Figure 6 The state S730 can refer to the related description of Figure 16 For simplicity of the description, the embodiment of state S730 only lists the table traversal operations performed on the VGA table shown in Table 2, the CTLE table shown in Table 3, and the DFE table shown in Table 4. In actual applications, the embodiment of state S730 can include more other circuit parameters that can affect the performance of the receiving circuit 110. Figure 16 The state S730 can refer to the related description of Figure 16 The state S730 can refer to the related description of
[0109] Figure 16 The initialization operation of state S1610 can set / load the start index, the end index, and the index step of the parameter index related to the VGA table, the CTLE table, and the DFE table in the fine-tuning. That is, the initialization operation can set the start index, the end index, and the index step of the parameter index field Index_vga shown in Table 2, set the start index, the end index, and the index step of the parameter index field Index_ctle shown in Table 3, and set the start index, the end index, and the index step of the parameter index field Index_dfe shown in Table 4. The initialization operation can also set the initial eye mask for the subsequent eye size comparison operation.
[0110] The VGA table traversal operation of state S1620 can call the table traversal state machine (see the description of Figure 9 The VGA table traversal operation of state S1620 can call the table traversal state machine (see the description of Figure 9(Description) Traverse the CTLE table shown in Table 3, and then perform the iterative operation on the CTLE table shown in Table 3. In state S1640, the control circuit 120 can use the result recorded in state S1630 (the optimal control parameter of the VGA table) to control the variable gain amplifier 113, and use the result recorded in state S720 (the parameter index Index_dfe pointed to by the optimal clue index of the clue table) to control the decision feedback equalizer 114. After completing state S1640, the control circuit 120 can enter state S1650 to generate a fine CTLE table result record for use in subsequent states.
[0111] After completing state S1650, the control circuit 120 can enter state S1660 to call the table traversal state machine (see the description in Figure 9 (Description) Traverse the DFE table shown in Table 4, and then perform the iterative operation on the DFE table shown in Table 4. In state S1660, the control circuit 120 can use the result recorded in state S1630 (the optimal control parameter of the VGA table) to control the variable gain amplifier 113, and use the result recorded in state S1650 (the optimal control parameter of the CTLE table) to control the continuous time linear equalizer 112. After completing state S1660, the control circuit 120 can enter state S1670 to generate a fine DFE table result record for use in subsequent states. After completing state S1670, the control circuit 120 enters the next state S1680 to update the fine table traversal count iter_cnt. State S1680 records the number of times (iter_cnt) the entire fine optimization process is executed and compares it with the preset loop count iter_num. If the fine table traversal count iter_cnt is less than the loop count iter_num (i.e., iter_cnt < iter_num), the control circuit 120 returns to state S1610 again. If the fine table traversal count iter_cnt is greater than or equal to the loop count iter_num until the preset loop count is completed (i.e., iter_cnt >= iter_num), the control circuit 120 ends Figure 16 the fine optimization operation shown and returns to the parent state. Finally, the optimal index of each parameter will take the average of the optimal indices of each parameter obtained in each loop. For example, the final optimal index of the VGA parameter is the average of the optimal VGA parameter indices obtained in each loop.
[0112] In some embodiments, the initial indices used in the VGA table sweep, CTLE table sweep, and DFE table sweep in the first iteration are the results recorded in state S720 (the parameter indices pointed by the optimal clue indices of the clue table shown in Table 1). But in the subsequent iterations, the initial indices of the parameters in the current iteration are the optimal indices of the parameters recorded in the previous iteration. For example, in the second iteration, the initial indices used in the VGA table sweep, CTLE table sweep, and DFE table sweep are the optimal parameter indices recorded in states S1630, S1650, and S1670 in the first iteration, respectively.
[0113] The initial eye mask used in the VGA table sweep, CTLE table sweep, and DFE table sweep is the optimized eye mask recorded in the previous recording state. For example, in the first iteration, the initial eye mask used in the VGA table sweep (state S1620) is the optimized eye mask recorded in state S720, the initial eye mask used in the CTLE table sweep (state S1640) is the optimized eye mask recorded in state S1630, and the initial eye mask used in the DFE table sweep (state S1660) is the optimized eye mask recorded in state S1650. In the second iteration, the initial eye mask used in the VGA table sweep (state S1620) is the eye mask recorded in state S1670 in the first iteration.
[0114] In some application scenarios, some states can be bypassed according to different settings. For example, when the parameter vga_sweep_bypass is 1, the control circuit 120 will not perform optimization of the control parameter vga[m:0] (bypass state S1620). When the parameter ctle_sweep_byass is 1, the control circuit 120 will not perform optimization of the control parameter ctle[l:0] (bypass state S1640). When the parameter tap1_sweep_bypass is 1, optimization of the control parameter tap1[n:0] will not be performed (bypass state S1660). When a state is bypassed, the parameter index recorded in the recording state after the state is the optimal index of the corresponding parameter recorded in state S720, and the eye mask recorded in the recording state is the optimized eye mask recorded in the previous recording state. For example, in the first fine optimization, when state S1620 is bypassed, the index recorded in state S1630 is the parameter index Index_vga recorded in state S720, and the eye mask recorded in state S1630 is the optimized eye mask recorded in state S720. When state S1640 is bypassed, the index recorded in state S1650 is the parameter index Index_ctle recorded in state S720, and the eye mask recorded in state S1650 is the optimized eye mask recorded in state S1630.
[0115] Referring to Figure 7 , the perturbation optimization operation of state S750 can include: calling the perturbation optimization state machine to perform a first direction perturbation check on any target table of the plurality of control parameter tables from the optimized index to determine whether to update the optimized index; and calling the perturbation optimization state machine to perform a second direction perturbation check on any target table from the optimized index to determine whether to update the optimized index. For example, state S750 (perturbation optimization) can call the perturbation optimization state machine to perform perturbation in the positive and negative directions of the optimal parameter index in each of the control parameter tables (add or subtract a step size from the optimal index) using the set of optimal parameter indices obtained from state S740 (fine optimization) as the initial index. Depending on the actual design, the control parameter tables include, for example, the VGA table shown in Table 2, the CTLE table shown in Table 3, and / or the DFE table shown in Table 4. If the new index after perturbation can make the eye diagram larger, the new index will be adopted; otherwise, the new index is discarded.
[0116] Figure 17 is shown in accordance with an embodiment of the present application, Figure 7 a state flow diagram of the perturbation optimization (state S750). Figure 7 State S750 shown in Figure 17 may refer to the related description of Figure 17 A state flow diagram of a perturbation optimization state machine is shown. Referring to Figure 6 and Figure 17 For simplicity of explanation, Figure 17 the embodiment shown in includes only table traversal operations performed on the VGA table shown in Table 2, the CTLE table shown in Table 3, and the DFE table shown in Table 4. In actual applications, Figure 17 the embodiment shown in can include more other circuit parameters that can affect the performance of the receiving circuit 110.
[0117] Figure 17 The initialization operation of state S1710 shown in can set / load the start index, the end index, and the index step size of the parameter index of the VGA table, the CTLE table, and the DFE table in the perturbation optimization. That is, the initialization operation can set the start index, the end index, and the index step size of the parameter index field Index_vga shown in Table 2, set the start index, the end index, and the index step size of the parameter index field Index_ctle shown in Table 3, and set the start index, the end index, and the index step size of the parameter index field Index_dfe shown in Table 4. The initialization operation can also set the initial eye mask for subsequent eye size comparison operations.
[0118] The VGA perturbation operation of state S1720, the CTLE perturbation operation of state S1740, and the DFE perturbation operation of state S1760 can invoke a table perturbation state machine to perturb the parameter indexes Index_vga, Index_ctle, and Index_dfe in Table 2, Table 3, and Table 4, respectively, and detect the size of the current eye diagram 400 under the current index setting to determine whether to adopt the new parameter index. If the new parameter index makes the current eye diagram 400 become larger, the new index is adopted; otherwise, the new index is discarded. Details of the table perturbation state machine can be found in the description of the embodiment shown in Figure 18 with reference to the embodiment shown in
[0119] Figure 18 is a state flow diagram of a table perturbation state machine according to an embodiment of the present application. Depending on the state (parent state) that invokes the table perturbation state machine, Figure 18 The initialization operation of state S1810 shown in FIG. 18 can set / load the initial index, the terminal index, the index step, and the initial eye diagram mask related to the corresponding control parameter. For example, when state S1720 (VGA table perturbation) invokes the table perturbation state machine shown in FIG. 18, the table perturbation state machine loads the initial index, the index step, the terminal index, and the initial eye diagram mask of the VGA table set in the perturbation optimization state machine. When state S1740 (CTLE table perturbation) invokes the table perturbation state machine shown in FIG. 18, the table perturbation state machine loads the initial index, the index step, the terminal index, and the initial eye diagram mask of the CTLE table set in the perturbation optimization state machine. When state S1760 (DFE table perturbation) invokes the table perturbation state machine shown in FIG. 18, the table perturbation state machine loads the initial index, the index step, the terminal index, and the initial eye diagram mask of the DFE table set in the perturbation optimization state machine. Figure 18 Figure 18 After the initialization operation of state S1810 is completed, the control circuit 120 can enter state S1820 to perform a positive perturbation check operation.
[0120] In state S1820, the table perturbation state machine can invoke a perturbation check state machine to increase a step on the basis of the current index value and check the eye diagram size. If the eye diagram does not become larger, state S1820 ends and enters state S1830 to generate a results record. Otherwise, a step is continuously increased and the eye diagram size is checked until the new index does not make the eye diagram larger. Details of the perturbation check state machine can be found in the description of the embodiment shown in Figure 19 with reference to the embodiment shown in
[0121] Figure 19 is a state flow diagram of a table perturbation state machine according to an embodiment of the present application. Depending on the state (parent state) that invokes the table perturbation state machine, Figure 19 The initialization operation of the state S1910 can set / load the target control parameter table, initial index, index step, index end value, and initial eye mask set in the table perturbation state machine. Figure 19 The parameter eye_nx can represent the X-axis coordinate or the Y-axis coordinate of one of the vertices of the current eye mask. Figure 12 The threshold value eye_max can represent the X-axis coordinate or the Y-axis coordinate of one of the vertices of the maximum eye mask 430. The maximum eye mask 430 can be set according to the actual design. If the current eye mask is greater than the preset maximum eye mask 430 (i.e., eye_nx > eye_max) or all the parameter indexes of the target control parameter table have been traversed (i.e., idx_nx > idx_end), the control circuit 120 enters the next state S1970 to perform a result return operation to return the result of the "perturbation check state machine" to the parent state. If the current eye mask is less than or equal to the preset maximum eye mask 430 (i.e., eye_nx <= eye_max) and all the parameter indexes of the target control parameter table have not been traversed (i.e., idx_nx <= idx_end), the control circuit 120 enters the next state S1920 to perform an index and eye mask update operation.
[0122] The state S1920 is used to update the current parameter index and the current eye mask. After the state S1920 is completed, the state S1930 is entered to perform an eye mask check operation. The state S1930 can call Figure 10 The eye mask check state machine checks whether the current eye mask 400 under the current parameter index setting can pass the detection of the current eye mask (e.g., the optimized eye mask 410). If the check result of the state S1930 is fail (i.e., the parameter eye_mask_pass is 0), the control circuit 120 enters the next state S1960 to perform an index and eye mask rollback operation. Because the current eye mask fails to pass the detection of the current eye mask 400, it is necessary to adjust the current eye mask back to the eye mask in the previous round of detection (e.g., to reduce the current eye mask by one step) and set the candidate parameter index back to the parameter index in the previous round of detection. After the state S1960 is completed, the control circuit 120 can enter the state S1970 to return the result of the "perturbation check state machine" to the parent state.
[0123] If the check result of state S1930 is passed (i.e., parameter eye_mask_pass is 1) and parameter amp_chk_bypass is 1, then control circuit 120 bypasses state S1940 and enters state S1950. If the check result of state S1930 is passed (i.e., parameter eye_mask_pass is 1) and parameter amp_chk_bypass is 0, then control circuit 120 enters the next state S1940 to perform an amplitude check. State S1940 can be called... Figure 14 The amplitude check state machine checks whether the height / amplitude of the current eye diagram 400 under the current parameter index setting exceeds the preset value. If yes, the parameter valid is 0; otherwise, the parameter valid is 1. If the parameter valid in state S1940 is 0, the control circuit 120 enters the next state S1960 to perform indexing and eye diagram mask rollback operations. If the parameter valid in state S1940 is 1, the control circuit 120 enters the next state S1950 to perform eye boundary scan.
[0124] State S1950 can be called Figure 12 The eye scan state machine searches for the inner boundary of the eye diagram under the current parameter index setting. If the current eye diagram mask is less than or equal to the preset maximum eye diagram mask 430 (i.e., eye_nx <= eye_max) and all parameter indices of the target control parameter table have not been traversed (i.e., idx_nx <= idx_end), then the control circuit 120 returns to state S1920 to perform index and eye diagram mask update operations. If the current eye diagram mask is greater than the preset maximum eye diagram mask 430 (i.e., eye_nx > eye_max) or all parameter indices of the target control parameter table have been traversed (i.e., idx_nx > idx_end), then the control circuit 120 enters the next state S1970 to return the result of the "disturbance check state machine" (e.g., the current optimal parameter index and the current eye diagram mask) to the parent state.
[0125] Please refer to Figure 18 After state S1820 is completed, control circuit 120 can enter state S1830 to record the results. State S1830 will record the final optimized index and corresponding eye diagram mask from state S1820 (positive perturbation check) to serve as the initial value index and initial eye diagram mask for state S1840. After state S1830 ends, control circuit 120 enters the next state S1840 to perform negative perturbation check. State S1840 can call... Figure 19The perturbation check state machine shown subtracts one step from the current parameter index value and checks the current eye size. If the current eye size has not become larger, the state S1840 ends and transitions to state S1850 to return the results of the "table perturbation state machine" (e.g., the current optimal parameter index and the current eye mask) to the parent state. Otherwise, the process continues by subtracting one step and checking the eye size until the new index does not make the eye larger.
[0126] Please refer to Figure 17 After state S1720 is complete, the control circuit 120 can enter state S1730 to perform a perturbation VGA results record operation. In state S1730, the optimal VGA parameter index and the corresponding eye mask are recorded for use in subsequent states. After state S1730 is complete, the control circuit 120 can enter state S1740 to invoke the "table perturbation state machine" to perform CTLE table perturbation. Figure 18 The perturbation check state machine shown subtracts one step from the current parameter index value and checks the current eye size. If the current eye size has not become larger, the state S1840 ends and transitions to state S1850 to return the results of the "table perturbation state machine" (e.g., the current optimal parameter index and the current eye mask) to the parent state. Otherwise, the process continues by subtracting one step and checking the eye size until the new index does not make the eye larger. Figure 18 The perturbation check state machine shown subtracts one step from the current parameter index value and checks the current eye size. If the current eye size has not become larger, the state S1840 ends and transitions to state S1850 to return the results of the "table perturbation state machine" (e.g., the current optimal parameter index and the current eye mask) to the parent state. Otherwise, the process continues by subtracting one step and checking the eye size until the new index does not make the eye larger.
[0127] After state S1770 is complete, the control circuit 120 can enter state S1780 or end the perturbation optimization process depending on the parameter perturbation_exit. If the parameter perturbation_exit is 1, the control circuit 120 enters state S1780 to perform a perturbation DFE table results record operation. In state S1780, the optimal DFE parameter index and the corresponding eye mask are recorded for use in subsequent states. Figure 17The perturbation optimization process ends, and the current optimized parameter index will be the final optimized parameter index. If the parameter perturbation_exit is 0, the control circuit 120 can enter state S1780 to perform a freeze check operation. State S1780 checks whether the upper layer logic requires freezing (suspending) the perturbation optimization operation to maintain the current optimization result. If the parameter perturbation_freeze is 1, the perturbation optimization operation is suspended (no next round of loop). If the parameter perturbation_freeze is 0, the control circuit 120 can return to state S1710 to continue the next round of loop.
[0128] Depending on different configurations, any one of state S1720 (VGA perturbation), state S1740 (CTLE perturbation), and state S1760 (DFE perturbation) can be bypassed. For example, when the parameter vga_perturbation_bypass in Figure 17 is 1, the VGA perturbation (state S1720) will not be performed. Similarly, when the parameter ctle_perturbation_bypass in Figure 17 is 1, the CTLE perturbation (state S1740) will not be performed. When the parameter tap1_perturbation_bypass in Figure 17 is 1, the DFE perturbation (state S1760) will not be performed.
[0129] It is noted that the initial index used in state S1720 (VGA perturbation), state S1740 (CTLE perturbation), and state S1760 (DFE perturbation) in the first perturbation optimization loop is Figure 7The optimal parameter index values recorded in the state S740 (fine result record), i.e. the optimal VGA parameter index value, the optimal CTLE parameter index value and the optimal DFE parameter index value recorded in the fine VGA table result record (state S1630), the fine CTLE table result record (state S1650) and the fine DFE table result record (state S1670) in the last loop of the state S730 (fine optimization). But in the subsequent loop, the initial index of each parameter in the current loop is the optimal index of each parameter recorded in the previous loop. For example, in the second perturbation optimization loop, the initial indexes used in the state S1720 (VGA perturbation), the state S1740 (CTLE perturbation) and the state S1760 (DFE perturbation) are the optimal VGA parameter index value, the optimal CTLE parameter index value and the optimal DFE parameter index value recorded in the perturbation VGA result record (state S1730), the perturbation CTLE result record (state S1750) and the perturbation DFE result record (state S1770) in the first perturbation optimization loop.
[0130] The initial eye mask used in the state S1720 (VGA perturbation), the state S1740 (CTLE perturbation) and the state S1760 (DFE perturbation) is the eye mask recorded in the previous record state. For example, in the first perturbation optimization loop, the state S1720 (VGA perturbation) uses the eye mask recorded in the state S1710 (VGA perturbation result record). Figure 7 The optimized eye mask recorded in the state S740 (fine result record), i.e. the optimized eye mask recorded in the fine DFE table result record (state S1670) in the last loop of the state S730 (fine optimization), the state S1740 (CTLE perturbation) uses the optimized eye mask recorded in the previous state S1730 (perturbation VGA result record). Similarly, the state S1720 (VGA perturbation) in the second perturbation optimization loop uses the optimized eye mask recorded in the state S1770 (perturbation DFE result record) in the first perturbation optimization loop.
[0131] Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present application, but not to limit it; although the present application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that: it can still modify the technical solutions recorded in the foregoing embodiments, or make equivalent replacement for part or all of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the scope of the technical solutions of the embodiments of the present application.
Claims
1. An eye pattern based control parameter adjustment method, characterized by, comprises: iterative operations performed by a control circuit to determine optimized control parameters; after completion of the iterative operations, updating current control parameters of a receiving circuit to the optimized control parameters; and performing a clue optimization, wherein the clue optimization comprises: invoking a table traversal state machine to perform the iterative operations on a clue table to determine an optimized clue index after traversing a plurality of clue indices in a clue index field of the clue table; wherein the iterative operations comprise: updating the current control parameters of the receiving circuit to candidate control parameters to cause the receiving circuit to process an input signal in accordance with the current control parameters to generate recovered data; checking a size relationship between an optimized eye mask and a current eye diagram corresponding to the recovered data; when the optimized eye mask violates the current eye diagram, maintaining the optimized eye mask and the optimized control parameters corresponding to the optimized eye mask; when the optimized eye mask does not violate the current eye diagram, generating a new eye mask larger than the optimized eye mask in accordance with the current eye diagram, updating the optimized eye mask to the new eye mask, and updating the optimized control parameters to the candidate control parameters corresponding to the new eye mask; selecting a selected clue index from the plurality of clue indices in the clue index field in accordance with a start clue index, an end clue index, and a clue index step; extracting a plurality of parameter indices corresponding to the selected clue index from a plurality of parameter index fields of the clue table, wherein the plurality of parameter indices indicate a plurality of control parameters in a plurality of control parameter tables; and using the plurality of control parameters in the plurality of control parameter tables indicated by the plurality of parameter indices as the candidate control parameters.
2. The eye pattern based control parameter adjustment method according to claim 1, wherein further comprising performing a fine optimization, the fine optimization comprising: invoking the table traversal state machine to perform the iterative operations on a target table of the plurality of control parameter tables to determine an optimized index after traversing a plurality of indices in an index field of the target table; and for tables of the plurality of control parameter tables other than the target table, supplying a plurality of control parameters to a plurality of functional circuits of the receiving circuit from the other tables in accordance with the plurality of parameter indices corresponding to the optimized clue index in the clue table, wherein the iterative operations further comprise: selecting a selected index from the plurality of indices in the index field of the target table in accordance with a start index, an end index, and an index step, wherein a plurality of control parameters of a parameter field of the target table are applicable to one of the plurality of functional circuits; and using one control parameter of the parameter field indicated by the selected index as one of the candidate control parameters.
3. The eye pattern based control parameter adjustment method according to claim 2, wherein further comprising performing a perturbation optimization, the perturbation optimization comprising: invoking a perturbation optimization state machine to perform a first direction perturbation check on a target table of the plurality of control parameter tables starting from the optimized index to determine whether to update the optimized index; and when the first direction perturbation check indicates that the optimized index is not to be updated, performing a second direction perturbation check on the target table starting from the optimized index to determine whether to update the optimized index. invoking a perturbation optimization state machine to perform a second direction perturbation check on the any one target table from the optimized index to decide whether to update the optimized index.
4. The eye pattern based control parameter adjustment method of claim 1, wherein The iteration operation further comprises: checking whether an amplitude of the current eye pattern exceeds a threshold value; and when the amplitude of the current eye pattern exceeds the threshold value, maintaining the optimized eye pattern mask and the optimized control parameter corresponding to the optimized eye pattern mask.
5. A receiving device, characterized by The receiving device comprises: a receiving circuit to process an input signal according to a current control parameter to generate recovered data; and a control circuit coupled to the receiving circuit to provide the current control parameter, wherein the control circuit performs an iteration operation to decide an optimized control parameter, updates the current control parameter of the receiving circuit to the optimized control parameter after the iteration operation is completed, and performs a clue optimization, wherein the clue optimization comprises: invoking a table traversal state machine to perform the iteration operation on a clue table to decide an optimized clue index after traversing a plurality of clue indexes in a clue index field of the clue table; wherein the iteration operation comprises: updating the current control parameter of the receiving circuit to a candidate control parameter; checking a size relationship between an optimized eye pattern mask and a current eye pattern corresponding to the recovered data; when the optimized eye pattern mask conflicts with the current eye pattern, maintaining the optimized eye pattern mask and the optimized control parameter corresponding to the optimized eye pattern mask; when the optimized eye pattern mask does not conflict with the current eye pattern, generating a new eye pattern mask larger than the optimized eye pattern mask according to the current eye pattern, updating the optimized eye pattern mask to the new eye pattern mask, and updating the optimized control parameter to the candidate control parameter corresponding to the new eye pattern mask; selecting an elected clue index from the plurality of clue indexes in the clue index field according to a start clue index, an end clue index, and a clue index step; extracting a plurality of parameter indexes corresponding to the elected clue index from a plurality of parameter index fields of the clue table, wherein the plurality of parameter indexes indicate a plurality of control parameters in a plurality of control parameter tables; and using the plurality of control parameters in the plurality of control parameter tables indicated by the plurality of parameter indexes as the candidate control parameter.
6. The receiving apparatus of claim 5, wherein The control circuit further performs a fine optimization, the fine optimization comprises: invoking the table traversal state machine to perform the iteration operation on a target table of the plurality of control parameter tables to decide an optimized index after traversing a plurality of indexes in an index field of the target table; and for tables other than the target table of the plurality of control parameter tables, providing a plurality of functional circuits of the receiving circuit with a plurality of control parameters from the other tables according to the plurality of parameter indexes corresponding to the optimized clue index in the clue table, wherein the iteration operation further comprises: selecting an elected index from a plurality of indexes of the index field in the target table according to a start index, an end index, and an index step, wherein a plurality of control parameters of a parameter field in the target table are applicable to one of the plurality of functional circuits; and using one control parameter of the parameter field pointed by the elected index as one of the candidate control parameters.
7. The receiving apparatus of claim 6, wherein The control circuit further performs perturbation optimization, which includes: invoking a perturbation optimization state machine to perform a first direction perturbation check on any target table of the plurality of control parameter tables starting from the optimized index to decide whether to update the optimized index; and invoking the perturbation optimization state machine to perform a second direction perturbation check on the any target table starting from the optimized index to decide whether to update the optimized index.
8. The receiving apparatus of claim 5, wherein, The iteration operation further includes: checking whether an amplitude of the current eye diagram exceeds a threshold; and when the amplitude of the current eye diagram exceeds the threshold, maintaining the optimized eye diagram mask and the optimized control parameter corresponding to the optimized eye diagram mask.
Citation Information
Patent Citations
Automatic adjustment and optimization system for Ethernet receiving end equalizer
CN112532550A
Eye opening hardware offloading
US20190305898A1