Ethernet Receive Interface Clock-Domain Transfer Using Enable Signals
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The asynchronous nature of Ethernet signals between a network clock domain and a system clock domain leads to costly and error-prone data transfers, particularly when transferring data packets across different clock domains.
Innovation Solution
A method and apparatus that generate enable signals in independent clock domains to synchronize data transfers, using a multi-bit counter to assemble data elements and toggle signals to enable data loading and transfer between holding and core registers, ensuring data is transferred in sync with both the receive and core clocks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data is transferred asynchronously between independent clock domains using conventional methods, then data transfer can occur between different clock domains, but the transfer becomes expensive and error-prone
Solution Approach 1:
The data transfer process is segmented into distinct phases: data assembly phase (assembling data elements into groups) and data transfer phase (transferring assembled groups). The counter is segmented to track different stages of data assembly, enabling precise control over when transfers occur and reducing errors from incomplete or misaligned data groups.
Solution Approach 2:
Data elements are pre-assembled into complete groups using the counter mechanism before the actual transfer to the second clock domain occurs. This preliminary assembly ensures that only complete, properly-aligned data groups are transferred, preventing errors from partial or misaligned transfers while maintaining a relatively simple transfer mechanism.
2Manufacturing precision
If data elements are assembled into groups using sequential counting, then complete data groups are formed for transfer, but additional counting logic is required
Solution Approach 1:
The counter mechanism serves multiple functions: it counts data elements being assembled, determines when complete groups are formed, and controls the timing of transfer enable signals. This multi-functionality achieves precise data group assembly without requiring separate complex control logic for each function, as the single counter handles all aspects of assembly coordination.
Solution Approach 2:
The counter transitions through different parameter states (count values) that correspond to different stages of data assembly. By monitoring these parameter changes, the system automatically determines when complete data groups are assembled and when transfer should be enabled, achieving precise assembly control through simple parameter monitoring rather than complex state machine logic.
3Ease of operation
If enable signals are generated for both data loading and transfer operations, then precise control over data movements is achieved, but additional signal generation logic is required
Solution Approach 1:
The counter provides feedback about the assembly progress of data groups, and this feedback is used to automatically generate the appropriate enable signals. The first enable signal is generated when the counter indicates complete assembly for loading, and the second enable signal is generated when assembly is complete for transfer. This feedback mechanism provides precise timing control without requiring complex external control logic, as the counter's own state drives the signal generation.
Solution Approach 2:
The counter mechanism serves itself by using its own count state to generate the enable signals needed for data loading and transfer. Rather than requiring an external controller to monitor the counter and generate signals, the system is self-sufficient—the counter's progression through its count sequence automatically produces the correct enable signals at the appropriate times, simplifying the overall control architecture.
Data Source
AI summary
A transport circuit is described for generating enable signals in different independent clock domains enabling data transfers across the clock domains. The transport circuit is used, for example, in an Ethernet receive interface where data is to be transferred from a receive clock domain to a system core clock domain for further processing. A serial to parallel data converter is used to convert the serial Ethernet data into parallel form. The output of the serial to parallel data converter is transferred to a holding register in the receive clock domain. The holding register connects to a transfer data register that is in the system core clock domain. The transport circuit provides enable signals with the proper timing to allow the transfer of data from the receive clock domain to the system core clock domain. The last data transfer swaps the interface supplied data with a status word in the holding register.


