IP Library Granted Patent US 8,402,400
Granted Patent B1
US 8,402,400 · App. 12/932,140 · Granted Mar 19, 2013

Method and apparatus for implementing a processor interface block with an electronic design automation tool

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,402,400
App. No.
12/932,140
Granted
Mar 19, 2013
Kind
B1
Abstract

An electric design automation (EDA) tool for generating a design of a system on a field programmable gate array (FPGA) includes a library that includes a processor interface block selectable by a designer to represent a component in the design that is accessible to a processor. The EDA tool also includes a processor interface circuitry generation unit to automatically generate circuitry in the design to support the processor interface block without input from the designer.

Claims (32)

1. An electronic design automation (EDA) tool for generating a design of a system on a target device, the EDA tool comprising:

a library comprising a processor interface block, wherein the processor interface block is user selectable for inclusion in the design of the system, wherein the processor interface block is operable to interface with a processor outside of the target device; and

a processor interface circuitry generator operable to generate a circuit design for the processor interface block in response to a selection of the processor interface block from the library, wherein the circuit design is generated independent of further user input.

2. The EDA tool of claim 1 , wherein the processor interface block is operable to receive data from the processor to be read by a component on the system.

3. The EDA tool of claim 1 , wherein the circuit design for the processor interface block comprises:

a register operable to store data;

an address decoder operable to identify a matching address generated by the processor;

a write circuit operable to enable data to be written into the register in response to the address decoder identifying the matching address and a write signal generated by the processor; and

a data selector operable to select data stored in the register if an address corresponding to the register is generated by the processor.

4. The EDA tool of claim 3 , wherein the data selector comprises a network of multiplexers.

5. The EDA tool of claim 1 , wherein the processor interface block is operable to receive data from a component on the system to be read by the processor.

6. The EDA tool of claim 1 , wherein the circuit design for the processor interface block comprises:

a register operable to store data from a component in the system; and

a data selector operable to select data stored in the register if an address corresponding to the register is generated by the processor.

7. The EDA tool of claim 1 , further comprising an intermediate representation generator operable to generate an intermediate representation of the system without pipeline delays from a description of the system, wherein the description of the system comprises functional units selected from the library.

8. The EDA tool of claim 7 , further comprising a high level synthesis unit operable to generate a register transfer language (RTL) representation of the system to be implemented from the intermediate representation of the system, wherein the RTL representation comprises pipelined delays operable to allow the system to satisfy a maximum frequency of a clock as implemented on the target device.

9. A method for designing a system to be implemented on a target device, the method comprising:

providing a library of selectable functional units selectable by a designer to generate a description of the system, wherein the library of selectable functional units comprises a processor interface block operable to interface with a processor residing off the target device; and

generating a circuit design for the processor interface block in the description of the system, independent of input from the designer, in response to a selection of the processor interface block from the library, wherein at least one of the providing and generating is performed by a computer system.

10. The method of claim 9 , wherein the processor interface block is operable to receive data from the processor to be read by a component on the system.

11. The method of claim 9 , wherein generating the circuit design comprises generating a register operable to store data, a write circuit operable to enable data to be written into the register in response to identifying the matching address and a write signal generated by the processor, and a data selector operable to select data stored in the register if an address corresponding to the register is generated by the processor.

12. The method of claim 11 , wherein generating the data selector comprises generating a network of multiplexers.

13. The method of claim 9 , wherein the processor interface block receives data from a component on the system to be read by the processor.

14. The method of claim 9 , further comprising generating an intermediate representation of the system without pipeline delays from the description of the system.

15. The method of claim 14 , further comprising generating a register transfer language (RTL) representation of the system from the intermediate representation of the system, the RTL representation including pipelined delays to allow the system to satisfy a maximum frequency of a clock as implemented on the target device.

16. A non-transitory computer readable medium including a sequence of instructions stored thereon for causing a computer to execute a method comprising:

providing a library of selectable functional units selectable by a designer to generate a description of a system to be implemented on a target device, wherein the library of selectable functional units comprises a processor interface block operable to interface with a processor; and

generating a circuit design for the processor interface block in the description of the system, independent of input from the designer, in response to a selection of the processor interface block from the library, wherein the circuit design comprises a data selector comprising a network of multiplexers.

17. The non-transitory computer readable medium of claim 16 , wherein the processor resides off the target device.

18. The non-transitory computer readable medium of claim 16 , wherein generating the circuit design comprises generating a register operable to store data, and a write circuit operable to enable data to be written into the register in response to identifying the matching address and a write signal generated by the processor, wherein the data selector is operable to select data stored in the register if an address corresponding to the register is generated by the processor.

19. The non-transitory computer readable medium of claim 16 , further comprising generating an intermediate representation of the system without pipeline delays from the description of the system.

20. The non-transitory computer readable medium of claim 19 , further comprising generating a register transfer language (RTL) representation of the system from the intermediate representation of the system, wherein the RTL representation comprises pipelined delays operable to allow the system to satisfy a maximum frequency of a clock as implemented on the target device.

Assignments (2)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2011
From: PERRY, STEVEN
To: ALTERA CORPORATION
Reel/Frame 025890/0684 →