US 12,314,214 B2
Ensuring data integrity in power domain crossing FIFO queues
Rohit Gupta, Bengaluru (IN); Shubham Maheshwari, Jaipur (IN); and Mayukh Mallik, Bengaluru (IN)
Assigned to QUALCOMM Incorporated, San Diego, CA (US)
Filed by QUALCOMM Incorporated, San Diego, CA (US)
Filed on Mar. 9, 2023, as Appl. No. 18/181,422.
Prior Publication US 2024/0303216 A1, Sep. 12, 2024
Int. Cl. G06F 3/06 (2006.01); G06F 5/06 (2006.01); G06F 15/78 (2006.01)
CPC G06F 15/7807 (2013.01) [G06F 5/06 (2013.01)] 28 Claims
OG exemplary drawing
 
1. A method of transferring data, comprising:
selecting, via a source multiplexer, a first memory location included in a first in, first out (FIFO) queue and storing first data, wherein the source multiplexer and the FIFO queue are in a first power domain, wherein the source multiplexer is included in a plurality of m total source multiplexers coupled to the FIFO queue, the first memory location is memory location n, and the source multiplexer is coupled to the memory location n and memory location (n+m);
outputting the first data to a first level shifter;
calculating, in the first power domain, a first value based on the first data;
outputting the first value to a second level shifter;
selecting, via at least one destination multiplexer included in a second power domain, the first level shifter and the second level shifter;
calculating, in the second power domain, a second value based on the first data;
comparing the first value to the second value to generate a result, wherein the result indicates that the first data was corrupted during transmission from the first power domain to the second power domain;
selecting, via the source multiplexer, memory location (n+m) storing second data;
outputting the second data to the first level shifter;
calculating, in the first power domain, a third value based on the second data;
outputting the third value to the second level shifter;
selecting, via the at least one destination multiplexer, the first level shifter and the second level shifter;
calculating, in the second power domain, a fourth value based on the second data; and
comparing the third value to the fourth value to generate a second result, wherein the second result indicates that the second data was not corrupted during transmission from the first power domain to the second power domain.