TestRIG uses the RVFI-DII interface as its core communication protocol.','confidence':0.99},"description":"TestRIG is built around the RVFI-DII interface for passing instruction and execution traces between components.",'confidence':0.99}]},{"src_label":"Tool","src_name":"TestRIG","relation_type":"USES","dst_label":"Concept","dst_name":"Random Instruction Generation","evidence_chunk_ids":["2d1a953c-bbc5-45f5-957a-56c3d6263029"],"quote":"Framework for testing RISC-V processors with Random Instruction Generation.","claim":"TestRIG uses Random Instruction Generation to verify RISC-V processors.","description":"TestRIG employs random instruction generation as a core technique for processor verification.","confidence":0.98},{"src_label":"Tool","src_name":"TestRIG","relation_type":"USES","dst_label":"Concept","dst_name":"Vengine","evidence_chunk_ids":["2d1a953c-bbc5-45f5-957a-56c3d6263029"],"quote":"TestRIG supports two types of components: 1. Vengines (verification engines)","claim":"TestRIG uses Vengines as one of its two main component types.","description":"Vengines are a key component type in the TestRIG framework responsible for generating and consuming traces.","confidence":0.99},{"src_label":"Tool","src_name":"TestRIG","relation_type":"USES","dst_label":"Concept","dst_name":"Instruction Trace","evidence_chunk_ids":["2d1a953c-bbc5-45f5-957a-56c3d6263029"],"quote":"Vengines generate one or more DII streams of instruction traces","claim":"TestRIG uses instruction traces as the mechanism for feeding instructions to implementations.","description":"Instruction traces (itraces) are generated by vengines and consumed by implementations in TestRIG.","confidence":0.98},{"src_label":"Tool","src_name":"TestRIG","relation_type":"USES","dst_label":"Concept","dst_name":"Execution Trace","evidence_chunk_ids":["2d1a953c-bbc5-45f5-957a-56c3d6263029"],"quote":"consume one or more RVFI streams of execution traces","claim":"TestRIG uses execution traces returned by implementations to verify behaviour.","description":"Execution traces (etraces) are produced by implementations and consumed by vengines for comparison.","confidence":0.98},{"src_label":"Tool","src_name":"TestRIG","relation_type":"USES","dst_label":"Concept","dst_name":"Direct Instruction Injection","evidence_chunk_ids":["2d1a953c-bbc5-45f5-957a-56c3d6263029","42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"As TestRIG relies on direct instruction injection, bypassing fetch through PC","claim":"TestRIG uses direct instruction injection to bypass the fetch stage and inject instructions directly.","description":"Direct instruction injection is a key mechanism in TestRIG that allows bypassing the PC-based fetch.","confidence":0.99},{"src_label":"Tool","src_name":"TestRIG","relation_type":"USES","dst_label":"Concept","dst_name":"Counterexample Reduction","evidence_chunk_ids":["2d1a953c-bbc5-45f5-957a-56c3d6263029"],"quote":"we can expect automatically reduced counterexamples on the order of a handful of instructions","claim":"TestRIG supports automated counterexample reduction by eliminating instructions from traces.","description":"TestRIG enables counterexample reduction by shortening instruction sequences to find minimal divergences.","confidence":0.97},{"src_label":"Tool","src_name":"TestRIG","relation_type":"EVALUATES","dst_label":"Concept","dst_name":"RISC-V","evidence_chunk_ids":["2d1a953c-bbc5-45f5-957a-56c3d6263029"],"quote":"TestRIG is a framework for RISC-V processor verification","claim":"TestRIG targets RISC-V processors for verification.","description":"TestRIG is specifically designed to verify RISC-V processor implementations.","confidence":0.99},{"src_label":"Tool","src_name":"TestRIG","relation_type":"HAS_PART","dst_label":"Tool","dst_name":"QuickCheck Verification Engine","evidence_chunk_ids":["42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"The root makefile can currently build the QuickCheck Verification Engine, Spike, and the Sail implementation.","claim":"The QuickCheck Verification Engine is a provided module within TestRIG.","description":"TestRIG includes the QuickCheck Verification Engine as one of its built-in components.","confidence":0.97},{"src_label":"Tool","src_name":"TestRIG","relation_type":"HAS_PART","dst_label":"Tool","dst_name":"Spike","evidence_chunk_ids":["42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"The root makefile can currently build the QuickCheck Verification Engine, Spike, and the Sail implementation.","claim":"Spike is a provided module within TestRIG.","description":"TestRIG includes Spike as one of its supported implementations.","confidence":0.95},{"src_label":"Tool","src_name":"TestRIG","relation_type":"HAS_PART","dst_label":"Tool","dst_name":"Sail","evidence_chunk_ids":["42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"The root makefile can currently build the QuickCheck Verification Engine, Spike, and the Sail implementation.","claim":"Sail is a provided implementation module within TestRIG.","description":"TestRIG includes a Sail model as one of its supported implementations.","confidence":0.95},{"src_label":"Tool","src_name":"TestRIG","relation_type":"HAS_PART","dst_label":"Tool","dst_name":"RVBS","evidence_chunk_ids":["42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"The dependencies for RVBS are the Bluespec compiler `bsc`.","claim":"RVBS is a provided module within TestRIG.","description":"TestRIG includes RVBS as one of its supported implementations.","confidence":0.93},{"src_label":"Tool","src_name":"TestRIG","relation_type":"HAS_PART","dst_label":"Tool","dst_name":"Ibex","evidence_chunk_ids":["42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"The dependencies for Ibex are verilator","claim":"Ibex is a provided module within TestRIG.","description":"TestRIG includes Ibex as one of its supported implementations.","confidence":0.93},{"src_label":"Tool","src_name":"TestRIG","relation_type":"HAS_PART","dst_label":"Tool","dst_name":"Toooba","evidence_chunk_ids":["42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"Toooba depends on the Bluespec compiler (see the dependencies for RVBS) and verilator.","claim":"Toooba is a provided module within TestRIG.","description":"TestRIG includes Toooba as one of its supported implementations.","confidence":0.93},{"src_label":"Tool","src_name":"Ibex","relation_type":"DEPENDS_ON","dst_label":"Tool","dst_name":"Verilator","evidence_chunk_ids":["42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"The dependencies for Ibex are verilator","claim":"Ibex depends on Verilator for building.","description":"Verilator is a required dependency for building the Ibex implementation in TestRIG.","confidence":0.99},{"src_label":"Tool","src_name":"Toooba","relation_type":"DEPENDS_ON","dst_label":"Tool","dst_name":"Verilator","evidence_chunk_ids":["42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"Toooba depends on the Bluespec compiler (see the dependencies for RVBS) and verilator.","claim":"Toooba depends on Verilator for building.","description":"Verilator is a required dependency for the Toooba implementation in TestRIG.","confidence":0.99},{"src_label":"Tool","src_name":"Sail","relation_type":"MENTIONS","dst_label":"Concept","dst_name":"CHERI","evidence_chunk_ids":["42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"Both Spike and Sail are built without CHERI support by default","claim":"Sail can optionally support CHERI extensions.","description":"Sail has optional CHERI support which is disabled by default in TestRIG.","confidence":0.95},{"src_label":"Tool","src_name":"Spike","relation_type":"MENTIONS","dst_label":"Concept","dst_name":"CHERI","evidence_chunk_ids":["42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"Both Spike and Sail are built without CHERI support by default","claim":"Spike can optionally support CHERI extensions.","description":"Spike has optional CHERI support which is disabled by default in TestRIG.","confidence":0.95},{"src_label":"Organization","src_name":"CTSRD-CHERI","relation_type":"INTRODUCES","dst_label":"Tool","dst_name":"TestRIG","evidence_chunk_ids":["42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"https://github.laiyagushi.com/CTSRD-CHERI/TestRIG","claim":"TestRIG is authored and maintained by the CTSRD-CHERI organization.","description":"The CTSRD-CHERI GitHub organization hosts and develops the TestRIG framework.","confidence":0.97},{"src_label":"CodeArtifact","src_name":"runTestRIG.py","relation_type":"PART_OF","dst_label":"Tool","dst_name":"TestRIG","evidence_chunk_ids":["42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"$ utils/scripts/runTestRIG.py","claim":"runTestRIG.py is a utility script that is part of the TestRIG framework.","description":"runTestRIG.py is the main script used to run TestRIG verification sessions.","confidence":0.99},{"src_label":"Tool","src_name":"TestRIG","relation_type":"MENTIONS","dst_label":"Tool","dst_name":"L3","evidence_chunk_ids":["2d1a953c-bbc5-45f5-957a-56c3d6263029"],"quote":"If the specification is an executable model (see Sail, L3, and many other efforts)","claim":"TestRIG documentation mentions L3 as an example of an executable specification model.","description":"L3 is mentioned alongside Sail as an example of executable specification models compatible with TestRIG.","confidence":0.9},{"src_label":"Concept","src_name":"Vengine","relation_type":"USES","dst_label":"Concept","dst_name":"Instruction Trace","evidence_chunk_ids":["2d1a953c-bbc5-45f5-957a-56c3d6263029"],"quote":"Vengines generate one or more DII streams of instruction traces","claim":"Vengines generate instruction traces as DII streams.","description":"Instruction trace generation is a core responsibility of Vengines in the TestRIG framework.","confidence":0.99},{"src_label":"Concept","src_name":"Vengine","relation_type":"USES","dst_label":"Concept","dst_name":"Execution Trace","evidence_chunk_ids":["2d1a953c-bbc5-45f5-957a-56c3d6263029"],"quote":"and consume one or more RVFI streams of execution traces","claim":"Vengines consume execution traces returned by implementations.","description":"Execution trace consumption is a core responsibility of Vengines for checking correctness.","confidence":0.99},{"src_label":"Concept","src_name":"Vengine","relation_type":"USES","dst_label":"Concept","dst_name":"RVFI-DII","evidence_chunk_ids":["2d1a953c-bbc5-45f5-957a-56c3d6263029"],"quote":"The vengine then feeds these itraces into both a model and an implementation through two TCP sockets in the RVFI-DII format.","claim":"Vengines communicate with implementations using the RVFI-DII format.","description":"Vengines use the RVFI-DII protocol over TCP sockets to communicate instruction and execution traces.","confidence":0.99},{"src_label":"Tool","src_name":"QuickCheck Verification Engine","relation_type":"IMPLEMENTS","dst_label":"Concept","dst_name":"Vengine","evidence_chunk_ids":["42f69dc2-1bc8-4247-b342-561f49596e0a"],"quote":"The root makefile can currently build the QuickCheck Verification Engine, Spike, and the Sail implementation.","claim":"The QuickCheck Verification Engine is an implementation of the Vengine concept in TestRIG.","description":"The QuickCheck Verification Engine serves as a Vengine within the TestRIG framework.","confidence":0.9}]},