Methods of implementing embedded processor systems including state machines
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-017/50
H03K-017/693
출원번호
UP-0880723
(2007-07-24)
등록번호
US-7552405
(2009-07-01)
발명자
/ 주소
James Roxby, Philip B.
출원인 / 주소
Xilinx, Inc.
대리인 / 주소
Cartier, Lois D.
인용정보
피인용 횟수 :
2인용 특허 :
10
초록▼
Methods of implementing state machines using embedded processors. The designer specifies the logical footprint of the state machine in a formalism that can be transformed into hardware. This approach decouples the designer from the design, so that a state machine can be moved between embedded proce
Methods of implementing state machines using embedded processors. The designer specifies the logical footprint of the state machine in a formalism that can be transformed into hardware. This approach decouples the designer from the design, so that a state machine can be moved between embedded processors (e.g., between a hard processor and a soft processor), without any modifications to the code. One or more source-to-source transformations can be performed to improve the run-time performance of the state machine. These transformations can include the insertion of one or more jump addresses directly into the code, bypassing the standard lookup table approach for memory addressing, and consequently speeding up the execution of the code. The jump addresses can include, for example, a jump address for the start of each state machine, and/or a jump address for each state within the state machines.
대표청구항▼
What is claimed is: 1. A method, comprising: specifying a name and input or output size for a first state machine; writing first code for the first state machine using a high-level language, the first code being independent of a processor implementation; and executing computer-implemented code to i
What is claimed is: 1. A method, comprising: specifying a name and input or output size for a first state machine; writing first code for the first state machine using a high-level language, the first code being independent of a processor implementation; and executing computer-implemented code to implement a processor subsystem including the first state machine, the executing comprising: providing first variable declarations for the first code; constructing a complete software application including the first code and the first variable declarations; assembling the complete software application wherein assembled and unlinked code is generated; applying a source-to-source transformation to the assembled and unlinked code, the source-to-source transformation inserting a jump address into the assembled and unlinked code; re-assembling the assembled and unlinked code after applying the source-to-source transformation, wherein assembled and linked code is generated; extracting the jump address from the assembled and linked code; generating an implementation of a physical interface for a processor in the processor subsystem utilizing the extracted jump address and the specified name and input or output size for the first state machine; and outputting the implementation of the processor subsystem utilizing the assembled and linked code and the implementation of the physical interface. 2. The method of claim 1, wherein the processor comprises an embedded processor in a programmable logic device (PLD). 3. The method of claim 2, wherein the physical interface is coupled between the processor and a hardware circuit implemented in the PLD. 4. The method of claim 3, wherein the hardware circuit is implemented in programmable fabric of the PLD. 5. The method of claim 1, wherein the high-level language is C. 6. The method of claim 1, wherein the applying the source-to-source transformation comprises inserting a jump address for the first state machine into the assembled and unlinked code. 7. The method of claim 1, wherein the applying the source-to-source transformation comprises inserting jump addresses for states within the first state machine into the assembled and unlinked code. 8. The method of claim 1, wherein: the method further comprises: specifying a name and input or output size for a second state machine, and writing second code for the second state machine using the high-level language, the second code being independent of the processor implementation; the executing further comprises providing second variable declarations for the second code; the complete software application further includes the second code and the second variable declarations; and the generating further utilizes the specified name and input or output size for the second state machine. 9. The method of claim 8, wherein the applying the source-to-source transformation comprises inserting jump addresses for the first and second state machines into the assembled and unlinked code. 10. The method of claim 8, wherein the applying the source-to-source transformation comprises inserting jump addresses for states within the first and second state machines into the assembled and unlinked code. 11. An article of manufacture, comprising: a computer-readable storage medium comprising computer-executable code for implementing a processor subsystem including a first state machine, the medium comprising: code for providing first variable declarations for the first code, based on previously specified name and input or output size for a first state machine; code for constructing a complete software application including first code and the first variable declarations, wherein the first code describes the first state machine using a high-level language, the first code being independent of a processor implementation; code for assembling the complete software application wherein assembled and unlinked code is generated; code for applying a source-to-source transformation to the assembled and unlinked code, the source-to-source transformation inserting a jump address into the assembled and unlinked code; code for re-assembling the assembled and unlinked code after applying the source-to-source transformation, wherein assembled and linked code is generated; code for extracting the jump address from the assembled and linked code; code for generating an implementation of a physical interface for a processor in the processor subsystem utilizing the extracted jump address and the specified name and input or output size for the first state machine; and code for outputting the implementation of the processor subsystem utilizing the assembled and linked code and the implementation of the physical interface. 12. The article of manufacture of claim 11, wherein the processor comprises an embedded processor in a programmable logic device (PLD). 13. The article of manufacture of claim 12, wherein the physical interface is coupled between the processor and a hardware circuit implemented in the PLD. 14. The article of manufacture of claim 13, wherein the hardware circuit is implemented in programmable fabric of the PLD. 15. The article of manufacture of claim 10, wherein the high-level language is C. 16. The article of manufacture of claim 10, wherein the code for applying the source-to-source transformation comprises code for inserting a jump address for the first state machine into the assembled and unlinked code. 17. The article of manufacture of claim 10, wherein the code for applying the source-to-source transformation comprises code for inserting jump addresses for states within the first state machine into the assembled and unlinked code. 18. The article of manufacture of claim 10, wherein: the medium further comprises code for providing second variable declarations for second code for a second state machine, based on a previously specified name and input or output size for the second state machine; the complete software application further includes the second code and the second variable declarations, wherein the second code describes the second state machine using the high-level language, the second code being independent of the processor implementation; and the code for generating further utilizes the specified name and input or output size for the second state machine. 19. The article of manufacture of claim 18, wherein the code for applying the source-to-source transformation comprises code for inserting jump addresses for the first and second state machines into the assembled and unlinked code. 20. The article of manufacture of claim 18, wherein the code for applying the source-to-source transformation comprises code for inserting jump addresses for states within the first and second state machines into the assembled and unlinked code.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (10)
Schubert, Nils Endric; Beardslee, John Mark; Perry, Douglas L., Design instrumentation circuitry.
Beardslee, John Mark; Schubert, Nils Endric; Perry, Douglas L., Method and system for providing an electronic system design with enhanced debugging capabilities.
Baxter,Michael A., Reduced instruction set computer architecture with duplication of bit values from an immediate field of an instruction multiple times in a data word.
Lemay Richard A. (Carlisle MA) Tague Steven A. (Tyngsboro MA) Woods William E. (Natick MA), State machine for executing commands within a minimum number of cycles by accomodating unforseen time dependency accordi.
Ginter Karl L. ; Shear Victor H. ; Sibert W. Olin ; Spahn Francis J. ; Van Wie David M., Systems and methods for secure transaction management and electronic rights protection.
Wong, Jason; Chiu, Gordon Raymond; Singh, Deshanand; Manohararajah, Valavan, Method and apparatus for optimizing implementation of a soft processor executing a fixed program on a target device.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.