Seamless interface for hardware and software data transfer
First Claim
1. An interface for data transfer for use by simulation software and a hardware emulator associated with an integrated circuit design, the interface comprising:
- a data producer configured to push a plurality of elements,a first-in-first-out (FIFO) configured to receive the elements pushed by the data producer and to store pushed elements; and
a data consumer configured to request the pushed elements from the FIFO,the FIFO comprising;
a buffer array configured to store elements in software;
memory configured to store elements in hardware;
a first push pointer and a first pop pointer associated with the buffer array;
a second push pointer and a second pop pointer associated with the memory; and
a policy manager configured to enforce a policy for data transfer between the buffer array and the memory, wherein;
the interface is configured to facilitate moving a portion of hardware emulator functionalities into the simulation software and vice-versa at runtime by utilizing the FIFO, and the policy manager conditions the copying to the buffer array of a content in the memory upon request by the buffer array for synchronization with the memory.
1 Assignment
0 Petitions
Accused Products
Abstract
An interface, a method, and a system are provided. In one or more aspects, the interface is for data transfer between simulation software and a hardware emulator associated with an integrated circuit design and includes a data producer to push a number of elements. A data element includes variable bits of data and variable bits of control information. A first-in-first-out (FIFO) receives the elements pushed by the data producer and stores pushed elements. A data consumer requests the pushed elements from the FIFO. The FIFO includes a buffer array, memory, a first push pointer and a first pop pointer associated with the buffer array, and a second push pointer and a second pop pointer associated with the memory. The buffer array stores elements in software and the memory stores elements in hardware. The interface facilitates moving a portion of hardware emulator functionalities into the simulation software and vice-versa at runtime by utilizing the FIFO.
-
Citations
20 Claims
-
1. An interface for data transfer for use by simulation software and a hardware emulator associated with an integrated circuit design, the interface comprising:
-
a data producer configured to push a plurality of elements, a first-in-first-out (FIFO) configured to receive the elements pushed by the data producer and to store pushed elements; and a data consumer configured to request the pushed elements from the FIFO, the FIFO comprising; a buffer array configured to store elements in software; memory configured to store elements in hardware; a first push pointer and a first pop pointer associated with the buffer array; a second push pointer and a second pop pointer associated with the memory; and a policy manager configured to enforce a policy for data transfer between the buffer array and the memory, wherein; the interface is configured to facilitate moving a portion of hardware emulator functionalities into the simulation software and vice-versa at runtime by utilizing the FIFO, and the policy manager conditions the copying to the buffer array of a content in the memory upon request by the buffer array for synchronization with the memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A computer-implemented method of interfacing simulation software and a hardware emulator associated with an integrated circuit design, the computer-implemented method comprising:
-
providing a first-in-first-out (FIFO) interface configured to facilitate moving a portion of hardware emulator functionalities into the simulation software; and configuring the FIFO interface to; receive elements pushed by a data producer, store pushed elements into a respective one of first or second memory;
increment a respective one of a first or a second push pointer;send elements from the respective one of the first or second memory to a data consumer; and increment a respective one of a first or a second pop pointer, wherein configuring the FIFO interface further comprises enforcing a data transfer policy between the first memory and the second memory upon a request for synchronization from either one of the first memory and the second memory. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A system for executing simulation software and a hardware emulator associated with an integrated circuit design, the system comprising:
-
a computing device; a plurality of servers in communication with the computing device; an interface configured to facilitate moving a portion of the hardware emulator functionalities into the simulation software by utilizing a first-in-first-out (FIFO) interface; and a policy manager configured to enforce a policy for data transfer between a first memory and a second memory, wherein; one or more of the computing device and the plurality of servers are configured to execute one or more design simulation software or hardware emulation runs associated with an integrated circuit design, the FIFO interface is configured to; receive elements pushed by a data producer; store pushed elements into a respective one of first or second memory; increment a respective one of a first or a second push pointer; send elements from the respective one of the first or second memory to a data consumer; and increment a respective one of a first or a second pop pointer, and the policy manager is configured to condition to copy at least a portion of the content of the first memory to the second memory upon a request for synchronization from the second memory.
-
Specification