IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
US-0463688
(2003-06-16)
|
발명자
/ 주소 |
|
출원인 / 주소 |
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
4 인용 특허 :
49 |
초록
▼
A programming method efficiently programs programmable logic devices of the type having specialized functional blocks. Those blocks may include multipliers and other arithmetic function elements, or may be various types of memory blocks. In order to efficiently program devices having such specialize
A programming method efficiently programs programmable logic devices of the type having specialized functional blocks. Those blocks may include multipliers and other arithmetic function elements, or may be various types of memory blocks. In order to efficiently program devices having such specialized functional blocks, without using a larger device than necessary, and without failing to fit a user design to a device, if the programming method finds that that there are more functions to be performed in specialized functional blocks than there are specialized functional blocks available, the programming method attempts to map some of the specialized functions to generic programmable logic elements (or other resources), assuming there are sufficient programmable logic elements (or other resources) that otherwise would remain unused in the user design.
대표청구항
▼
What is claimed is: 1. For use with a programmable logic device including specialized functional blocks that perform specialized functions that also can be performed in other resources of the programmable logic device different from said specialized functional blocks, a method of programming such a
What is claimed is: 1. For use with a programmable logic device including specialized functional blocks that perform specialized functions that also can be performed in other resources of the programmable logic device different from said specialized functional blocks, a method of programming such a programmable logic device with a user design, said method comprising: parsing a list of programming elements for said user design; identifying, in said list of programming elements for said user design, programming elements related to said specialized functional blocks; selecting a programmable logic device having a predetermined number of specialized functional blocks and a predetermined number of said other resources different from said specialized functional blocks; and when said programming elements related to said specialized functional blocks exceed, in number, capacity of said predetermined number of specialized functional blocks to perform said specialized functions, mapping a portion of said programming elements related to said specialized functional blocks onto said other resources different from said specialized functional blocks. 2. The method of claim 1 wherein: said other resources different from said specialized functional blocks comprise programmable logic elements; and said mapping a portion of said programming elements related to said specialized functional blocks onto said other resources different from said specialized functional blocks comprises mapping a portion of said programming elements related to said specialized functional blocks onto said programmable logic elements. 3. The method of claim 1 wherein: said other resources different from said specialized functional blocks comprise memory elements; and said mapping a portion of said programming elements related to said specialized functional blocks onto said other resources different from said specialized functional blocks comprises mapping a portion of said programming elements related to said specialized functional blocks onto said memory elements. 4. The method of claim 1 wherein: said other resources different from said specialized functional blocks comprise other types of specialized functional blocks; and said mapping a portion of said programming elements related to said specialized functional blocks onto said other resources different from said specialized functional blocks comprises mapping a portion of said programming elements related to said specialized functional blocks onto said other types of specialized functional blocks. 5. The method of claim 1 further comprising reading a description file for said programmable logic device to determine number and location of said specialized functional blocks; whereby: said method operates with any programmable logic device (a) having said specialized functional blocks, and (b) for which said description file is available. 6. The method of claim 1 further comprising: performing timing analysis on said programming elements related to said specialized functional blocks; and assigning a preference against said mapping any of said programming elements, related to said specialized functional blocks, in time-critical paths. 7. The method of claim 1 wherein said identifying programming elements related to said specialized functional blocks comprises identifying programming elements designated by said user as relating to one or more of said specialized functional blocks. 8. The method of claim 1 wherein said identifying programming elements related to said specialized functional blocks is carried out with regard to at least one of said programming elements without user intervention. 9. The method of claim 8 wherein said identifying comprises inferring an identification based on presence in said programming elements of functions for which said specialized functional blocks are designed. 10. The method of claim 8 wherein said identifying programming elements related to said specialized functional blocks comprises identifying programming elements related to at least one memory element. 11. The method of claim 8 wherein said identifying programming elements related to said specialized functional blocks comprises identifying programming elements related to at least one multiplier. 12. The method of claim 11 wherein said identifying programming elements related to said specialized functional blocks comprises identifying programming elements related to at least one multiplier and to at least one other arithmetic operator associated with said at least one multiplier. 13. The method of claim 12 wherein said at least one arithmetic operator is selected from the group consisting of addition, subtraction, accumulation, and combinations thereof. 14. The method of claim 1 wherein said selecting comprises selecting a programmable logic device based on user input. 15. The method of claim 1 wherein said selecting comprises selecting a programmable logic device from among a group of available programmable logic devices. 16. The method of claim 15 further comprising: making an initial determination, prior to said mapping, of a number of said other resources different from said specialized functional blocks required for said user design; making a subsequent determination, after said mapping, of a number of said other resources different from said specialized functional blocks consumed by said mapping; comparing a sum of said number from said initial determination and said number from said subsequent determination to said predetermined number of said other resources different from said specialized functional blocks; and when said sum exceeds said predetermined number: reselecting a programmable logic device having a number of said other resources different from said specialized functional blocks larger than said predetermined number of said other resources different from said specialized functional blocks and a number of specialized functional blocks larger than said predetermined number of specialized functional blocks, and when said programming elements related to said specialized functional blocks exceed, in number, capacity of said number of specialized functional blocks larger than said predetermined number of specialized functional blocks, repeating said mapping. 17. A data storage medium encoded with machine-executable instructions for performing a method, for use with a programmable logic device including specialized functional blocks that perform specialized functions that also can be performed in other resources of said programmable logic device different from said specialized functional blocks, of programming such a programmable logic device with a user design, said method comprising: parsing a list of programming elements for said user design; identifying, in said list of programming elements for said user design, programming elements related to said specialized functional blocks; selecting a programmable logic device having a predetermined number of specialized functional blocks and a predetermined number of said other resources different from said specialized functional blocks; and when said programming elements related to said specialized functional blocks exceed, in number, capacity of said predetermined number of specialized functional blocks to perform said specialized functions, mapping a portion of said programming elements related to said specialized functional blocks onto said other resources different from said specialized functional blocks. 18. The data storage medium of claim 17 wherein, in said method: said other resources different from said specialized functional blocks comprise programmable logic elements; and said mapping a portion of said programming elements related to said specialized functional blocks onto said other resources different from said specialized functional blocks comprises mapping a portion of said programming elements related to said specialized functional blocks onto said programmable logic elements. 19. The data storage medium of claim 17 wherein, in said method: said other resources different from said specialized functional blocks comprise memory elements; and said mapping a portion of said programming elements related to said specialized functional blocks onto said other resources different from said specialized functional blocks comprises mapping a portion of said programming elements related to said specialized functional blocks onto said memory elements. 20. The data storage medium of claim 17 wherein, in said method: said other resources different from said specialized functional blocks comprise other types of specialized functional blocks; and said mapping a portion of said programming elements related to said specialized functional blocks onto said other resources different from said specialized functional blocks comprises mapping a portion of said programming elements related to said specialized functional blocks onto said other types of specialized functional blocks. 21. The data storage medium of claim 17 further encoded with machine-executable instructions for reading a description file for said programmable logic device to determine number and location of said specialized functional blocks; whereby: said method operates with any programmable logic device (a) having said specialized functional blocks, and (b) for which said description file is available. 22. The data storage medium of claim 17 further encoded with machine-executable instructions for: performing timing analysis on said programming elements related to said specialized functional blocks; and assigning a preference against said mapping any of said programming elements, related to said specialized functional blocks, in time-critical paths. 23. The data storage medium of claim 17 wherein in said method said identifying programming elements related to said specialized functional blocks comprises identifying programming elements designated by said user as relating to one or more of said specialized functional blocks. 24. The data storage medium of claim 17 wherein in said method said identifying programming elements related to said specialized functional blocks is carried out without user intervention. 25. The data storage medium of claim 24 wherein in said method said identifying comprises inferring an identification based on presence in said programming elements of functions for which said specialized functional blocks are designed. 26. The data storage medium of claim 24 wherein in said method said identifying programming elements related to said specialized functional blocks comprises identifying programming elements related to at least one memory element. 27. The data storage medium of claim 24 wherein in said method said identifying programming elements related to said specialized functional blocks comprises identifying programming elements related to at least one multiplier. 28. The data storage medium of claim 27 wherein in said method said identifying programming elements related to said specialized functional blocks comprises identifying programming elements related to at least one multiplier and to at least one other arithmetic operator associated with said at least one multiplier. 29. The data storage medium of claim 28 wherein said at least one arithmetic operator is selected from the group consisting of addition, subtraction, accumulation, and combinations thereof. 30. The data storage medium of claim 17 wherein in said method said selecting comprises selecting a programmable logic device based on user input. 31. The data storage medium of claim 17 wherein in said method said selecting comprises selecting a programmable logic device from among a group of available programmable logic devices. 32. The data storage medium of claim 31 further encoded with machine-executable instructions for: making an initial determination, prior to said mapping, of a number of said other resources different from said specialized functional blocks required for said user design; making a subsequent determination, after said mapping, of a number of said other resources different from said specialized functional blocks consumed by said mapping; comparing a sum of said number from said initial determination and said number from said subsequent determination to said predetermined number of said other resources different from said specialized functional blocks; and when said sum exceeds said predetermined number: reselecting a programmable logic device having a number of said other resources different from said specialized functional blocks larger than said predetermined number of programmable logic elements and a number of specialized functional blocks larger than said predetermined number of specialized functional blocks, and when said programming elements related to said specialized functional blocks exceed, in number, capacity of said number of specialized functional blocks larger than said predetermined number of specialized functional blocks, repeating said mapping. 33. The data storage medium of claim 17 wherein said data storage medium is magnetic. 34. The magnetic data storage medium of claim 33, where said data storage medium is a floppy diskette. 35. The magnetic data storage medium of claim 33, where said data storage medium is a hard disk. 36. The magnetic data storage medium of claim 33 wherein said data storage medium is magnetic tape. 37. The data storage medium of claim 17 wherein said data storage medium is optically readable. 38. The optically readable data storage medium of claim 37, wherein said data storage medium is selected from the group consisting of (a) a CD-ROM, (b) a CD-R, (c) a CD-RW, (d) a DVD-ROM, (e) a DVD-R, (f) a DVD-RW, (g) a DVD+R, (h) a DVD+RW and (i) a DVD-RAM. 39. The optically readable data storage medium of claim 37 wherein said data storage medium is a magneto-optical disk.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.