Configuring a programmable device using high-level language
원문보기
IPC분류정보
국가/구분
United States(US) Patent
등록
국제특허분류(IPC7판)
G06F-017/50
H03K-019/177
출원번호
US-0369829
(2012-02-09)
등록번호
US-8959469
(2015-02-17)
발명자
/ 주소
Chen, Doris Tzu-Lang
Singh, Deshanand
출원인 / 주소
Altera Corporation
대리인 / 주소
Ropes & Gray LLP
인용정보
피인용 횟수 :
6인용 특허 :
40
초록▼
A method of preparing a programmable integrated circuit device for configuration using a high-level language includes compiling a plurality of virtual programmable devices from descriptions in said high-level language. The compiling includes compiling configurations of configurable routing resources
A method of preparing a programmable integrated circuit device for configuration using a high-level language includes compiling a plurality of virtual programmable devices from descriptions in said high-level language. The compiling includes compiling configurations of configurable routing resources from programmable resources of said programmable integrated circuit device, and compiling configurations of a plurality of complex function blocks from programmable resources of said programmable integrated circuit device. A machine-readable data storage medium may be encoded with a library of such compiled configurations. A virtual programmable device may include a stall signal network and routing switches of the virtual programmable device may include stall signal inputs and outputs.
대표청구항▼
1. A method of preparing a programmable integrated circuit device for configuration using a high-level language, said method comprising: compiling a plurality of virtual programmable devices from descriptions in said high-level language; said compiling comprising:compiling configurations of configur
1. A method of preparing a programmable integrated circuit device for configuration using a high-level language, said method comprising: compiling a plurality of virtual programmable devices from descriptions in said high-level language; said compiling comprising:compiling configurations of configurable routing resources from programmable resources of said programmable integrated circuit device, andcompiling configurations of a plurality of complex function blocks from programmable resources of said programmable integrated circuit device;storing said compiled plurality of virtual programmable devices; andproviding said stored compiled plurality of virtual programmable devices to a user for selection and configuration of one of said stored compiled plurality of virtual programmable devices. 2. The method of claim 1, wherein said high-level language is OpenCL. 3. The method of claim 1, wherein said compiling configurations of configurable routing resources comprises compiling a pipelined stall signal network. 4. The method of claim 3, wherein said compiling a pipelined stall signal network comprises compiling a bidirectional stall signal network that is pipelined in both directions. 5. The method of claim 3, wherein said compiling a pipelined stall signal network comprises compiling a network including a plurality of routing switches, each of said routing switches having: an input and at least one output;a respective register for a stall signal on each of said input and said at least one output;an output data stall register for storing output data during a stall of any of said at least one output;a first input data stall register for storing data received at said input prior to a stall of said input; anda second input data stall register for storing data present at said input when said input stalls. 6. The method of claim 1, wherein said plurality of complex function blocks comprises at least one of an arithmetic function block, a trigonometric function block, a multiplexing logic block, or a soft processor block. 7. The method of claim 1, further comprising configuring input registers for at least one complex function block of said plurality of complex function blocks for balancing said configurable routing resources. 8. The method of claim 7, wherein said configuring input registers comprises configuring a respective FIFO on at least one input of said at least one complex function block of said plurality of complex function blocks. 9. The method of claim 8, wherein said configuring input registers comprises configuring a respective FIFO on each input of each complex function block of said plurality of complex function blocks. 10. The method of claim 8, wherein said configuring a respective FIFO comprises configuring a respective FIFO having a respective depth equal to a respective maximum expected pipeline imbalance. 11. The method of claim 1, wherein said compiling a plurality of virtual programmable devices comprises compiling at least one virtual programmable device that is reconfigurable during operation. 12. A non-transitory machine readable storage medium encoded with: a plurality of pre-compiled configurations for selection by a user to configure a programmable integrated circuit device, each of said compiled configurations, when executed by a processor on said programmable integrated circuit device after selection by the user, causing instantiation, on said programmable integrated circuit device, of a respective virtual programmable device by executing a high-level synthesis language, each said respective virtual programmable device:comprising a respective routing resource configuration, andconfigurations for a plurality of complex function blocks, andbeing further configurable by a programmable integrated circuit device configuration bitstream. 13. The non-transitory machine readable storage medium of claim 12, wherein each respective routing resource configuration instantiates a pipelined stall signal network. 14. The non-transitory machine readable storage medium of claim 13, wherein each respective routing resource configuration instantiates a bidirectional stall signal network that is pipelined in both directions. 15. The non-transitory machine readable storage medium of claim 13, wherein each respective routing resource configuration instantiates a pipelined stall signal network including a plurality of routing switches, each of said routing switches having: an input and at least one output;a respective register for a stall signal on each of said input and said at least one output;an output data stall register for storing output data during a stall of any of said at least one output;a first input data stall register for storing data received at said input prior to a stall of said input; anda second input data stall register for storing data present at said input when said input stalls. 16. The non-transitory machine readable storage medium of claim 12, wherein said configurations for a plurality of complex function blocks comprise configurations for at least one of an arithmetic function block, a trigonometric function block, a multiplexing logic block, or a soft processor block. 17. The non-transitory machine readable storage medium of claim 12, wherein said configurations for a plurality of complex function blocks comprise configurations for input registers for at least one of said plurality of complex function blocks for balancing said configurable routing resources. 18. The non-transitory machine readable storage medium of claim 17, wherein said configurations for input registers comprise configurations for a respective FIFO on at least one input of said at least one of said plurality of complex function blocks. 19. The non-transitory machine readable storage medium of claim 18, wherein said configurations for input registers comprise configurations for a respective FIFO on each input of each of said plurality of complex function blocks. 20. The non-transitory machine readable storage medium of claim 18, wherein said configurations for a respective FIFO comprise configurations for a respective FIFO having a respective depth equal to a respective maximum expected pipeline imbalance. 21. The non-transitory machine readable storage medium of claim 12, wherein said plurality of compiled configurations for a plurality of virtual programmable devices comprises at least one compiled configuration for a virtual programmable device that is reconfigurable, during operation, by another programmable logic device configuration bitstream. 22. A routing switch for use in a network in which stall signals control flow of signals, said routing switch comprising: an input for receiving data from a component in said network other than said routing switch;an input stall signal output for propagating an input stall signal to prevent data from being propagated to said input from said component;a plurality of respective outputs for propagating data to respective other locations in said network; anda respective output stall signal input associated with each said respective output for receiving a respective output stall signal from a respective one of said other locations to prevent said respective output from propagating data to said respective one of said other locations. 23. The routing switch of claim 22, further comprising: an input stall signal register for said input stall signal; anda respective output stall signal register for each of said respective output stall signals. 24. The routing switch of claim 22, further comprising an input data register for holding data received prior to assertion of one of said output stall signals until said data received prior to assertion of said one of said output stall signals can be propagated.
연구과제 타임라인
LOADING...
LOADING...
LOADING...
LOADING...
LOADING...
이 특허에 인용된 특허 (40)
Shah Shailesh I., Apparatus and method for reversing bits using a shifter.
Earl A. Killian ; Ricardo E. Gonzalez ; Ashish B. Dixit ; Monica Lam ; Walter D. Lichtenstein ; Christopher Rowen ; John C. Ruttenberg ; Robert P. Wilson ; Albert Ren-Rui Wang ; Dror Eliezer, Automated processor generation system for designing a configurable processor and method for the same.
Casselman Steven Mark (Reseda CA), FPGA virtual computer for executing a sequence of program instructions by successively reconfiguring a group of FPGA in.
Edwards, Stephen G.; Harris, Jonathan Craig; Jensen, James E.; Kollegger, Andreas Benno; Miller, Ian David; Sunderland Schanck, Christopher Robert; Davis, Donald J., Means and method for compiling high level software languages into algorithmically equivalent hardware representations.
Singh, Deshanand P.; Brown, Stephen D.; Borer, Terry P.; Sanford, Chris; Quan, Gabriel, Method and apparatus for placement of components onto programmable logic devices.
Rostoker Michael D. (Boulder Creek CA) Dangelo Carlos (Los Gatos CA) Mintz Doron (Sunnyvale CA), Method and system for creating and validating low level description of electronic design from higher level, behavior-ori.
Cooke Laurence H. ; Phillips Christopher E. ; Wong Dale, Method for compiling high level programming languages into an integrated processor with reconfigurable logic.
Sven Wuytack BE; Francky Catthoor BE; Hugo De Man BE, Method for determining a storage bandwidth optimized memory organization of an essentially digital device.
Jain Prem P., Method for graphically representing a digital device as a behavioral description with data and control flow elements, and for converting the behavioral description to a structural description.
Dummermuth Ernst H. (Chesterland OH) Galdun Daniel J. (Huntsburg OH) Grudowski Raymond A. (South Euclid OH) Stewart Daniel L. (Parma OH), Modular programmable controller.
Robinson Jeffrey I. (New Fairfield CT), Programmable integrated circuit using topological and parametric data to selectively connect and configure different hig.
Kodosky, Jeffrey L.; Andrade, Hugo; Odom, Brian Keith; Butler, Cary Paul; Mihal, Andrew, System and method for configuring a programmable hardware instrument to perform measurement functions utilizing estimation of the hardware implentation and management of hardware resources.
Kodosky Jeffrey L. ; Andrade Hugo ; Odom Brian K. ; Butler Cary P., System and method for configuring an instrument to perform measurement functions utilizing conversion of graphical programs into hardware implementations.
Panchul Yuri V. ; Soderman Donald A. ; Coleman Denis R., System for converting hardware designs in high-level programming language to hardware implementations.
Ashar, Pranav; Raghunathan, Anand; Bhattacharya, Subhrajit; Gupta, Aarti, Verification of scheduling in the presence of loops using uninterpreted symbolic simulation.
Styles, Henry E.; Fifield, Jeffrey M.; Wittig, Ralph D.; James-Roxby, Philip B.; Santan, Sonal; Varma, Devadas; Martinez Vallina, Fernando J.; Zhou, Sheng; Lo, Charles Kwah-Wah, Heterogeneous multiprocessor program compilation targeting programmable integrated circuits.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.