# US 8,751,998 B2 · Method and system for partial reconfiguration simulation

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

- Number: US 8,751,998 B2
- Document ID: US8751998B2
- Status: Granted
- Kind: B2
- Application number: 13/369,218
- Filed: 2012-02-08
- Published: 2013-01-03
- Granted: 2014-06-10
- Earliest claimed: 2011-07-01
- Assignees: Altera Corporation
- Applicants: David W. Mendel; Marwan A. Khalaf; Renxin Xia
- Inventors: David W. Mendel; Marwan A. Khalaf; Renxin Xia
- Web page: https://patentgrep.com/patent/US8751998B2

## CPC

- G06F 30/347: Physical level, e.g. placement or routing
- G06F 30/33: Design verification, e.g. functional simulation or model checking
- G06F 30/3308: using simulation
- G06F 30/34: for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed is a method of simulating partial reconfiguration of a programmable logic device (PLD). A wrapper module is incorporated into a logic description that may be implemented in a PLD. The wrapper module represents a first logic design. In response to receiving a parameter, the wrapper module changes to represent a second logic design. According to various embodiments, the logic description is a simulatable source file. The simulatable source file is a source file that is used by a simulation program to simulate partial reconfiguration of the logic design. The wrapper module of the simulatable source file receives a run-time parameter. In various embodiments, the logic description is a synthesizable source file. The synthesizable source file is a source file that is used by a synthesis tool to compile the source file into hardware. The wrapper module of the synthesizable source receives a compile-time parameter.

## Claims

### Claim 1

A method comprising:
in a computing system, simulating a device including a fixed logic region and a plurality of reconfigurable logic regions, the fixed logic region for performing fixed functionality and the plurality of reconfigurable logic regions reconfigurable for performing functionalities associated with a plurality of designs, wherein the plurality of designs includes a first design and a second design; and
receiving a run-time parameter and reconfiguring at least one reconfigurable region of the plurality of reconfigurable logic regions from the first design to the second design in response to the run-time parameter while simulation of the device is running; and
identifying at least one output signal that has a value corresponding to an indeterminate state after the reconfiguring of the at least one reconfigurable region and before a sub-system reset of the at least one reconfigurable logic region.

### Claim 2 (depends on 1)

The method of claim 1, wherein the fixed logic region, and two reconfigurable logic regions of the plurality of reconfigurable logic regions, implementing the first and the second design respectively, share a common interface.

### Claim 3 (depends on 1)

The method of claim 1, wherein a reconfigurable logic region includes a wrapper module for receiving the run-time parameter that directs switching from the first design to the second design.

### Claim 4 (depends on 1)

The method of claim 1 further comprising:
receiving a list of the plurality of designs;
receiving a signal identifying a configuration of the plurality of designs;
receiving a list of signals having predetermined properties during partial reconfiguration;
receiving a list of allowed interfaces for converting a first interface to a second interface; and
converting the first interface to the second interface, the second interface among the list of allowed interfaces.

### Claim 5 (depends on 4)

The method of claim 4, wherein the first interface is an advanced microcontroller bus architecture (AMBA) interface and the second interface is an Avalon interface.

### Claim 6 (depends on 1)

The method of claim 1 further comprising:
receiving a signal that resets a design; and
receiving a signal identifying at least one reconfigurable logic region of the plurality of reconfigurable logic regions that generates an output signal, wherein the output signal notifies the fixed logic region that the at least one reconfigurable logic region of the plurality of reconfigurable logic regions is undergoing partial reconfiguration.

### Claim 7 (depends on 1)

The method of claim 1 further comprising:
determining that the first design has a first interface different than a second interface of the second design; and
in response to the first design having the first interface that is different from the second interface of the second design, applying an arbiter to convert the first interface to be the same as the second interface.

### Claim 8 (depends on 1)

The method of claim 1 further comprising:
generating a synthesizable source file operable to switch from the first design to the second design in response to receiving a compile-time parameter; and
generating a simulatable source file for switching from the first design to the second design in response to receiving a run-time parameter.

### Claim 9 (depends on 8)

The method of claim 8, wherein the simulatable source file is operable to:
identify inputs to a wrapper module that have a specified property;
identify a value of at least one output signal during partial reconfiguration, wherein the value is selected from a group consisting of: indeterminate, last value, 1, and 0, wherein the at least one output signal originates from the at least one reconfigurable logic region.

