Debugging Logic Placement in FPGA Emulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional emulation environments are inefficient in placing and routing debugging logic in field-programmable gate arrays (FPGAs), leading to suboptimal connections between debugging logic and logic components, which can result in non-compiling FPGAs or resource overloading.

Innovation Solution

A host system determines the placement and routing of debugging logic in FPGAs such that connections between debugging logic and logic components are optimized, prioritizing short distances and minimizing interference with existing logic component routings by placing debugging logic near logic components before or after their placement and routing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If debugging logic is placed on FPGA without optimization, then debugging functionality is achieved, but routing efficiency deteriorates and resource overload occurs

Engineering Contradiction:
Improvedebugging logic placementVSAvoidrouting efficiency
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent applies preliminary action by placing debugging logic units on the FPGA before placing the actual logic components. This advance placement allows the routing tool to optimize connections between debugging logic and logic components during the routing phase, rather than adding debugging logic afterward when routing resources are already consumed. The host system determines placements of debugging logic units first, then places logic components, and routes connections between them.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If debugging logic is placed after logic components, then logic component routing is established first, but debugging logic connections become long and inefficient

Engineering Contradiction:
Improvelogic component routingVSAvoidconnection length
Core Design Contradiction:
Ease of operationVSLength of stationary object

Solution Approach 1:

The patent reverses the conventional sequence by placing debugging logic units before logic components. This preliminary placement of debugging logic allows subsequent logic component placement and routing to naturally create shorter, more efficient connections to the debugging logic, rather than forcing long connections after logic components and their routes are already fixed.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If debugging logic is placed without considering logic component locations, then placement flexibility is maintained, but routing optimization is lost

Engineering Contradiction:
Improveplacement flexibilityVSAvoidrouting optimization
Core Design Contradiction:
Adaptability or versatilityVSManufacturing precision

Solution Approach 1:

The patent maintains placement flexibility while achieving routing optimization by placing debugging logic units at predetermined locations before logic component placement. The host system determines these placements strategically, then uses this fixed debugging logic framework to guide subsequent logic component placement and routing, ensuring both adaptability and precision.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9959381B2Placing and routing debugging logic
Publication Date: 2018.05.01 SYNOPSYS INC
  • US9959381B2 patent drawing
  • US9959381B2 patent drawing
  • US9959381B2 patent drawing

AI summary

Embodiments relate an emulation environment that places debugging logic in a manner that connections between the debugging logic and logic components outputs can be efficiently routed. In one embodiment, the host system places the debugging logic after placing the logic components of the DUT, but before routing the logic components. In another embodiment, the host system places debugging logic after placing and routing logic components of the DUT. In another embodiment, for one or more emulator FPGAs, the host system places debugging logic units of the debugging logic evenly across the FPGA before placing logic components of the DUT.