CPLD Edge Detection and FIFO Buffer for Real-Time BMC Signal Monitoring

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing communication method between the Baseboard Management Controller (BMC) and the Complex Programmable Logic Device (CPLD) using the I2C bus is not real-time and is slow in response, leading to potential loss of signal changes and increased resource occupation for the BMC.

Innovation Solution

The implementation of a data transmission module with a FIFO memory and an edge detection module in the CPLD, which allows for the storage and immediate transmission of signal changes to the BMC through the I2C bus, reducing the need for continuous polling and minimizing communication time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the BMC uses fixed interval polling to access the CPLD through I2C bus, then the communication method is simple to implement, but the response time is slow and real-time monitoring capability is poor

Engineering Contradiction:
Improveresponse speedVSAvoidcommunication mechanism complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The CPLD proactively pushes data changes to the BMC through interrupt signals before the BMC needs to query them. The edge detection module detects signal changes and triggers interrupt requests, allowing the BMC to respond immediately to events without waiting for the next polling cycle, thus improving response speed without requiring complex continuous monitoring mechanisms

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system combines periodic polling with event-driven interrupts. The BMC continues to use periodic polling for normal operation, but when the CPLD detects signal changes through edge detection, it sends interrupt signals to trigger immediate BMC attention, effectively combining the simplicity of periodic action with the responsiveness of event-driven action

Inventive Principle:
Principle #19Periodic action

2Reliability

If the BMC continuously polls the CPLD for status updates, then real-time monitoring is achieved, but resource occupation of the BMC increases

Engineering Contradiction:
Improvereal-time monitoring capabilityVSAvoidBMC resource occupation
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The CPLD performs self-service by automatically detecting signal changes through its internal edge detection module and generating interrupt signals when changes occur. This eliminates the need for the BMC to continuously poll the CPLD, as the CPLD independently monitors its own inputs and notifies the BMC only when relevant changes occur, reducing BMC resource occupation while maintaining real-time monitoring capability

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system implements feedback through interrupt signals that provide information about signal changes from the CPLD to the BMC. Instead of the BMC continuously asking for status updates, the CPLD provides feedback about changes autonomously, allowing the BMC to adjust its resource usage by only processing interrupts when actual changes occur rather than continuously polling

Inventive Principle:
Principle #23Feedback

3Loss of information

If the BMC uses fixed interval polling to access the CPLD, then the communication protocol is simple, but signal changes may be lost between polling intervals

Engineering Contradiction:
Improvesignal change lossVSAvoidcommunication time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The CPLD performs preliminary detection of signal changes using the edge detection module and stores change information in internal registers before the BMC needs to read them. When an interrupt is triggered, the CPLD has already captured and prepared the signal change data, ensuring no information is lost between polling intervals and reducing the time the BMC needs to spend on communication

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The CPLD acts as an intermediary between the signal sources and the BMC. It receives signals from various components, detects changes through edge detection, stores the information in its registers, and then transfers it to the BMC on demand. This intermediary role prevents information loss by capturing changes locally before they need to be communicated to the BMC, reducing both information loss and communication time

Inventive Principle:
Principle #24Intermediary (Mediator)

4Speed

If the CPLD stores signal changes in FIFO memory and transmits through I2C bus, then real-time data transmission is achieved, but the device complexity increases

Engineering Contradiction:
Improvedata transmission speedVSAvoidCPLD internal structure complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The CPLD uses FIFO memory to preliminarily store signal change data before transmission to the BMC. When changes occur, the data is immediately captured and held in the FIFO buffer, ready for rapid transmission when the BMC is available. This preliminary storage action enables real-time data capture without requiring complex continuous transmission mechanisms

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses periodic I2C bus transactions combined with interrupt-driven transmission. The FIFO memory buffers data until the BMC is ready to receive it, then transmits data in periodic or interrupt-triggered batches rather than requiring complex continuous real-time transmission, achieving real-time performance with simpler periodic action

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS12314600B2Complex programmable logic device and communication method
Publication Date: 2025.05.27 FULIAN PRESION ELECTRONICS (TIANJIN) CO LTD
  • US12314600B2 patent drawing
  • US12314600B2 patent drawing
  • US12314600B2 patent drawing

AI summary

The present disclosure provides a complex programmable logic device (CPLD) and a communication method. The CPLD includes a data transmission module, a first in first out (FIFO) memory, and an I2C slave. The data transmission module obtains a first signal of the server, the FIFO memory obtains the first signal transmitted by the data transmission module, and the I2C slave obtains the first signal transmitted by the FIFO memory, so that the baseboard management controller (BMC) reads the first signal from the I2C slave through an I2C bus.