Legal claims defining the scope of protection, as filed with the USPTO.
1. An integrated circuit comprising: a block random access memory (“BRAM”) embedded in the integrated circuit; a first embedded counter configured to operate in a first clock domain; a second embedded counter configured to operate in a second clock domain; a first binary adder coupled to a first selected offset value and to a first pointer address from the embedded first counter to provide a first sum of the first selected offset value and the first pointer address; a first binary-to-gray code converter coupled to the first sum and providing a first gray code value; a second binary-to-gray code converter coupled to a second pointer address from the second embedded counter and providing a second gray code value; a first comparator coupled to the first gray code value and the second gray code value and providing a first comparator output if the first gray code value equals the second gray code value; and a first logic block coupled to the first comparator output and generating a first status flag in the second clock domain.
2. The integrated circuit of claim 1 wherein the programmable logic device is a programmable logic device (PLD).
3. The integrated circuit of claim 1 wherein the first embedded counter is a read counter, the first selected offset value is a read offset value, the second clock domain is a write clock domain, and the first status flag is an ALMOST EMPTY status flag.
4. The integrated circuit of claim 1 wherein the first embedded counter is a write counter, the first selected offset value is a write offset value, the second clock domain is a read clock domain, and the first status flag is an ALMOST FULL status flag.
5. The integrated circuit of claim 1 further comprising: a second binary adder coupled to a second selected offset value and to a second pointer address from the second embedded counter to provide a second sum of the second selected offset value and the second pointer address; a third binary-to-gray code converter coupled to the second sum and providing a third gray code value; a fourth binary-to-gray code converter coupled to the first pointer address from the first embedded counter and providing a fourth gray code value; a second comparator coupled to the third gray code value and the fourth gray code value and providing a second comparator output if the third gray code value equals the fourth gray code value; and a second logic block coupled to the second comparator output and generating a second status flag in the first clock domain.
6. The integrated circuit of claim 5 further comprising: a third comparator coupled to the second gray code value and to the fourth gray code value and providing a third comparator output if the second gray code value equals the fourth gray code value.
7. The integrated circuit of claim 6 further comprising a third logic block, wherein the third comparator output is coupled to the third logic block and one of the first status flag and the second status flag is coupled to the third logic block, the third logic block generating a third status flag.
8. The integrated circuit of claim 7 wherein first status flag is coupled to the third logic block and the third status flag is in the second clock domain.
9. The integrated circuit of claim 7 wherein the second status flag is coupled to the third logic block and the third status flag is in the first clock domain.
10. The integrated circuit of claim 7 further comprising a fourth logic block, wherein the third comparator output is coupled to the fourth logic block and one of the first status flag and the second status flag is coupled to the fourth logic block, the fourth logic block generating a fourth status flag.
11. A programmable logic device comprising: a block random access memory (“BRAM”) embedded in the programmable logic device; an embedded read counter configured to operate in a read clock domain; an embedded write counter configured to operate in a write clock domain; a first binary adder coupled to a selected read offset value and to a read pointer address from the embedded read counter to provide a first sum of the selected read offset value and the read pointer address; a first binary-to-gray code converter coupled to the first sum and providing a first gray code value; a second binary-to-gray code converter coupled to a write pointer address from the embedded write counter and providing a second gray code value; a first comparator coupled to the first gray code value and the second gray code value and providing a first comparator output if the first gray code value equals the second gray code value; an ALMOST EMPTY logic block coupled to the first comparator output and generating an ALMOST EMPTY status flag in the write clock domain; a second binary adder coupled to a selected write offset value and to a write pointer address from the embedded write counter to provide a second sum of the selected write offset value and the write pointer address; a third binary-to-gray code converter coupled to the second sum and providing a third gray code value; a fourth binary-to-gray code converter coupled to the read pointer address from the embedded read counter and providing a fourth gray code value; a second comparator coupled to the third gray code value and to the fourth gray code value and providing a second comparator output if the third gray code value equals the fourth gray code value; an ALMOST FULL logic block coupled to the second comparator output and generating an ALMOST FULL status flag in the read clock domain; a third comparator coupled to the second gray code value and the fourth gray code value and providing a third comparator output if the second gray code value equals the fourth gray code value; an EMPTY logic block, the third comparator output and the ALMOST EMPTY status flag being coupled to the EMPTY logic block, the EMPTY logic block generating an EMPTY status flag if the ALMOST EMPTY status flag and the third comparator output are asserted; and a FULL logic block, the third comparator output and the ALMOST FULL status flag being coupled to the FULL logic block, the FULL logic block generating a FULL status flag if the ALMOST FULL status flag and the third comparator output are asserted.
12. A method of operating an embedded first-in, first-out (FIFO) memory system in a programmable logic device comprising: reading a first pointer address from a FIFO memory array embedded in the programmable logic device in a first clock domain; adding a first binary offset value to the first pointer address to produce a first sum; converting the first sum to a first gray code value; reading a second pointer address from the FIFO memory array in a second clock domain; converting the second pointer address to a second gray code value; comparing the first gray code value to a second gray code value; and, if the first gray code value equals the second gray code value; asserting a first comparator output.
13. The method of claim 12 further comprising steps of: coupling the first comparator output to a first logic block; and converting the first comparator output from the first clock domain to a first status flag in the second clock domain.
14. The method of claim 12 further comprising steps of: converting the first pointer address to a third gray code value; comparing the second gray code value to the third gray code value; and, if the second gray code value equals the third gray code value; asserting a second comparator output.
15. The method of claim 14 wherein the second comparator value is supplied to a second logic block and to a third logic block, generating a second status flag from the second logic block in the second clock domain if the first comparator output is asserted.
16. The method of claim 12 further comprising steps of: adding a second binary offset value to the second pointer address to produce a second sum; converting the second sum to a fourth gray code value; comparing the fourth gray code value to the third gray code value; and, if the fourth gray code value equals the second gray code value; asserting a third comparator output.
17. The method of claim 16 further comprising steps of: coupling the third comparator output to a fourth logic block; and converting the first comparator output from the second clock domain to a fourth status flag in the first clock domain.
18. A method of operating an embedded first-in, first-out (FIFO) memory system in a programmable logic device comprising: reading a first pointer address from a FIFO memory array embedded in the programmable logic device in a first clock domain; adding a first binary offset value to the first pointer address to produce a first sum; converting the first sum to a first gray code value; reading a second pointer address from the FIFO memory array in a second clock domain; converting the second pointer address to a second gray code value; comparing the first gray code value to the second gray code value; asserting a first comparator output if the first gray code value equals the second gray code value coupling the first comparator output to a first logic block; converting the first comparator output from the first clock domain to a first status flag in the second clock domain converting the first pointer address to a third gray code value; comparing the second gray code value to the third gray code value; asserting a second comparator output if the second gray code value equals the third gray code value; supplying the second comparator output to a second logic block and to a third logic block; generating a second status flag from the second logic block in the second clock domain if the first comparator output is asserted; adding a second binary offset value to the second pointer address to produce a second sum; converting the second sum to a fourth gray code value; comparing the fourth gray code value to the third gray code value; asserting a third comparator output if the fourth gray code value equals the second gray code value coupling the third comparator output to a fourth logic block; converting the first comparator output from the second clock domain to a fourth status flag in the first clock domain; and generating a third status flag from the third logic block in the first clock domain if the third comparator output is asserted.
19. An integrated circuit comprising: means for an embedded first-in, first-out (“FIFO”) memory array; means for adding a binary offset value to a first binary pointer value of the FIFO memory array to provide a binary sum; means for converting the binary sum to a first gray code value; means for converting a second binary pointer value of the FIFO memory array to a second gray code value; and means for comparing the first gray code value to the second gray code value to provide a first comparator output.
20. The integrated circuit of claim 19 wherein the embedded FIFO memory array is an embedded two-port block random access memory, and the first binary pointer value is one of a read pointer value and a write pointer value.
21. A programmable logic device comprising: a block random access memory (“BRAM”) embedded in the programmable logic device; a first embedded counter configured to operate in a first clock domain; a second embedded counter configured to operate in a second clock domain; a first binary adder coupled to a first selected offset value and to a first pointer address from the embedded first counter to provide a first sum of the first selected offset value and the first pointer address; a first binary-to-gray code converter coupled to the first sum and providing a first gray code value; a second binary-to-gray code converter coupled to a second pointer address from the second embedded counter and providing a second gray code value; a first comparator coupled to the first gray code value and the second gray code value and providing a first comparator output if the first gray code value equals the second gray code value; and a first logic block coupled to the first comparator output and generating a first status flag in the second clock domain.
22. The programmable logic device of claim 21 wherein the programmable logic device is a field programmable gate array.
23. The programmable logic device of claim 21 wherein the first embedded counter is a read counter, the first selected offset value is a read offset value, the second clock domain is a write clock domain, and the first status flag is an ALMOST EMPTY status flag.
24. The programmable logic device of claim 21 wherein the first embedded counter is a write counter, the first selected offset value is a write offset value, the second clock domain is a read clock domain, and the first status flag is an ALMOST FULL status flag.
Unknown
August 23, 2005
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.