Patent ID: 9262136
Filing Date: 2016-02-16
CPC Classification: G06F

Claim Text:
1. A method comprising: (a) receiving a first amount of code, onto a compiler, wherein the first amount of code includes an allocate instruction and an API (Application Programming Interface) call, wherein the allocate instruction includes a symbol that identifies one of a plurality of non-memory resource instances and the allocate instruction further includes a scope level value, wherein the scope level value indicates a scope level of the symbol of the allocate instruction, which is a circuit level of a circuit hierarchy, wherein the API call is a call to perform an operation on one of a plurality of non-memory resource instances, wherein the API call also includes the symbol, and wherein said one of the non-memory resource instances is indicated by the symbol of the API call and the non-memory resource instances are hardware circuits; (b) replacing, by the compiler, the API call in the first amount of code with a plurality of API instructions, wherein the plurality of API instructions include the symbol; (c) receiving, onto a linker, location information indicting where the plurality of API instructions are to be loaded in a circuit; (d) generating, by the linker, a modified symbol using the location information and the scope level value, wherein the modified symbol is unique within the scope level indicated by the scope value; (e) replacing, by the linker, the symbol in the plurality of API instructions with the modified symbol; (f) allocating, by the linker, a value to be associated with the symbol, wherein the value is one of a plurality of values, and wherein each value of the plurality of values corresponds to a respective one of the plurality of non-memory resource instances; and (g) generating, by the linker, a second amount of code, wherein the second amount of code includes the API instructions, and wherein the API instructions are for using the value allocated in (f) to generate an address of a register and are for using the address of the register to perform an access of the register, wherein the register is a register within said one of the non-memory resource instances.