Claims
- 1. A method for programming reconfigurable target hardware, comprising the steps of:
storing a plurality of computer code segments containing executable computer code for performing a plurality of algorithms; displaying a graphical workspace; receiving a user request to display a plurality of predefined graphical icons in said workspace, and at least one interconnection between two of said icons, wherein said icons correspond to respective ones of said computer code segments; receiving a user request to prepare computer code for executing a process defined by said icons and interconnection; and responsive to said request, causing one or more data processors to compile a plurality of said computer code segments in accordance with said displayed icons and interconnections to generate a download file for said reconfigurable target hardware, wherein said download file is used to cause said target hardware to be configured to perform said process.
- 2. The method of claim 1, wherein at least one of said icons represents a predefined circuit for executing a predefined algorithm.
- 3. The method of claim 2, wherein a first one of said icons includes an input data handle, a second one of said icons includes an output data handle, and said at least one interconnection connects said input data handle to said output data handle.
- 4. The method of claim 2, wherein said at least one interconnection represents an event trigger signal.
- 5. The method of claim 1, further comprising the step of using said download file to configure said reconfigurable target hardware.
- 6. The method of claim 1, further comprising the step of outputting said computer code in a human-readable computer language format.
- 7. The method of claim 1, wherein at least one of said plurality of predefined graphical icons represents a data structure, said method further comprising the step of determining whether said data structure should be instantiated in hardware as a multi-port memory based at least in part on a number of interconnections connected to said at least one of said plurality of predefined graphical icons.
- 8 The method of claim 1, further comprising the step of analyzing said graphical icons and said at least one interconnection to determine whether any data dependencies exist in a process defined by said icons and connection.
- 9. The method of claim 8, further comprising the step of instantiating a plurality of circuits corresponding to said icons in parallel based on said step of analyzing.
- 10. The method of claim 1, further comprising the step of prompting said user for argument data associated with one of said graphical icons.
- 11. The method of claim 10, wherein said code segments includes one or more argument placeholders, said method further comprising the step of copying said code segments and substituting said argument data for said argument placeholders.
- 12. The method of claim 1, wherein said download file is in a Register Transfer Level format.
- 13. The method of claim 1, wherein said user request to display a plurality of predefined graphical icons is entered using a stylus and a display sensitive to said stylus.
- 14. The method of claim 1, further comprising the step of storing said computer code for executing said process defined by said icons and interconnection, and associating said computer code with an icon.
- 15. The method of claim 1, further comprising the step of transmitting said download file to a location of said target hardware, where said location of said target hardware is different from a location of said user.
- 16. The method of claim 1, wherein said graphical icons assigned to a hierarchy including one or more theater, stage, actor and prop abstractions.
- 17. A computing system, comprising:
one or more processors; a display, communicatively coupled to said one or more processors; an input device, communicatively coupled to said one or more processors; and an electronically-readable storage medium, communicatively coupled to said one or more processors, and containing executable program code that causes said one or more processors to perform the following steps:
store a plurality of computer code segments containing executable computer code for performing a plurality of algorithms; display a graphical workspace on said display; receive, via said input device, a user request to display a plurality of predefined graphical icons in said workspace, and at least one interconnection between two of said icons, wherein said icons correspond to respective ones of said computer code segments; receive, via said input device, a user request to prepare computer code for executing a process defined by said icons and interconnection; and responsive to said request, causing one or more data processors to compile a plurality of said computer code segments in accordance with said displayed icons and interconnections to generate a download file for said reconfigurable target hardware.
- 18. A computing device, comprising:
one or more processors; a user input device; a display configured to detect said user input device; one or more memories, storing program instructions that cause said one or more processors to perform the following steps:
display a workspace on said display; detect a pattern defined by said user input device on said display; compare said detected pattern with a library of predefined graphical patterns; when said pattern matches a predefined pattern in said library, extracting a computer code segment from a database associated with said device, said computer code segment representing programming instructions for performing an algorithm associated with said predefined pattern; using said computer code segment to generate a data file; and downloading said data file to a reconfigurable computing platform, such that said reconfigurable computing platform executes said algorithm at hardware speed.
- 19. The computing device of claim 18, wherein said program instructions further cause said one or more processors to display a plurality of user-selected graphical icons on said display, and one or more interconnections between said icons.
- 20. The computing device of claim 19, wherein at least one of said one or more interconnections represents an event trigger signal.
- 21. The computing device of claim 18, wherein said one or more memories store a plurality of computer code segments, each corresponding to an algorithm represented by said detected pattern.
- 22. The computing device of claim 18, wherein said reconfigurable computing platform is a field-programmable array of logic, and said data file is a binary download file for said field-programmable array of logic.
- 23. The computing device of claim 22, wherein said download file causes said target hardware to perform said algorithm with parallel processing.
- 24. The computing device of claim 18, wherein said program instructions further cause said one or more processors to detect a second pattern on said display, said second pattern corresponding to a data structure.
- 25. The computing device of claim 24, wherein said program instructions further cause said one or more processors to identify a plurality of algorithms that interact with said data structure; determine whether a data dependency exists with respect to said data structure, and if no data dependency exists, writing said data file to permit simultaneous execution of said plurality of algorithms.
- 26. A method for preparing a download file for target hardware, comprising the steps of:
receiving configuration information identifying a target hardware; displaying, responsive to a user request, a plurality of graphical icons representing predefined algorithms, and a plurality of graphical icons representing data elements; receiving user requests to create interconnections between two or more of said graphical icons; automatically converting said display of graphical icons and interconnections into programming instructions for performing said algorithms in accordance with said interconnections, wherein said programming instructions are optimized in accordance with said configuration information.
- 27. A method for configuring a reconfigurable hardware platform, comprising the steps of:
using a graphical authoring utility to create a plurality of logically-connected abstractions of physical phenomena, wherein said abstractions represent a plurality of triggered behaviors, and logical connections represent cues that trigger said behaviors; forwarding said plurality of logically-connected abstractions to a distiller, wherein said distiller redefines said logically-connected abstractions into hardware description language constructs suitable for a target reconfigurable hardware platform; and transferring at least some of said constructs to a host of said reconfigurable hardware computing platform for synthesis into one or more target primitives and execution.
- 28. The method of claim 27, wherein at least one of said behaviors is instantiated as a triggered lookup table.
- 29. The method of claim 27, wherein interconnections between said abstractions are dynamic.
- 30. The method of claim 27, wherein two or more of said behaviors are synthesized as parallel blocks of logic within said reconfigurable hardware platform, such that said behaviors may be executed in parallel.
- 31. The method of claim 27, wherein said abstractions are precompiled.
- 32. The method of claim 27, further comprising the step of storing said constructs as a predefined abstraction for future use.
- 33. The method of claim 27, wherein said step of transferring further includes the step of transferring a first portion of said constructs to a host of a first reconfigurable hardware computing platform, and transferring a second portion of said constructs to a host of a second reconfigurable hardware computing platform, and using said first and second platforms to jointly execute said behaviors.
- 34. The method of claim 33, wherein said first and second platforms are located in separate locations.
- 35. The method of claim 34, wherein said second platform includes replicate hardware, and lacks said authoring utility.
- 36. The method of claim 27, wherein said reconfigurable hardware computing platform is located remotely from a location of said graphical authoring utility.
- 37. A method of analyzing a behavior, comprising the steps of:
defining a computational model for said behavior; preparing an abstraction flow of said computational model; responsive to a user request, automatically converting said abstraction flow into computer code for configuring a reconfigurable target platform; using said computer code to configure said reconfigurable target platform; causing said target platform to execute said computational model; recording data values during said execution of said computational model; using said data values to define a behavioral model for said computational model.
- 38. The method of claim 37, wherein said abstraction flow is a graphical representation of an algorithm defined by said computational model.
- 39. The method of claim 38, wherein said step of preparing further comprises the step of using a pointing device on a display that is configured to detect said pointing device to create graphical symbols on said display; and
comparing said graphical symbols with a library of predefined graphical symbols to identify algorithms associated with said graphical symbols.
- 40. The method of claim 38, wherein said step of preparing further includes the step of using a graphical symbol to represent an unknown behavior under study, wherein said graphical symbol is associated with data collection computer code.
- 41. The method of claim 37, further comprising the step of defining a new hardware primitive corresponding to said behavioral model.
- 42. The method of claim 37, further comprising the step of defining a second computational model existing at a higher level of abstraction than said computational model, and using said computational model in defining said second computational model.
- 43. The method of claim 42, further comprising the step of configuring said reconfigurable target platform to execute said second computational model using said behavioral model.
- 44. The method of claim 42, further comprising the step of configuring a second reconfigurable target platform to execute said second computational model using said behavioral model.
Parent Case Info
[0001] The present application claims priority, under 35 U.S.C. 119(e), to copending U.S. provisional application serial No. 60/407,703, entitled “A Device, Methodology and Development Environment for the Modeling of Physical Phenomena Within a Reconfigurable Computational Platform,” filed Sep. 4, 2002, and U.S. provisional application serial No. 60/407,702, entitled “A Device, Methodology and Application Development for Signals Intelligence Using a Reconfigurable Computational Platform,” filed Sep. 4, 2002, the disclosures of which are both hereby incorporated by reference.
[0002] A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60407702 |
Sep 2002 |
US |
|
60407703 |
Sep 2002 |
US |