FPGA IC Emulation Clock Model Glitch Elimination

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The challenge in emulating Integrated Circuit (IC) designs on Field-Programmable Gate Arrays (FPGAs) arises from the difference in clock structures between ICs and FPGAs, leading to glitches in generated clocks that cause errors in sequential cells, which cannot be controlled through wiring design in FPGAs as they can in ICs.

Innovation Solution

The method involves identifying and grouping sequential cells into groups A and B, modifying them with specific clock models [CA] and [CB] that connect glitch-containing user clocks to glitch-insensitive user enables, and configuring a primary clock′ to eliminate glitches, thereby reducing clock domains and resource consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If IC design is directly applied on FPGA, then the design can be implemented on FPGA platform, but glitches cannot be controlled because FPGA is a pre-wired semi-custom circuit that does not allow wiring length adjustment

Engineering Contradiction:
Improvedesign portabilityVSAvoidglitch control
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent changes the parameter of clock signal processing by introducing delay elements and synchronization stages. Instead of controlling glitches through wiring length (IC approach), the patent uses configurable delay parameters and synchronization parameters in the clock management circuit to control the timing and eliminate glitches when transitioning from IC to FPGA platform.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces a clock management circuit as an intermediary between the IC design and FPGA implementation. This intermediary circuit includes delay elements, synchronization stages, and clock distribution logic that mediate the clock signal transitions, allowing the design to adapt to FPGA's pre-wired structure while maintaining glitch control through software-configurable parameters.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If generated clocks with glitches are connected to sequential cell clock input, then the clock structure can be implemented, but the sequential cell is mistakenly triggered to sample signals resulting in error of data sample output

Engineering Contradiction:
Improveclock structureVSAvoiddata sampling accuracy
Core Design Contradiction:
Device complexityVSManufacturing precision

Solution Approach 1:

The patent applies preliminary action by introducing synchronization stages and delay elements before the clock signal reaches the sequential cell. These preliminary processing stages clean up the clock signal by eliminating glitches and synchronizing the clock edges, ensuring that sequential cells are only triggered by clean, synchronized clock signals, thus preventing erroneous data sampling.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent converts the harmful effect of glitches into a benefit by using the glitch detection capability to trigger synchronization mechanisms. The presence of glitches in generated clocks is detected and used as a signal to activate delay elements and synchronization stages that eliminate the glitches, thereby improving overall system reliability.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Data Source

PatentUS20250005240A1Method and system for emulating IC design with FPGA, and storage medium
Publication Date: 2025.01.02 SHANGHAI UNIVISTA IND SOFTWARE GRP CO LTD
  • US20250005240A1 patent drawing
  • US20250005240A1 patent drawing
  • US20250005240A1 patent drawing

AI summary

The invention relates to the technical field of electronic design automation (EDA), specially relates to a method and a system for emulating IC design with an FPGA, and a storage medium. By identifying ports of sequential cells, the sequential cells are labeled as group A and group B according to the conditions that a data output of a sequential cell is connected to a user clock input of another sequential cell or is not connected to the user clock input of the other sequential cell but is connected to a data input of the other one sequential cell. All sequential cells in the group A is substituted with clock models[CA], and all sequential cells in the group B is substituted with clock models[CB]. The clock model[CA] and the clock model[CB] solve glitch problem by connecting glitch-containing user clock to a user enable non-sensitive to glitch. By configuring primary clocks′, each of the group A and the group B is driven by a primary clock′, thereby reducing numbers of clock domains, and the whole system can be simultaneously started-up and paused by controlling the primary clocks′.