### Claim 10 (depends on 1)

The method of claim 1 further comprising assigning each design of the plurality of designs to a group,
wherein designs included in a first group are switched in response to receiving a run-time parameter, and
wherein designs included in a second group are switched in response to receiving a compile-time parameter.

### Claim 11

A system comprising:
a processor for simulating a device including a fixed logic region and a plurality of reconfigurable logic regions, the fixed logic region for performing fixed functionality and the plurality of reconfigurable logic regions reconfigurable and for performing functionalities associated with a plurality of designs, wherein the plurality of designs includes a first design and a second design; and
an interface for receiving a run-time parameter and reconfiguring at least one reconfigurable region of the plurality of reconfigurable logic regions from the first design to the second design in response to the run-time parameter while simulation of the device is running; and
identifying at least one output signal that has a value corresponding to an indeterminate state after the reconfiguring of the at least one reconfigurable region and before a sub-system reset of the at least one reconfigurable logic region.

### Claim 12 (depends on 11)

The system of claim 11, wherein a reconfigurable logic region includes a wrapper module for receiving the run-time parameter that directs switching from the first design to the second design.

### Claim 13 (depends on 11)

The system of claim 11, wherein the interface is further for:
receiving a list of the plurality of designs;
receiving a signal identifying a configuration of the plurality of designs;
receiving a list of signals having predetermined properties during partial reconfiguration;
receiving a list of allowed interfaces for converting a first interface to a second interface; and
converting the first interface to the second interface, the second interface among the list of allowed interfaces.

### Claim 14 (depends on 11)

The system of claim 11, wherein the processor is further for:
generating a synthesizable source file operable to switch from the first design to the second design in response to receiving a compile-time parameter; and
generating a simulatable source file for switching from the first design to the second design in response to receiving a run-time parameter.

### Claim 15 (depends on 14)

The system of claim 14, wherein the simulatable source is further for:
identifying inputs to a wrapper module that have a specified property;
identifying a value of at least one output signal during partial reconfiguration, wherein the value is selected from a group consisting of: indeterminate, last value, 1, and 0, wherein the at least one output signal originates from the at least one reconfigurable logic region.

### Claim 16 (depends on 11)

The system of claim 11, wherein the interface is operable to receive an input that assigns each design of the plurality of designs to a group,
wherein designs included in a first group are switched in response to receiving a run-time parameter, and
wherein designs included in a second group are switched in response to receiving a compile-time parameter.

### Claim 17

A non-transitory computer readable storage medium comprising computer code embodied therein, the computer readable storage medium comprising:
computer code for simulating a device including a fixed logic region and a plurality of reconfigurable logic regions, the fixed logic region for performing fixed functionality and the plurality of reconfigurable logic regions reconfigurable and for performing functionalities associated with a plurality of designs, wherein the plurality of designs includes a first design and a second design; and
computer code for receiving a run-time parameter and reconfiguring at least one reconfigurable region of the plurality of reconfigurable logic regions from the first design to the second design in response to the run-time parameter while simulation of the device is running; and
identifying at least one output signal that has a value corresponding to an indeterminate state after the reconfiguring of the at least one reconfigurable region and before a sub-system reset of the at least one reconfigurable logic region.

### Claim 18 (depends on 17)

The non-transitory computer readable storage medium of claim 17 further comprising:
computer code for generating a synthesizable source file operable to switch from the first design to the second design in response to receiving a compile-time parameter; and
computer code for generating a simulatable source file operable to switch from the first design to the second design in response to receiving a run-time parameter.

### Claim 19 (depends on 18)

The non-transitory computer readable storage medium of claim 18, wherein the simulatable source file is further for:
identifying inputs to a wrapper module that have a specified property;
identifying a value of at least one output signal during partial reconfiguration, wherein the value is selected from a group consisting of: indeterminate, last value, 1, and 0, wherein the at least one output signal originates from the at least one reconfigurable logic region.

### Claim 20 (depends on 17)

The non-transitory computer readable storage medium of claim 17 further comprising code for assigning each design of the plurality of designs to a group,
wherein designs included in a first group are switched in response to receiving a run-time parameter, and
wherein designs included in a second group are switched in response to receiving a compile-time parameter.
