FPGA Clock Signal Generation for Cycle-Accurate Hardware Acceleration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Simulating complex integrated circuits with Field Programmable Gate Arrays (FPGAs) faces challenges in cycle accuracy and reproducibility, particularly in mapping memory types and ensuring identical simulation results across different optimization levels, which hinders efficient debugging and speeds up the simulation process.

Innovation Solution

The method involves generating clock signals for FPGAs to match device-under-test (DUT) clock signals at multiple frequencies and ratios, using free-running and stoppable clocks, and synchronizing events to maintain cycle accuracy and reproducibility, with a single clock source generating all device clock signals and controlling memory operations to ensure consistent simulation states.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If hardware acceleration is used to speed up simulation, then simulation speed is improved, but cycle reproducibility becomes difficult to maintain

Engineering Contradiction:
Improvesimulation speedVSAvoidcycle reproducibility
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing the exact sequence of clock signals and memory operations that reproduce the software simulator's behavior. The hardware accelerator is configured with predetermined control logic that automatically replaying the exact same sequence of operations, ensuring cycle-reproducible results while maintaining high simulation speed through hardware parallelism.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If multiple memory types are mapped to FPGA memory, then cycle accuracy is improved, but device complexity increases

Engineering Contradiction:
Improvecycle accuracyVSAvoidmemory mapping complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the complex memory mapping into separate, manageable components. Different FPGA memory blocks are dedicated to specific memory types (register arrays, SRAMs, DRAMs), with each segment handled by specialized control logic. This modular approach maintains cycle accuracy by preserving the distinct timing characteristics of each memory type while reducing overall design complexity through standardization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary memory controller layer that mediates between the hardware accelerator and various memory types. This controller abstracts the complexity of mapping different memory types to FPGA resources, providing a unified interface that simplifies the connection between the accelerator core and memory subsystems while maintaining precise timing control for cycle-accurate simulation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If optimized simulation is used for speed, then simulation time is reduced, but debugging capability deteriorates

Engineering Contradiction:
Improvesimulation timeVSAvoiddebugging capability
Core Design Contradiction:
Loss of timeVSEase of repair

Solution Approach 1:

The patent applies dynamics by making the simulation system reconfigurable between different operational modes. The same hardware accelerator can dynamically switch between optimized mode (for speed) and debug mode (for detailed tracing and single-stepping). This is achieved through configurable control logic that adjusts the level of instrumentation and optimization, allowing users to switch between performance and debugging requirements without hardware changes.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9230046B2Generating clock signals for a cycle accurate, cycle reproducible FPGA based hardware accelerator
Publication Date: 2016.01.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9230046B2 patent drawing
  • US9230046B2 patent drawing
  • US9230046B2 patent drawing

AI summary

A method, system and computer program product are disclosed for generating clock signals for a cycle accurate FPGA based hardware accelerator used to simulate operations of a device-under-test (DUT). In one embodiment, the DUT includes multiple device clocks generating multiple device clock signals at multiple frequencies and at a defined frequency ratio; and the FPG hardware accelerator includes multiple accelerator clocks generating multiple accelerator clock signals to operate the FPGA hardware accelerator to simulate the operations of the DUT. In one embodiment, operations of the DUT are mapped to the FPGA hardware accelerator, and the accelerator clock signals are generated at multiple frequencies and at the defined frequency ratio of the frequencies of the multiple device clocks, to maintain cycle accuracy between the DUT and the FPGA hardware accelerator. In an embodiment, the FPGA hardware accelerator may be used to control the frequencies of the multiple device clocks.