Co-simulation of Multiple PLDs via Boundary Scan Chain
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current JTAG-based hardware co-simulation infrastructure does not support concurrent co-simulation using multiple programmable logic devices (PLDs), limiting the ability to simulate circuit designs across multiple PLDs simultaneously.
Innovation Solution
A system and method for performing co-simulation using multiple PLDs coupled together to form a boundary scan chain, where a host computer with run-time co-simulation blocks and a proxy component manages data and commands through a boundary scan programming cable, utilizing unique pattern identifiers to ensure data synchronization and resource sharing across PLDs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If JTAG-based hardware co-simulation infrastructure is used, then hardware co-simulation capability is provided, but concurrent co-simulation using multiple PLDs is not supported
Solution Approach 1:
The patent segments the co-simulation infrastructure by introducing a proxy component that divides the management of multiple PLDs into distinct operational units. Each PLD can be independently addressed and controlled through the proxy, enabling concurrent co-simulation operations without requiring a complete redesign of the JTAG infrastructure.
Solution Approach 2:
The proxy component acts as an intermediary between the host computer and multiple PLDs in the boundary scan chain. It mediates the communication by receiving commands from the host, determining which PLD should receive each command, and forwarding the appropriate commands to the target PLD, thereby enabling concurrent operations without direct host-PLD complexity.
2Productivity
If multiple PLDs are coupled in a boundary scan chain, then concurrent co-simulation capability is enabled, but data synchronization and resource sharing issues arise
Solution Approach 1:
The patent implements feedback mechanisms where the proxy component monitors the state of each PLD in the boundary scan chain and adjusts command sequencing accordingly. This feedback loop ensures that data synchronization is maintained across multiple PLDs by detecting and responding to the operational state of each device, preventing data conflicts and ensuring reliable concurrent operations.
Solution Approach 2:
The proxy component performs preliminary actions by pre-configuring and pre-synchronizing multiple PLDs before concurrent co-simulation begins. It establishes the initial state of each PLD, pre-allocates resources, and prepares the boundary scan chain for simultaneous operations, thereby preventing synchronization issues during the actual simulation process.
3Adaptability or versatility
If multiple PLDs are used for co-simulation, then simulation coverage is improved, but resource sharing conflicts occur
Solution Approach 1:
The proxy component is designed as a universal resource manager that can handle multiple types of operations across different PLDs simultaneously. It provides multi-functional capabilities including command routing, data synchronization, resource allocation, and state monitoring, thereby managing diverse simulation resources without requiring separate management mechanisms for each PLD.
Data Source
AI summary
Systems and methods of performing co-simulation of a partitioned circuit design using multiple programmable logic devices (PLDs) coupled together to form a boundary scan chain. A host computer is coupled to the scan chain via a programming cable. Resident on the host computer are run-time co-simulation blocks corresponding to blocks from the circuit design, where each block is designated to run on one of the PLDs in the scan chain; a programming cable device driver interfacing with the programming cable; and a proxy component. The proxy component is coupled to all of the run-time co-simulation blocks and the programming cable device driver. Each co-simulation block includes a unique pattern identifier, which is also present in the associated PLD. Using this pattern identifier, data and commands targeted to a specific PLD can be extracted from the scan chain, while ignoring data and commands targeted to other PLDs in the scan chain.


