{{% lowrisc-doc-hdr TL-UL Protocol Checker }}

TileLink-UL Protocol Checker

{{% toc 3 }}

Overview

This document details the protocol checker prim_assert.sv for TL-UL (TileLink Uncached Lightweight), based on TileLink specification version 1.7.1.

The next sections list the checks for each signal of TL-UL channels A and D. More details:

  • The source fields (a_source and d_source) identify inflight transactions rather than physical agents. A single agent can use multiple source IDs to track multiple outstanding transactions. See spec section 5.4 “Source and Sink Identifiers” for more details.
  • The source fields are TL_AIW bits wide (defined in tlul_pkg.sv). Therefore, there can be up to 2TL_AIW outstanding requests at the same time. To keep track of these outstanding requests, the protocol checker stores pending requests in the array pend_req of depth TL_AIW, and removes them once their corresponding response has been received.
  • A request can be responded within the same cycle as the request message is accepted. Therefore, in each clock cycle, the protocol checker first processes requests and thereafter responses.
  • The package tlul_pkg.sv defines the structs for channels A and D.
  • In below tables, “known” means that a signal should have a value other than X.

Request Channel (Channel A)

Below table lists all channel A signals and their checks.

Response Channel (Channel D)

Below table lists all channel D signals and their checks.