# US 2014/0156249 A1 · Modeling a bus for a system design incorporating one or more programmable processors

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0156249 A1
- Document ID: US20140156249A1
- Status: Published application
- Kind: A1
- Application number: 14/171,716
- Filed: 2014-02-03
- Published: 2014-06-05
- Earliest claimed: 2007-01-22
- Assignees: Synopsys, Inc.
- Applicants: Synopsys, Inc.
- Inventors: Neville A. Clark; James R. Torossian
- Web page: https://patentgrep.com/patent/US20140156249A1

## CPC

- G06F 30/3312: Timing analysis
- G06F 2119/12: Timing analysis or timing optimisation
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for modeling a bus for a system design are provided. In an embodiment, the method operates by accepting a virtual bus model, wherein the model simulates behavior for a bus master and slave device, such that the model accurately simulates the timing and behavior of the transfer of data from master to slave, and, from slave to master devices. The method routes a transaction issued by the master device to the slave device. The transaction has storage for transaction data, or a pointer to transaction data, to be transferred through the transaction. The transaction data is transferred in one or more data payloads and the sender of data sets the length of data payloads to be returned. The data payloads are sent from the sender of data to the receiver of data and may contain one or more bus data beats. This method accurately models the bus timing and behavior of the delivery of one or more data beats as one data payload.

## Claims

### Claim at position 1

1-30. (canceled)

### Claim 31

A method for processing data in a transaction through a virtual bus structure model for system designs including one or more programmable processors, the virtual bus structure model located between a sender of data and a receiver of data, wherein the sender of data is configured to write data through the transaction and the receiver of data is configured to read data through the transaction, the method comprising:
determining a number of data beats to commit to supply from a sender of data to a receiver of data;
marking a data channel as busy;
indicating a simulated time at which the first of the committed data beats will be available from the sender of data;
signaling the receiver of data that the number of data beats is available;
determining a number of data payloads needed to transfer the number of data beats;
determining the point in simulated time at which the last of the data beats will be accepted by the receiver of data; and
signaling the sender of data the acceptance of a data payload by the receiver of data.

### Claim 32 (depends on 31)

The method of claim 31, wherein the determining of the number of data beats is based on at least one of: availability of the data; availability of the data channel; a current simulation time; a transaction time, a total number of data beats, a size of the transaction data to be transferred, and a state of one or more pending transactions.

### Claim 33 (depends on 31)

The method of claim 31, further comprising indicating an intention to supply the number of data beats either directly in the transaction or indirectly through another device.

### Claim 34 (depends on 31)

The method of claim 31, further comprising storing the committed data beats.

### Claim 35 (depends on 34)

The method of claim 34, wherein storing the committed data beats comprises moving the committed data beats into a buffer associated with the transaction.

### Claim 36 (depends on 34)

The method of claim 34, wherein storing the committed data beats comprises creating an association between the transaction and data beats located in an existing buffer.

### Claim 37 (depends on 31)

The method of claim 31, wherein the determining the point in simulated time at which the last of the data beats will be accepted by the receiver of data is based on at least one of: the simulated time of availability of the data payload, a current simulation time, a transaction time, a total number of data beats in the payload, and the ability to accept the data to be transferred.

### Claim 38

A non-transitory machine readable medium containing executable instructions which when executed by a data processing system cause the system to perform operations to process data in a transaction through a virtual bus structure model for system designs including one or more programmable processors, the virtual bus structure model located between a sender of data and a receiver of data, wherein the sender of data is configured to write data through the transaction and the receiver of data is configured to read data through the transaction, comprising:
determining a number of data beats to commit to supply from a sender of data to a receiver of data;
marking a data channel as busy;
indicating a simulated time at which the first of the committed data beats will be available from the sender of data;
signaling the receiver of data that the number of data beats is available;
determining a number of data payloads needed to transfer the number of data beats;
determining the point in simulated time at which the last of the data beats will be accepted by the receiver of data; and
signaling the sender of data the acceptance of a data payload by the receiver of data.

### Claim 39 (depends on 38)

The non-transitory machine readable medium of claim 38, wherein the determining the number of the data beats is based on at least one of: availability of the data; availability of the data channel; a current simulation time; a transaction time, a total number of data beats, a size of the transaction data to be transferred, and a state of one or more pending transactions.

### Claim 40 (depends on 38)

The non-transitory machine readable medium of claim 38, further comprising indicating an intention to supply the number of data beats either directly in the transaction or indirectly through another device.

### Claim 41 (depends on 38)

The non-transitory machine readable medium of claim 38, further comprising storing the committed data beats.

### Claim 42 (depends on 41)

The non-transitory machine readable medium of claim 41, wherein storing the committed data beats comprises at least one of: moving the committed data beats into a buffer associated with the transaction and creating an association between the transaction and data beats located in an existing buffer.

### Claim 43 (depends on 38)

The non-transitory machine readable medium of claim 38, wherein the determination of the point in simulated time at which the last of the data beats will be accepted is based on at least one of: the simulated time of availability of the data payload, a current simulation time, a transaction time, a total number of data beats in the payload, and the ability to accept the data to be transferred.

### Claim 44

A data processing system to process data in a transaction through a virtual bus structure model for system designs including one or more programmable processors, the virtual bus structure model located between a sender of data and a receiver of data, wherein the sender of data is configured to write data through the transaction and the receiver of data is configured to read data through the transaction, the data processing system comprising:
a memory; and
a processor coupled to the memory, the processor configured to:
determine a number of data beats to commit to supply from a sender of data to a receiver of data,
indicate a simulated time at which the first of the committed data beats will be available from the sender of data,
determine a number of data payloads needed to transfer the number of data beats,
determine the point in simulated time at which the last of the data beats will be accepted by the receiver of data.

### Claim 45 (depends on 44)

The data processing system of claim 44, wherein the determining of the number of data beats is based on at least one of: availability of the data; availability of the data channel; a current simulation time; a transaction time, a total number of data beats, a size of the transaction data to be transferred, and a state of one or more pending transactions.

### Claim 46 (depends on 44)

The data processing system of claim 44, wherein the processor is further configured to indicate an intention to supply the number of data beats either directly in the transaction or indirectly through another device.

### Claim 47 (depends on 44)

The data processing system of claim 44, wherein the processor is further configured to store the committed data beats.

### Claim 48 (depends on 47)

The data processing system of claim 47, wherein the processor is further configured to move the committed data beats into a buffer associated with the transaction.

### Claim 49 (depends on 47)

The data processing system of claim 47, wherein the processor is further configured to create an association between the transaction and data beats located in an existing buffer.

### Claim 50 (depends on 44)

The data processing system of claim 44, wherein the of the point in simulated time when the last data beat will be accepted is based on at least one of: the simulated time of availability of the data payload, a current simulation time, a transaction time, a total number of data beats in the payload, and the ability to accept the data to be transferred.
