1. A method for configuring a programmable logic device, comprising:
accessing at least one boot core with the programmable logic device, the at least one boot core for configuring the programmable logic device;
configuring the programmable logic device responsive to the at least one boot core accessed that provides a peripheral interface internal to the programmable logic device, the peripheral interface for connectivity to obtain encoded data external to the programmable logic device;
the configuring of the programmable logic device responsive to the at least one boot core accessed further providing an internal configuration access port controller instantiated in programmable logic of the programmable logic device for controlling access to an internal configuration access port of the programmable logic device;
obtaining the encoded data by the programmable logic device via the peripheral interface;
accessing at least one set of instructions by a processing device of the programmable logic device;
decoding by the processing device the encoded data with the at least one set of instructions to provide configuration data;
accessing by the processing device at least one interface library; and
programming using the processing device of the programmable logic device with the configuration data using the at least one interface library, the configuration data written to configuration memory of the programmable logic device via the internal configuration access port of the programmable logic device.
2. The method, according to claim 1, further comprising storing the encoded data in the programmable logic device.
3. The method, according to claim 2, further comprising storing the configuration data in the programmable logic device.
4. The method, according to claim 3, wherein the decoding comprises decompressing the encoded data.
5. The method, according to claim 3, wherein the decoding comprises decrypting the encoded data.
6. The method, according to claim 3, wherein the encoded data is in a design data format.
7. The method, according to claim 6, wherein the encoded data is for a virtual architecture design.
8. The method, according to claim 6, wherein the encoded data is a design for a legacy device of the programmable logic device.
9. The method, according to claim 1, wherein the processing device is a microprocessor.
10. The method, according to claim 9, wherein the microprocessor is a hardware embedded microprocessor in the programmable logic device.
11. The method, according to claim 9, wherein the microprocessor is instantiated in configurable logic of the programmable logic device.
12. The method, according to claim 1, wherein the processing device is a state machine.
13. The method, according to claim 12, wherein the state machine is instantiated in configurable logic of the programmable logic device.
14. The method, according to claim 1, wherein the configuring of the programmable logic device responsive to the at least one boot core accessed further provides a block random access memory controller instantiated in the programmable logic of the programmable logic device for controlling access to internal memory of the programmable logic device; and wherein the block random access memory and the internal configuration access port controller are bused to one another separately from the processing device.
15. The method, according to claim 1, wherein the at least one boot core comprises a processor as the processing device in the configurable logic of the programmable logic device.
16. The method, according to claim 1, wherein the programmable logic device is coupled to a network for obtainment of the encoded data over the network.
17. The method, according to claim 1, wherein the programmable logic device is coupled to an external bus for obtainment of the encoded data over the external bus.
18. The method, according to claim 1, wherein the programmable logic device is coupled to a direct-connect external drive for obtainment of the encoded data therefrom.
19. The method, according to claim 1, wherein the at least one boot core is stored in memory.
20. The method, according to claim 19, wherein the memory is internal to the programmable logic device.
21. The system, according to claim 19, wherein the memory is external to the programmable logic device.
22. The method, according to claim 1, further comprising:
checking for additional amounts of the encoded data;
obtaining each additional amount of the encoded data; and
repeating the decoding and the programming for each additional amount of the encoded data obtained.
23. The method, according to claim 22, wherein the repeating is for partial reconfiguration of the programmable logic device.
24. An apparatus for configuring a programmable logic device, comprising:
means for accessing at least one boot core with the programmable logic device, the at least one boot core for configuring the programmable logic device;
means for configuring the programmable logic device responsive to the at least one boot core accessed that provides a peripheral interface internal to the programmable logic device, the peripheral interface for connectivity to obtain encoded data external to the programmable logic device;
the means for configuring the programmable logic device responsive to the at least one boot core accessed further providing an internal configuration access port controller instantiated in programmable logic of the programmable logic device for controlling access to an internal configuration access port of the programmable logic device;
means for obtaining the encoded data by the programmable logic device via the peripheral interface;
means for processing instructions;
means for accessing by the means for processing instructions at least one set of instructions and at least one interface library, the means for processing instructions for decoding the encoded data with the at least one set of instructions to provide configuration data; and
the means for processing instructions for configuring the programmable logic device with the configuration data using the at least one processor interface library, the configuration data written to configuration memory of the programmable logic device via the internal configuration access port of the programmable logic device.
25. A method for configuring a programmable logic device, comprising:
accessing at least one boot core with the programmable logic device, the at least one boot core for configuring the programmable logic device;
configuring the programmable logic device responsive to the at least one boot core accessed that provides a peripheral interface and a decoder internal to the programmable logic device, the peripheral interface for connectivity to obtain encoded data external to the programmable logic device;
the configuring of the programmable logic device responsive to the at least one boot core accessed further providing an internal configuration access port controller instantiated in programmable logic of the programmable logic device for controlling access to an internal configuration access port of the programmable logic device;
obtaining the encoded data by the programmable logic device via the peripheral interface;
decoding by the decoder the encoded data to provide configuration data;
accessing by a processing device at least one processor interface library; and
programming using the processing device the programmable logic device with the configuration data using the at least one processor interface library, the configuration data written to configuration memory of the programmable logic device via the internal configuration access port of the programmable logic device.
26. The method, according to claim 25, wherein the processing device is a microprocessor.
27. The method, according to claim 25, wherein the processing device is a state machine.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method of distributing shared data for a group of individuals to the individuals’ mobile devices, the method comprising:
maintaining a central copy of the shared data in a central repository;
maintaining centrally stored group membership information defining at least one group, mobile device users who are members of the at least one group, and mobile devices associated with the mobile device users;
distributing the shared data for a particular one of the at least one group to the mobile devices of the mobile device users belonging to said particular group;
storing the distributed shared data on the mobile devices of the mobile device users belonging to said particular group for accession said mobile devices via a mobile user interface on said mobile devices, the mobile devices having a user interface for the users to interactively make changes to the shared data stored on the respective user’s mobile device;
returning information from the mobile devices of any changes made to the shared data on the mobile devices;
updating the central copy of the shared data in the central repository with the changes, and
distributing information of the changes to the shared data in the central repository to the mobile devices of the mobile device users belonging to said particular group;
wherein the group membership information further defines applications available on the individual mobile devices, and wherein distributing the shared data and information of the changes to the shared data is to only those of the mobile devices of the mobile device users belonging to said particular group that have an application for the shared data available.
2. The method of claim 1 wherein the distributing the shared data and information of the changes comprises using a tickle and pull data transfer protocol to transfer the shared data and information of the changes from the central repository to the mobile devices.
3. A method of distributing shared data for a group of individuals to the individuals’ mobile devices, the method comprising:
maintaining a central copy of the shared data in a central repository;
maintaining centrally stored group membership information defining at least one group, mobile device users who are members of the at least one group, and mobile devices associated with the mobile device users;
distributing the shared data for a particular one of the at least one group to the mobile devices of the mobile device users belonging to said particular group;
storing the distributed shared data on the mobile devices of the mobile device users belonging to said particular group for accession said mobile devices via a mobile user interface on said mobile devices, the mobile devices having a user interface for the users to interactively make changes to the shared data stored on the respective user’s mobile device;
returning information from the mobile devices of any changes made to the shared data on the mobile devices;
updating the central copy of the shared data in the central repository with the changes; and
distributing information of the changes to the shared data in the central repository to the mobile devices of the mobile device users belonging to said particular group;
wherein the distributing the shared data and information of the changes comprises using a tickle and pull data transfer protocol to transfer the shared data and information of the changes from the central repository to the mobile devices.
4. The method of claim 3 wherein the group membership information further defines applications available on the individual mobile devices, and wherein distributing the shared data and information of the changes to the shared data is to only those of the mobile devices of the mobile device users belonging to said particular group that have an application for the shared data available.
5. A data distribution system for distributing data shared by a group of mobile device users to the users’ mobile devices, the system comprising:
a group membership database having information defining at least one group, a plurality of users, membership of the users in the at least one group, and association of a plurality of mobile devices with the users;
a central repository containing at least one unit of data shared by one of the at least one group;
a distribution server operating to distribute a shared data unit for a group to mobile devices associated with users belonging to said group per the information of the group membership database, wherein the distribution server further operates to receive change data returned from the mobile devices that defines a change to the shared data unit made by any of said users of said group on such user’s mobile device, and further operating to distribute the change data to the mobile devices associated with said users belonging to said group per the information of the group membership database, whereby the data distribution system maintains the data shared by the group of mobile device users distributed to the users’ mobile devices updated with any changes made by the users on the users’ mobile devices; and
an application server containing application logic for processing the change data and applying the change to the data in the central repository.
6. The data distribution system of claim 5 further comprising: an application server containing application logic for processing the change data and applying the change to the data in the central repository.
7. The data distribution system of claim 6 wherein the information in the group membership database further defines availability of at least one application on the mobile devices, wherein the shared data unit pertains to one of the at least one application, the distribution server operating to distribute the shared data unit and change data to only those mobile devices of users belonging to said group on which said one application is available per the information in the group membership database.
8. The data distribution system of claim 6 wherein the distribution server distributes the shared data unit and change data to the mobile devices using a tickle and pull mobile data transfer protocol.
9. A data distribution system for distributing data shared by a group of mobile device users to the users’ mobile devices, the system comprising:
a group membership database having information defining at least one group, a plurality of users, membership of the users in the at least one group, and association of a plurality of mobile devices with the users;
a central repository containing at least one unit of data shared by one of the at least one group;
a distribution server operating to distribute a shared data unit for a group to mobile devices associated with users belonging to said group per the information of the group membership database, wherein the distribution server further operates to receive change data returned from the mobile devices that defines a change to the shared data unit made by any of said users of said group on such user’s mobile device, and further operating to distribute the change data to the mobile devices associated with said users belonging to said group per the information of the group membership database, whereby the data distribution system maintains the data shared by the group of mobile device users distributed to the users’ mobile devices updated with any changes made by the users on the users’ mobile devices; and
an application server containing application logic for processing the change data and applying the change to the data in the central repository;
wherein the information in the group membership database further defines availability of at least one application on the mobile devices, wherein the shared data unit pertains to one of the at least one application, the distribution server operating to distribute the shared data unit and change data to only those mobile devices of users belonging to said group on which said one application is available per the information in the group membership database.
10. The data distribution system of claim 9 wherein the distribution server further operates to assign sequence numbers to the change data returned from mobile devices in sequence, and operates when a mobile device connects to the distribution server to distribute the change data assigned sequence numbers after that of the last change data received by that mobile device for groups to which the mobile device’s user belongs.
11. A data distribution system for distributing data shared by a group of mobile device users to the users’ mobile devices, the system comprising:
a group membership database having information defining at least one group, a plurality of users, membership of the users in the at least one group, and association of a plurality of mobile devices with the users;
a central repository containing at least one unit of data shared by one of the at least one group;
a distribution server operating to distribute a shared data unit for a group to mobile devices associated with users belonging to said group per the information of the group membership database, wherein the distribution server further operates to receive change data returned from the mobile devices that defines a change to the shared data unit made by any of said users of said group on such user’s mobile device, and further operating to distribute the change data to the mobile devices associated with said users belonging to said group per the information of the group membership database, whereby the data distribution system maintains the data shared by the group of mobile device users distributed to the users’ mobile devices updated with any changes made by the users on the users’ mobile devices; and
an application server containing application logic for processing the change data and applying the change to the data in the central repository;
wherein the distribution server distributes the shared data unit and change data to the mobile devices using a tickle and pull mobile data transfer protocol.
12. The data distribution system of claim 11 wherein the distribution server further operates to assign sequence numbers to the change data returned from mobile devices in sequence, and operates when a mobile device connects to the distribution server to distribute the change data assigned sequence numbers after that of the last change data received by that mobile device for groups to which the mobile device’s user belongs.
13. A mobile collaborative community system comprising:
a plurality of mobile devices operated by a plurality of users, the mobile devices containing an implementation of at least one of a plurality of applications and a mobile end of a data transfer protocol;
a central repository of data shared by groups of the users for the applications;
a distribution server having group membership information defining which of the mobile devices are operated by users of each group and which of the applications are implemented on the mobile devices, the distribution server containing an implementation of a server end of the data transfer protocol, the distribution server operating to distribute the data in the central repository to the mobile devices according to the membership of the user of the mobile devices in the groups and availability of the applications on the mobile devices using the data transfer protocol, wherein the distribution server further operates to receive in return from the mobile device mobile change data for changes made by the users operating the mobile devices to the shared data, and the distribution server further operating to distribute update data based on the change data to the mobile devices according to the membership of the user of the mobile devices in the groups and availability of the applications on the mobile devices using the data transfer protocol; and
an application server containing application logic for processing the change data, applying changes defined by the change data to update the shared data in the central repository, and generate the update data for distribution to the mobile devices.
14. The mobile collaborative community system of claim 13 wherein the data transfer protocol is a tickle and pull mobile data transfer protocol.
15. A mobile collaborative community system comprising:
a plurality of mobile devices operated by a plurality of users, the mobile devices containing an implementation of at least one of a plurality of applications and a mobile end of a data transfer protocol;
a central repository of data shared by groups of the users for the applications; and
a distribution server having group membership information defining which of the mobile devices are operated by users of each group and which of the applications are implemented on the mobile devices, the distribution server containing an implementation of a server end of the data transfer protocol, the distribution server operating to distribute the data in the central repository to the mobile devices according to the membership of the user of the mobile devices in the groups and availability of the applications on the mobile devices using the data transfer protocol, wherein the distribution server further operates to receive in return from the mobile device mobile change data for changes made by the users operating the mobile devices to the shared data, and the distribution server further operating to distribute update data based on the change data to the mobile devices according to the membership of the user of the mobile devices in the groups and availability of the applications on the mobile devices using the data transfer protocol;
wherein the distribution server further operates to assign sequence numbers to the update data for the change data returned from mobile devices in sequence, and operates when a mobile device connects to the distribution server to distribute the update data assigned sequence numbers after that of the last update data received by that mobile device for the group’s shared data.
16. The mobile collaborative community system of claim 15 wherein the data transfer protocol is a tickle and pull mobile data transfer protocol.