Claims
- 1. A method for programming an integrated circuit, the method comprising:
(a) using a first program construct to provide for execution of a computational block in parallel; (b) using a second program construct to provide for automatic indexing of reference to a buffer object; (c) using a third program construct for maintaining a previous value of a variable between process invocations; and (d) using a fourth program construct to provide for iterations having a predetermined number of iterations at a compile time.
- 2. The method of claim 1, wherein step (a) further comprises:
using a dataflow command for informing a compiler that included commands are for concurrent performance in parallel.
- 3. The method of claim 1, wherein step (b) further comprises:
using a channel object for providing a buffer for storing data; and using a stream variable for referencing the channel object.
- 4. The method of claim 3, wherein the channel object is a buffer instantiated with a declared data type and a size, and wherein the stream variable is declared with a buffer of a plurality of data items of a specified data type.
- 5. The method of claim 1, wherein step (c) further comprises:
using a state variable for maintaining a plurality of previous values of a variable after the variable has been assigned a plurality of current values.
- 6. The method of claim 1, wherein step (d) further comprises:
using an unroll command for transforming a loop operation into a predetermined plurality of individual executable operations.
- 7. The method of claim 1, further comprising:
(e) using a fifth program construct to provide array accessing with a predetermined address pattern.
- 8. The method of claim 7, wherein step (e) further comprises:
using an iterator variable for accessing the array in a predetermined, fixed address pattern.
- 9. The method of claim 7, wherein the fifth program construct is a declaration which includes a plurality of arguments, the plurality of arguments including an iteration level, an initial value of an index, an increment added to the index for a repeated iteration, and an index limit.
- 10. The method of claim 1, further comprising:
(f) using a sixth program construct to provide for a fixed number of loop iterations at run time.
- 11. The method of claim 10, wherein step (f) further comprises:
using a loop command for informing a compiler that a plurality of included commands contain no branching to locations outside of the loop and that a plurality of loop conditions are fixed.
- 12. The method of claim 1, wherein the first program construct has a semantics comprising:
a first program construct identifier, followed by a plurality of included program statements.
- 13. The method of claim 12, wherein the first program construct has a syntax comprising:
a dataflow designation; a commencement designation and a termination designation following the dataflow designation; and the plurality of included program statements contained within the commencement designation and the termination designation.
- 14. The method of claim 1, wherein the fourth program construct has a semantics comprising:
a fourth program construct identifier having a plurality of arguments, followed by program statements for expansion into a plurality of individual commands and according to the plurality of arguments.
- 15. A system for programming an integrated circuit, the system comprising:
means for using a first program construct to provide for execution of a computational block in parallel; means for using a second program construct to provide for automatic indexing of reference to a buffer object; means for using a third program construct for maintaining a previous value of a variable between process invocations; and means for using a fourth program construct to provide for iterations having a predetermined number of iterations at a compile time.
- 16. The system of claim 15, wherein the means for using the first program construct further comprises:
means for using a dataflow command for informing a compiler that included commands are for concurrent performance in parallel.
- 17. The system of claim 15, wherein the means for using the second program construct further comprises:
means for using a channel object for providing a buffer for storing data; and means for using a stream variable for referencing the channel object.
- 18. The system of claim 17, wherein the channel object is a buffer instantiated with a declared data type and a size, and wherein the stream variable is declared with a buffer of a plurality of data items of a specified data type.
- 19. The system of claim 15, wherein the means for using the third program construct further comprises:
means for using a state variable for maintaining a plurality of previous values of a variable after the variable has been assigned a plurality of current values.
- 20. The system of claim 15, wherein the means for using the fourth program construct further comprises:
means for using an unroll command for transforming a loop operation into a predetermined plurality of individual executable operations.
- 21. The system of claim 15, further comprising:
means for using a fifth program construct to provide array accessing with a predetermined address pattern.
- 22. The system of claim 21, wherein the means for using the fifth program construct further comprises:
means for using an iterator variable for accessing the array in a predetermined, fixed address pattern.
- 23. The system of claim 21, wherein the fifth program construct is a declaration which includes a plurality of arguments, the plurality of arguments including an iteration level, an initial value of an index, an increment added to the index for a repeated iteration, and an index limit.
- 24. The system of claim 15, further comprising:
means for using a sixth program construct to provide for a fixed number of loop iterations at run time.
- 25. The system of claim 24, wherein the means for using the sixth program construct further comprises:
means for using a loop command for informing a compiler that a plurality of included commands contain no branching to locations outside of the loop and that a plurality of loop conditions are fixed.
- 26. The system of claim 15, wherein the first program construct has a semantics comprising:
a first program construct identifier, followed by a plurality of included program statements.
- 27. The system of claim 26, wherein the first program construct has a syntax comprising:
a dataflow designation; a commencement designation and a termination designation following the dataflow designation; and the plurality of included program statements contained within the commencement designation and the termination designation.
- 28. The system of claim 15, wherein the fourth program construct has a semantics comprising:
a fourth program construct identifier having a plurality of arguments, followed by program statements for expansion into a plurality of individual commands according to the plurality of arguments.
- 29. A programming language for programming an integrated circuit, the programming language comprising:
a first program construct to provide for execution of a computational block in parallel; a second program construct to provide for automatic indexing of reference to a buffer object; a third program construct for maintaining a previous value of a variable between process invocations; and a fourth program construct to provide for iterations having a predetermined number of iterations at a compile time.
- 30. The programming language of claim 29, wherein the first program construct further comprises:
a dataflow command for informing a compiler that included commands are for concurrent performance in parallel.
- 31. The programming language of claim 29, wherein the second program construct further comprises:
a channel object for providing a buffer for storing data; and a stream variable for referencing the channel object.
- 32. The programming language of claim 31, wherein the channel object is a buffer instantiated with a declared data type and a size, and wherein the stream variable is declared with a buffer of a plurality of data items of a specified data type.
- 33. The programming language of claim 29, wherein the third program construct further comprises:
a state variable for maintaining a plurality of previous values of a variable after the variable has been assigned a plurality of current values.
- 34. The programming language of claim 29, wherein the fourth program construct further comprises:
an unroll command for transforming a loop operation into a predetermined plurality of individual executable operations.
- 35. The programming language of claim 29, further comprising:
a fifth program construct to provide array accessing with a predetermined address pattern.
- 36. The programming language of claim 35, wherein the fifth program construct further comprises:
an iterator variable for accessing the array in a predetermined, fixed address pattern.
- 37. The programming language of claim 35, wherein the fifth program construct is a declaration which includes a plurality of arguments, the plurality of arguments including an iteration level, an initial value of an index, an increment added to the index for a repeated iteration, and an index limit.
- 38. The programming language of claim 29, further comprising:
a sixth program construct to provide for a fixed number of loop iterations at run time.
- 39. The programming language of claim 38, wherein the sixth program construct further comprises:
a loop command for informing a compiler that a plurality of included commands contain no branching to locations outside of the loop and that a plurality of loop conditions are fixed.
- 40. The programming language of claim 29, wherein the first program construct has a semantics comprising:
a first program construct identifier, followed by a plurality of included program statements.
- 41. The programming language of claim 40, wherein the first program construct has a syntax comprising:
a dataflow designation; a commencement designation and a termination designation following the dataflow designation; and the plurality of included program statements contained within the commencement designation and the termination designation.
- 42. The programming language of claim 29, wherein the fourth program construct has a semantics comprising:
a fourth program construct identifier having a plurality of arguments, followed by program statements for expansion into a plurality of individual commands according to the plurality of arguments.
- 43. A method for programming an adaptive computing integrated circuit, the method comprising:
using a first program construct to provide for execution of a computational block in parallel, the first program construct defined as a dataflow command for informing a compiler that included commands are for concurrent performance in parallel; using a second program construct to provide for automatic indexing of reference to a channel object, the channel object for providing a buffer for storing data, the second program construct defined as a stream variable for referencing the channel object; using a third program construct for maintaining a previous value of a variable between process invocations, the third program construct defined as a state variable for maintaining a plurality of previous values of a variable after the variable has been assigned a plurality of current values; using a fourth program construct to provide for iterations having a predetermined number of iterations at a compile time, the fourth program construct defined as an unroll command for transforming a loop operation into a predetermined plurality of individual executable operations; using a fifth program construct to provide array accessing, the fifth program construct defined as an iterator variable for accessing the array in a predetermined, fixed address pattern; and using a sixth program construct to provide for a fixed number of loop iterations at run time, the sixth program construct defined as a loop command for informing a compiler that a plurality of included commands contain no branching to locations outside of the loop and that a plurality of loop conditions are fixed.
- 44. The method of claim 43, wherein the channel object is a buffer instantiated with a declared data type and a size, and wherein the stream variable is declared with a buffer of a plurality of data items of a specified data type.
- 45. The method of claim 43, wherein the fifth program construct is a declaration which includes a plurality of arguments, the plurality of arguments including an iteration level, an initial value of an index, an increment added to the index for a repeated iteration, and an index limit.
- 46. The method of claim 43, wherein the first program construct has a semantics comprising:
a first program construct identifier; a commencement designation and a termination designation following the first program construct identifier; and a plurality of included program statements contained within the commencement designation and the termination designation.
- 47. The method of claim 43, wherein the fourth program construct has a semantics comprising:
a fourth program construct identifier having a plurality of arguments, followed by program statements for expansion into a plurality of individual commands according to the plurality of arguments.
- 48. A programming language for programming an adaptive computing integrated circuit, the programming language comprising:
a first program construct to provide for execution of a computational block in parallel, the first program construct defined as a dataflow command for informing a compiler that included commands are for concurrent performance in parallel; a second program construct to provide for automatic indexing of reference to a channel object, the channel object for providing a buffer for storing data, the second program construct defined as a stream variable for referencing the channel object, wherein the channel object is a buffer instantiated with a declared data type and a size, and wherein the stream variable is declared with a buffer of a plurality of data items of a specified data type; a third program construct for maintaining a previous value of a variable between process invocations, the third program construct defined as a state variable for maintaining a plurality of previous values of a variable after the variable has been assigned a plurality of current values; a fourth program construct to provide for iterations having a predetermined number of iterations at a compile time, the fourth program construct defined as an unroll command for transforming a loop operation into a predetermined plurality of individual executable operations; a fifth program construct to provide array accessing, the fifth program construct defined as an iterator variable for accessing the array in a predetermined, fixed address pattern; and a sixth program construct to provide for a fixed number of loop iterations at run time, the sixth program construct defined as a loop command for informing a compiler that a plurality of included commands contain no branching to locations outside of the loop and that a plurality of loop conditions are fixed.
- 49. The programming language of claim 48, wherein the fifth program construct is a declaration which includes a plurality of arguments, the plurality of arguments including an iteration level, an initial value of an index, an increment added to the index for a repeated iteration, and an index limit.
- 50. The programming language of claim 48, wherein the first program construct has a semantics comprising:
a first program construct identifier; a commencement designation and a termination designation following the first program construct identifier; and a plurality of included program statements contained within the commencement designation and the termination designation; and wherein the fourth program construct has a semantics comprising: a fourth program construct identifier having a plurality of arguments, followed by program statements for expansion into a plurality of individual commands according to the plurality of arguments.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to Paul L. Master et al., U. S. patent application Ser. No. 09/815,122, entitled “Adaptive Integrated Circuitry With Heterogeneous And Reconfigurable Matrices Of Diverse And Adaptive Computational Units Having Fixed, Application Specific Computational Elements”, filed Mar. 22, 2001, commonly assigned to QuickSilver Technology, Inc., and incorporated by reference herein, with priority claimed for all commonly disclosed subject matter (the “first related application”).
[0002] This application is related to Paul L. Master et al., U.S. patent application Ser. No. 09/997,530, entitled “Apparatus, System and Method For Configuration Of Adaptive Integrated Circuitry Having Fixed, Application Specific Computational Elements”, filed Nov. 30, 2001, commonly assigned to QuickSilver Technology, Inc., and incorporated by reference herein, with priority claimed for all commonly disclosed subject matter (the “second related application”).