An axi interconnect module verification platform and electronic device
The design of the AXI interconnect module verification platform solves the complex routing problem of multi-master and multi-slave structures, achieving flexible adaptation and efficient verification, and ensuring the accuracy and efficiency of AXI interconnect module verification in complex SoC designs.
Patent Information
- Application Number
- CN202511445408.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-10-11
- Publication Date
- 2026-01-27
- Estimated Expiration
- 2045-10-11
AI Technical Summary
Existing AXI interconnect module verification platforms are unable to meet the complex routing requirements of multi-master and multi-slave structures. Traditional verification platforms are inadequate in terms of handling complexity, agility, and scalability.
An AXI interconnect module verification platform is provided, including a test module, an interface module, a test case configuration module, and a transport transaction router. Through the collaborative work of modules such as the proxy cluster, scoreboard unit, and virtual sequence transmitter, it can achieve flexible adaptation to complex topologies and accurate transaction verification.
It improves the agility and scalability of verification, enhances the completeness and depth of verification, ensures accurate transaction routing and verification efficiency, and provides reliable verification support.
Smart Images

Figure CN120930566B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of chip verification technology, and in particular to an AXI interconnect module verification platform and electronic device. Background Technology
[0002] With the continuous development of integrated circuit design, the complexity and integration of System-on-Chips (SoCs) have significantly increased. Advanced eXtensible Interface (AXI), as an important component of the Advanced Microcontroller Bus Architecture (AMBA), is a high-performance, high-bandwidth, low-latency on-chip bus protocol widely used to achieve high-speed communication between on-chip modules. The AXI protocol uses a point-to-point transmission method, enabling information transmission only between two modules. To achieve AXI protocol transmission between multiple master devices and multiple slave devices, an AXI interconnect module is needed to route AXI transmission transactions between devices.
[0003] AXI interconnect modules support various topologies, including single master and multiple slave structures, multiple master and single slave structures, and multiple master and multiple slave structures. Among these, the multiple master and multiple slave structure is the most complex. AXI routing in this structure requires various master-slave link combinations to achieve transparent AXI transmission. Furthermore, AXI exhibits numerous complex characteristics, such as outstanding transactions, out-of-order responses, and read interleave. This necessitates the design of complex caching structures and arbitration logic in the AXI interconnect modules to ensure efficient and correct data transmission.
[0004] The complexity of AXI interconnect modules presents significant challenges to the design of its verification platform. The platform must not only ensure comprehensive verification but also maintain design agility and scalability, while facilitating the design of subsequent test cases. Traditional verification platforms struggle to meet these requirements, particularly when dealing with complex routing structures involving multiple masters and slaves, where they fall short.
[0005] Therefore, developing a verification platform that can effectively cope with the complexity of AXI interconnect modules has become an important requirement in the field of integrated circuit design verification. Summary of the Invention
[0006] This application provides an AXI interconnect module verification platform and electronic device to at least solve the above-mentioned technical problems existing in the prior art.
[0007] According to a first aspect of this application, an AXI interconnect module verification platform is provided, the verification platform comprising: a test module, an interface module, a test case configuration module, and a transport transaction router; the test module comprising a proxy cluster, a scoring board unit, a parameter configuration unit, and a virtual sequence transmitter; the proxy cluster comprising multiple master agents and multiple slave agents, each master agent corresponding to a set of slave AXI signal groups, and each slave agent corresponding to a set of master AXI signal groups; the scoring board unit configuring a request scoring board and a response scoring board for each master agent, the request scoring board being used to verify the correctness of request transaction transmission, and the response scoring board being used to verify the correctness of response transaction transmission; the parameter configuration unit being used for... Configure all verification parameters in the verification environment; the virtual sequence sender is used to control the sequence senders of all agents to generate request transactions or response transactions based on test cases; the interfaces in the interface module are used to connect the design under test with each agent in the agent cluster, and each interface is used to manage a group of AXI signal groups; the test case configuration module is used to adjust the verification parameters in the parameter configuration unit based on the current verification environment, generate corresponding test cases based on the adjusted verification parameters, and send the test cases to the virtual sequence sender; the transport transaction router is used to allocate request transactions or response transactions sent or received by agents in the agent cluster to the scoreboard in the scoreboard unit.
[0008] In one implementation, the master agent generates a request transaction based on the test case and sends the request transaction to the slave agent through the design under test; the slave agent processes the request transaction to generate a response transaction and sends the response transaction to the master agent through the design under test.
[0009] In one embodiment, the request scoring board is provided with a first source port, a first destination port, and a first comparison source queue; the first source port and the first destination port are respectively connected to corresponding ports in the transport transaction router; the first comparison source queue is used to store request transactions sent by the master agent corresponding to the request scoring board; the first destination port is used to receive request transactions received by slave agents under the master agent corresponding to the request scoring board; the response scoring board is provided with a second source port, a second destination port, and a second comparison source queue; the second source port and the second destination port are respectively connected to corresponding ports in the transport transaction router; the second comparison source queue is used to store response transactions sent by slave agents under the master agent corresponding to the response scoring board; the second destination port is used to store response transactions received by the master agent corresponding to the response scoring board.
[0010] In one possible implementation, the primary agent corresponding to the request scoreboard sends the generated request transaction to the first source port via a driver and the transport transaction router; the first source port sends the request transaction to the first comparison source queue; the secondary agent under the primary agent corresponding to the response scoreboard sends the generated response transaction to the corresponding port in the transport transaction router via a driver; the transport transaction router sends the response transaction to the second source port via arbitration; the second source port sends the response transaction to the second comparison source queue.
[0011] In one possible implementation, after the monitor in the slave agent under the master agent corresponding to the request scoreboard receives the request transaction, it sends the request transaction to the corresponding port in the transport transaction router through the monitor port. The transport transaction router then sends the request transaction to the first destination port through arbitration. After the monitor in the master agent corresponding to the response scoreboard receives the response transaction, it sends the response transaction to the second destination port through the monitor port and the transport transaction router.
[0012] In one possible implementation, in response to both the first comparison source queue and the first destination port being in out-of-order mode, the request transactions in the first comparison source queue are compared with the request transactions in the first destination port in ascending order of their entry time into the first comparison source queue. If the target request transaction in the first comparison source queue is the same as the request transaction in the first destination port, then the request transaction is determined to be transmitted correctly, the comparison is stopped, and the target request transaction is deleted from the first comparison source queue. In response to both the first comparison source queue and the first destination port being in ascending order mode, the request transactions in the first destination port are compared with the request transaction with the earliest entry time in the first comparison source queue. If the comparison results are the same, then the request transaction is determined to be transmitted correctly, and the request transaction with the earliest entry time in the first comparison source queue is deleted from the first comparison source queue.
[0013] In one possible implementation, in response to both the second comparison source queue and the second destination port being in out-of-order mode, the response transactions in the second comparison source queue are compared with the response transactions in the second destination port in ascending order of their entry time into the second comparison source queue. If the target response transaction in the second comparison source queue is the same as the response transaction in the second destination port, then the response transaction is determined to be transmitted correctly, the comparison is stopped, and the target response transaction is deleted from the second comparison source queue. In response to both the second comparison source queue and the second destination port being in ascending order mode, the response transactions in the second destination port are compared with the response transaction with the earliest entry time in the second comparison source queue. If the comparison results are the same, then the response transaction is determined to be transmitted correctly, and the response transaction with the earliest entry time in the second comparison source queue is deleted from the second comparison source queue.
[0014] In one possible implementation, the verification parameters include at least one of the following: the data width, ID width, address width, number of incomplete transactions, signal delay information of each master AXI signal group, random seed of the test case, and test type of each agent in the agent cluster.
[0015] In one embodiment, the virtual sequence sender includes multiple sequence sender handles, which are associated with the sequence sender; the virtual sequence sender is used to control the sequential or parallel generation of the request transactions by each of the main agents.
[0016] In one possible implementation, one end of the interface in the interface module is connected to the design under test, and the other end is connected to the virtual interface of each agent in the agent cluster; the AXI signal group includes read address channel signal, read data channel signal, write address channel signal, write data channel signal and write response channel signal.
[0017] In one embodiment, the transport transaction router includes a driver port and a monitor port for each agent, and a request scoreboard port and a response scoreboard port for each master agent; the request scoreboard port and the response scoreboard port in the transport transaction router each include a source port and a destination port; the source port and the destination port in the transport transaction router are respectively connected to the source port and the destination port of the request scoreboard and the response scoreboard in the corresponding master agent.
[0018] In one possible implementation, the transport transaction router further includes a request arbitration module and a response arbitration module; the port connections within the transport transaction router are as follows: the driver interface of the primary agent is connected to the source port of the corresponding request scoreboard; the monitor interface of the primary agent is connected to the destination port of the corresponding response scoreboard; the driver interface of the secondary agent is connected to the ingress port of the response arbitration module, and the egress port of the response arbitration module is connected to the source port of the response scoreboard; the monitor interface of the secondary agent is connected to the ingress port of the request arbitration module, and the egress port of the request arbitration module is connected to the destination port of the request scoreboard; wherein, the number of ingress ports of the request arbitration module and the response arbitration module is the same as the number of secondary agents, and the number of egress ports of the request arbitration module and the response arbitration module is the same as the number of primary agents.
[0019] In one possible implementation, the transport transaction router is further configured to: in response to each of the agent's monitor interfaces receiving a corresponding request transaction or a driver interface generating a corresponding response transaction, send the request transaction or response transaction to the corresponding monitor interface or driver interface in the transport transaction router, and send the request transaction or response transaction to the corresponding request arbitration module or response arbitration module, wherein the request arbitration module or response arbitration module determines the primary agent corresponding to the request transaction or response transaction based on predetermined arbitration rules, and sends the request transaction or response transaction to the scoreboard port corresponding to the primary agent.
[0020] In one possible implementation, determining the primary agent corresponding to the request transaction or response transaction based on a predetermined arbitration rule includes at least one of the following: if the address mapping bits of the request transaction or response transaction contain corresponding primary agent information, then the primary agent corresponding to the request transaction or response transaction is determined based on the primary agent information; if the address mapping bits of the request transaction or response transaction do not contain corresponding primary agent information, and there is an auxiliary address mapping bit in the non-address mapping bits, then the primary agent corresponding to the request transaction or response transaction is determined from the auxiliary address mapping bit; if the address mapping bits of the request transaction or response transaction do not contain corresponding primary agent information, and there is no auxiliary address mapping bit in the non-address mapping bits, then the primary agent corresponding to the secondary agent is determined based on the correspondence between the secondary agent and the primary agent.
[0021] According to a second aspect of this application, an electronic device is provided, comprising: an AXI interconnect module verification platform as described in this application.
[0022] This application discloses an AXI interconnect module verification platform and electronic device. The AXI interconnect module verification platform includes a test module, an interface module, a test case configuration module, and a transport transaction router. The test module encompasses a proxy cluster, a scoring board unit, a parameter configuration unit, and a virtual sequence transmitter. The proxy cluster configures master proxies to correspond to slave AXI signal groups, and slave proxies to correspond to master AXI signal groups. The scoring board unit configures request and response scoring boards for each master proxies, verifying the correctness of request and response transaction transmissions. The parameter configuration unit is responsible for configuring verification environment parameters, and the virtual sequence transmitter controls proxy transaction generation based on test cases. The interface module connects the design under test (DUT) to the proxy cluster and manages the AXI signal groups. The test case configuration module adjusts parameters according to the verification environment, generates test cases, and sends them to the virtual sequence transmitter. The transport transaction router allocates transactions to the scoring board. Therefore, the AXI interconnect module verification platform of this application achieves flexible adaptation to complex topologies, effectively solving the verification challenges brought about by the complexity of AXI interconnect modules. The verification platform's agent cluster, scoreboard unit, parameter configuration unit, and virtual sequence transmitter work collaboratively to not only improve verification agility and scalability but also significantly enhance the completeness and depth of verification through precise transaction verification and diverse test case generation. The transport transaction router further improves verification efficiency and ensures accurate transaction routing. Overall, this verification platform significantly improves the efficiency and accuracy of AXI interconnect module verification, providing reliable verification support for complex SoC designs.
[0023] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this application, nor is it intended to limit the scope of this application. Other features of this application will become readily apparent from the following description. Attached Figure Description
[0024] The above and other objects, features, and advantages of exemplary embodiments of this application will become readily apparent from the following detailed description taken in conjunction with the accompanying drawings. Several embodiments of this application are illustrated in the drawings by way of example and not limitation, wherein:
[0025] In the accompanying drawings, the same or corresponding reference numerals indicate the same or corresponding parts.
[0026] Figure 1 This paper shows a schematic diagram of the structure of an AXI interconnect module verification platform according to an embodiment of this application;
[0027] Figure 2 A flowchart illustrating the comparison of scoreboard transmission transactions in an embodiment of this application is shown.
[0028] Figure 3 A schematic diagram of the structure of the transmission transaction router in an embodiment of this application is shown. Detailed Implementation
[0029] To make the objectives, features, and advantages of this application more apparent and understandable, the technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0030] Universal Verification Methodology (UVM), as a unified verification architecture, provides comprehensive verification components and workflow support, and has become the mainstream framework and method in the field of chip verification. Verification platforms built on UVM can significantly shorten development cycles, while test case design based on sequence generation technology and support for various randomization techniques also provide strong support for verification completeness. Nevertheless, existing UVM verification platforms still have shortcomings when handling complex AXI interconnect modules, particularly in terms of modular design, verification completeness, and ease of test case design.
[0031] Figure 1 This application illustrates a schematic diagram of the structure of an AXI interconnect module verification platform according to an embodiment of the present application. Figure 1 As shown, an AXI interconnect module verification platform includes:
[0032] The test module (BASE_TEST), interface module, test case configuration module (SEQ), and transport transaction router (AXI_TRANS_ROUTER).
[0033] The test module includes an agent cluster, a scoreboard unit, a parameter configuration unit (CFG), and a virtual sequencer (VSQR). The agent cluster includes multiple master agents (M_AGT_n) and multiple slave agents (S_AGT_n). Each master agent corresponds to a set of slave AXI signal groups, and each slave agent corresponds to a set of master AXI signal groups. The scoreboard unit configures a request scoreboard (REQ_SCB_n) and a response scoreboard (RSP_SCB_n) for each master agent. The request scoreboard is used to verify the correctness of request transaction transmission, and the response scoreboard is used to verify the correctness of response transaction transmission. The parameter configuration unit is used to configure all verification parameters in the verification environment. The virtual sequencer is used to control the sequencers (SQRs) of all agents to generate request or response transactions based on test cases.
[0034] The interfaces (IFs) in the interface module are used to connect the design under test (DUT) to each agent in the agent cluster, and each interface is used to manage a set of AXI signal groups;
[0035] The test case configuration module is used to adjust the verification parameters in the parameter configuration unit based on the current verification environment, generate corresponding test cases based on the adjusted verification parameters, and send the test cases to the virtual sequence sender.
[0036] The transport transaction router is used to distribute request or response transactions sent or received by agents in the agent cluster to the scoreboard in the scoreboard unit.
[0037] In this embodiment, the test module inherits from uvm_test and is the top-level module of the verification part. Internally, this module contains a verification environment class (ENV) responsible for organizing the actual verification environment. The verification environment class includes a proxy cluster, a scoreboard unit, a parameter configuration unit, and a virtual sequence sender. The proxy cluster includes multiple master proxies and multiple slave proxies, for example... Figure 1 The system comprises two master agents and four slave agents. The master agents are M_AGT_1 and M_AGT_2, and the slave agents are S_AGT_1, S_AGT_2, S_AGT_3, and S_AGT_4. The master agents simulate the behavior of the master device, responsible for generating request transactions based on test cases and sending these transactions to the slave agents. The slave agents simulate the behavior of the slave device, receiving request transactions from the master agents, processing them, and generating response transactions to send back to the master agents. Each master agent corresponds to a set of slave AXI signal groups, which are used by the master agents to communicate with the slave agents. Similarly, each slave agent corresponds to a set of master AXI signal groups, used to receive requests from the master agents and send responses.
[0038] In this embodiment, each master agent includes a request scoreboard and a response scoreboard, such as Figure 1 As shown, the primary agent M_AGT_1 includes a request scoreboard REQ_SCB_1 and a response scoreboard RSP_SCB_1, while the primary agent M_AGT_2 includes a request scoreboard REQ_SCB_2 and a response scoreboard RSP_SCB_2. The request scoreboard verifies the correctness of the request transaction transmission process by comparing the request transactions sent by the primary agent with the request transactions received from the primary agent. The response scoreboard verifies the correctness of the response transaction transmission process by comparing whether the response transactions sent by the primary agent are consistent with the response transactions received by the primary agent.
[0039] In this embodiment, the parameter configuration unit is responsible for configuring all relevant verification parameters in the verification environment. These verification parameters include, but are not limited to, AXI data width, ID width, address width, number of incomplete transactions, and signal delay. For example, the AXI data width parameter determines the bit width of data transmission, the ID width parameter defines the range of transaction identifiers, and the address width parameter limits the size of the addressable address space. By configuring these verification parameters, users can customize the verification environment according to different AXI interconnect module designs and testing requirements. In one example, users can modify the signal delay parameter to simulate different network latency conditions, or adjust the number of incomplete transactions parameter to test the system's performance under high load, based on the test progress and identified issues. This dynamic adjustment capability enables the verification platform to adapt to various testing scenarios and requirements.
[0040] In this embodiment, the virtual sequence sender is associated with the sequence sender of each agent in the agent cluster. It can control the sequence senders of all agents to generate request or response transactions according to the requirements of the test case. For example, a test case might require the main agent to send a series of request transactions within a specific time interval. The virtual sequence sender will control the main agent's sequence sender to generate these request transactions in the specified order and time interval according to this requirement. The virtual sequence sender can achieve sequential or parallel control of the main agent. For example, in sequential control mode, the main agent will send request transactions in a fixed order; in parallel control mode, multiple main agents can send request transactions simultaneously to simulate high-concurrency scenarios.
[0041] In this embodiment, the interfaces in the interface module are used to connect each agent in the agent cluster to the design under test (DUT). These interfaces not only implement physical connections but also manage a set of AXI signal groups. For example, an interface may contain multiple signal channels for transmitting address, data, and control signals from the AXI interconnect module. Through these interfaces, the test module can effectively interact with the DUT to verify the AXI interconnect module. Each interface manages a set of AXI signal groups, meaning the interface needs to classify and manage the signals. For example, a set of AXI signal groups may include read address channel signals, read data channel signals, write address channel signals, write data channel signals, and write response channel signals. The interface module needs to ensure that these signals are transmitted correctly and without confusion or errors during transmission.
[0042] In this embodiment, the test case configuration module adjusts the verification parameters in the parameter configuration unit according to the current verification environment and requirements. For example, if the current verification environment requires testing the performance of the AXI interconnect module under high latency conditions, the test case configuration module will adjust the signal delay parameters to meet the test requirements. Based on the adjusted verification parameters, the test case configuration module generates corresponding test cases. These test cases define the test operations to be performed during the verification process, including the type, number, and order of request transactions. For example, a test case may require the main agent to send a series of read and write request transactions, and these transactions need to be performed in a specific order and time interval. The generated test cases are sent to the virtual sequence sender, which controls the agent's sequence sender to generate corresponding request or response transactions according to the requirements of the test cases, thereby realizing the verification of the AXI interconnect module.
[0043] In this embodiment, the main function of the transport transaction router is to correctly allocate request or response transactions sent or received by agents in the agent cluster to the corresponding scoreboards in the scoreboard unit. For example, when the master agent sends a request transaction, the transport transaction router will allocate it to the corresponding request scoreboard according to the transaction type and source; when a response transaction is sent from an agent, the transport transaction router will allocate it to the corresponding response scoreboard. The transport transaction router needs to manage the transmission path of transactions to ensure that transactions can be accurately transmitted from agents to scoreboards. For example, it needs to handle the sending and receiving ports of transactions, as well as arbitration and scheduling of transactions during transmission. In this way, the transport transaction router can ensure that each transaction reaches the correct verification location for subsequent correctness verification.
[0044] In this application, the verification platform comprises four key components: a testing module, an interface module, a test case configuration module, and a transmission transaction router, enabling comprehensive verification of AXI interconnect modules. The agent cluster in the testing module simulates the behavior of master and slave devices, the scoring board unit verifies the correctness of transaction transmission, the parameter configuration unit and test case configuration module provide flexible parameter configuration and test case generation functions, and the transmission transaction router ensures that transactions are accurately transmitted to the scoring board. This architectural design allows the verification platform to adapt to different AXI interconnect module designs and testing requirements, improving the comprehensiveness and accuracy of verification, ensuring the reliability and stability of AXI interconnect modules under various working scenarios, and providing effective support, especially for the verification of complex AXI interconnect modules.
[0045] In another embodiment, the master agent generates a request transaction based on the test case and sends the request transaction to the slave agent through the design under test; the slave agent processes the request transaction to generate a response transaction and sends the response transaction to the master agent through the design under test.
[0046] In this embodiment, the master proxy generates request transactions according to the requirements of the test cases. Test cases typically specify parameters such as the type of request transaction (e.g., read or write request), transaction size, and target address. The master proxy generates the corresponding request transaction based on these parameters and sends it to the slave proxy through the design under test (DUT). In one example, the master proxy sends the request transaction to the corresponding interface of the DUT, and the DUT forwards the request transaction to the target slave proxy according to its internal routing logic.
[0047] In this embodiment, after receiving a request transaction from the master agent, the slave agent processes the request transaction. The processing includes parsing the content of the request transaction, such as the address and data size, and performing corresponding operations based on the type of the request transaction. For example, if the received request transaction is a read request, the slave agent will read data from the specified address; if it is a write request, the slave agent will write data to the specified address. After processing the request transaction, the slave agent generates a corresponding response transaction. The response transaction contains the result of the request transaction processing, such as data returned by a read operation or confirmation information for a write operation. For example, for a read request transaction, the slave agent generates a response transaction containing read data; for a write request transaction, the slave agent generates a write confirmation response transaction and sends the generated response transaction back to the master agent through the design under test (DUT). In one example, the slave agent sends the response transaction to the corresponding interface of the DUT, and the DUT forwards the response transaction to the target master agent according to its internal routing logic.
[0048] In this embodiment, the collaborative work of the master agent and slave agent enables comprehensive verification of the request and response transaction transmission functions of the AXI interconnect module. The master agent can generate various request transactions based on test cases and send them to the slave agent. The slave agent can correctly process the request transactions and generate response transactions to send back to the master agent. This not only verifies the functional correctness of the AXI interconnect module under different working scenarios but also ensures the integrity and accuracy of transaction transmission, thereby improving the comprehensiveness and reliability of the verification.
[0049] In another embodiment, the request scoreboard is provided with a first source port, a first destination port, and a first comparison source queue; the first source port and the first destination port are respectively connected to corresponding ports in the transport transaction router; the first comparison source queue is used to store request transactions sent by the master agent corresponding to the request scoreboard; the first destination port is used to receive request transactions received by the slave agent under the master agent corresponding to the request scoreboard.
[0050] The response scoring board is equipped with a second source port, a second destination port, and a second comparison source queue. The second source port and the second destination port are respectively connected to the corresponding ports in the transmission transaction router. The second comparison source queue is used to store response transactions sent by slave agents under the master agent corresponding to the response scoring board. The second destination port is used to store response transactions received by the master agent corresponding to the response scoring board.
[0051] In this embodiment, each request scoreboard is equipped with a source port (first source port) and a destination port (first destination port). The first source port and the first destination port are respectively connected to corresponding ports in the transport transaction router for connection. The first comparison source queue in the request scoreboard is used to store request transactions sent by the master agent corresponding to the request scoreboard, and the first destination port is used to receive request transactions received by the slave agents under the master agent corresponding to the request scoreboard. That is, the request scoreboard includes both request transactions sent by the master agent and request transactions received by the corresponding slave agents. By comparing these two request transactions, the correctness of the request transaction transmitted between the master agent and the slave agent can be determined.
[0052] In this embodiment, each response scoring board is equipped with a source port (second source port) and a destination port (second destination port). The second source port and the second destination port are respectively connected to the corresponding ports in the transport transaction router for connection. The second comparison source queue in the response scoring board is used to store response transactions sent by slave agents under the master agent corresponding to the response scoring board, and the second destination port is used to store response transactions received by the master agent corresponding to the response scoring board. That is, the response scoring board includes both response transactions sent by slave agents and response transactions received by the corresponding master agent. By comparing these two response transactions, the correctness of the response transaction transmitted between the slave agent and the master agent can be determined.
[0053] In this application, the request scoring board, through a first source port, a first destination port, and a first comparison source queue, is able to accurately receive and store request transactions, and provide data support for subsequent transmission correctness verification. The response scoring board, through a second source port, a second destination port, and a second comparison source queue, is able to accurately receive and store response transactions, and provide data support for subsequent transmission correctness verification.
[0054] In another embodiment, the primary agent corresponding to the request scoreboard sends the generated request transaction to the first source port via the driver (DRV) and the transport transaction router; the first source port then sends the request transaction to the first comparison source queue.
[0055] The slave agents under the master agent corresponding to the response scoring board send the generated response transaction to the corresponding port in the transport transaction router through the driver. The transport transaction router sends the response transaction to the second source port through arbitration. The second source port sends the response transaction to the second comparison source queue.
[0056] In this embodiment, both the primary and secondary agents are equipped with drivers. After the primary agent corresponding to the request scoreboard generates a request transaction, it sends it to the transport transaction router via the driver in the primary agent. Then, based on the type and destination address of the request transaction, the transport transaction router determines the transmission path of the request transaction and sends it to the first source port of the request scoreboard. When the request transaction arrives at the first source port, the first source port forwards it to the first comparison source queue. The first comparison source queue is used to store request transactions for subsequent comparison with request transactions received by the secondary agent.
[0057] In this embodiment, after receiving a request transaction from the primary agent, the agent processes the request transaction based on its content and generates a corresponding response transaction. The generated response transaction is sent to the transport transaction router via a driver in the agent. The transport transaction router determines the transmission path of the response transaction based on its type and destination address and sends it to the second source port of the response scoring board. In one example, the arbitration module inside the transport transaction router determines the transmission path of the response transaction according to predetermined arbitration rules and sends it to the correct second source port. When the response transaction arrives at the second source port, it is forwarded to the second comparison source queue. The second comparison source queue stores the response transactions for subsequent comparison with response transactions received by the primary agent.
[0058] In another embodiment, after the monitors (including read monitor RD_MON and write monitor WR_MON) in the slave agents under the master agent corresponding to the scoreboard receive the request transaction, they send the request transaction through the monitor port to the corresponding port in the transport transaction router. The transport transaction router then sends the request transaction to the first destination port through arbitration.
[0059] After receiving the response transaction, the monitor in the master agent corresponding to the response scoreboard sends the response transaction to the second destination port through the monitor port and the transport transaction router.
[0060] In this embodiment, both the master agent and the slave agent are equipped with a monitor, which includes a read monitor and a write monitor. After the monitor in the slave agent under the master agent corresponding to the request scoreboard receives the request transaction, it will send the request transaction to the corresponding port in the transmission transaction router through the monitor port. The transmission transaction router will send the request transaction to the first destination port through arbitration.
[0061] In this embodiment, after the monitor in the master agent corresponding to the response scoreboard receives the response transaction, it sends the response transaction to the second destination port through the monitor port and the transmission transaction router.
[0062] In another embodiment, in response to both the first comparison source queue and the first destination port being in out-of-order mode, the request transactions in the first comparison source queue are compared with the request transactions in the first destination port in ascending order of their entry time into the first comparison source queue. If the target request transaction in the first comparison source queue is the same as the request transaction in the first destination port, it is determined that the request transaction was transmitted correctly, the comparison is stopped, and the target request transaction is deleted from the first comparison source queue.
[0063] In response to both the first comparison source queue and the first destination port being in ascending order, the request transaction in the first destination port is compared with the request transaction with the earliest entry time in the first comparison source queue. If the comparison results are the same, it is determined that the request transaction was transmitted correctly, and the request transaction with the earliest entry time in the first comparison source queue is deleted from the first comparison source queue.
[0064] In this embodiment, out-of-order mode refers to the situation where transactions arrive at their destination outside the order they were sent during transmission. In this mode, request transactions may arrive at the destination port in different orders due to various reasons (such as different processing times, different path delays, etc.). The first comparison source queue in the request scoring board is used to store request transactions sent by the main agent, while the first destination port is used to receive request transactions received from the agent. When both the first comparison source queue and the first destination port are in out-of-order mode, the transactions in both need to be compared based on the out-of-order mode. First, for the request transaction in the first destination port, it is compared with the earliest request transaction that entered the queue in the first comparison source queue. If they are the same, the transmission of the request transaction is considered correct. If they are different, the request transaction in the first destination port is compared with the next earliest request transaction that entered the queue in the first comparison source queue, and so on. If it is determined that the transmission of the request transaction is correct, the target request transaction is deleted from the first comparison source queue to avoid duplicate comparisons. Once a matching transaction is found, the comparison process stops to improve verification efficiency.
[0065] In this embodiment, the ascending order mode refers to the situation where transactions arrive at their destination in the order they were sent during transmission. In this mode, request transactions arrive at the destination port strictly in the order they were sent. When both the first comparison source queue and the first destination port are in ascending order mode, it is necessary to compare the transactions in both based on the ascending order mode. First, the currently received request transaction is retrieved from the first destination port and then compared with the request transaction with the earliest entry time in the first comparison source queue. Specifically, it checks whether the transaction type, destination address, data, etc., are completely consistent. If the request transaction in the first destination port is completely consistent with the request transaction with the earliest entry time in the first comparison source queue, it is determined that the transmission of the request transaction is correct. At this time, the request transaction with the earliest entry time in the first comparison source queue is deleted from the queue to ensure that the transactions in the queue are always uncompared transactions. If they are inconsistent, an error is reported.
[0066] In another embodiment, in response to both the second comparison source queue and the second destination port being in out-of-order mode, the response transactions in the second comparison source queue are compared with the response transactions in the second destination port in ascending order of their entry time into the second comparison source queue. If the target response transaction in the second comparison source queue is the same as the response transaction in the second destination port, it is determined that the response transaction was transmitted correctly, the comparison is stopped, and the target response transaction is deleted from the second comparison source queue.
[0067] In response to both the second comparison source queue and the second destination port being in ascending order, the response transaction in the second destination port is compared with the earliest entry time response transaction in the second comparison source queue. If the comparison results are the same, it is determined that the response transaction was transmitted correctly, and the earliest entry time response transaction in the second comparison source queue is deleted from the second comparison source queue.
[0068] In this embodiment, when both the second comparison source queue and the second destination port are in out-of-order mode, it is necessary to compare the transactions in both based on the out-of-order mode. First, for the response transaction in the second destination port, it is compared with the earliest response transaction that entered the queue in the second comparison source queue. If they are the same, the response transaction is considered to have been transmitted correctly. If they are different, the response transaction in the second destination port is compared with the next earliest response transaction that entered the queue in the second comparison source queue, and so on. If it is determined that the transmission of the response transaction is correct, the target response transaction is removed from the second comparison source queue to avoid duplicate comparisons. Once a matching transaction is found, the comparison process stops to improve verification efficiency. This ensures that each response transaction is compared only once, avoiding unnecessary duplicate operations.
[0069] In this embodiment, when both the second comparison source queue and the second destination port are in ascending order mode, it is necessary to compare the transactions in both based on the ascending order mode. First, the currently received response transaction is retrieved from the second destination port and then compared with the earliest-entered response transaction in the second comparison source queue. Specifically, the transaction type, destination address, data, and other content are checked to ensure they are completely identical. If the response transaction in the second destination port is completely identical to the earliest-entered response transaction in the second comparison source queue, the transmission of that response transaction is determined to be correct. At this point, the earliest-entered response transaction in the second comparison source queue is removed from the queue to ensure that the transactions in the queue are always uncompared. If they are inconsistent, an error is reported.
[0070] Figure 2 A flowchart illustrating the scoreboard transaction comparison process in an embodiment of this application is shown, such as... Figure 2 As shown, regardless of whether it's a request transaction or a response transaction, after the comparison process begins, it first checks if there is a destination transaction (Trans), i.e., a transaction in the destination port. If not, an error is reported directly. If there is, it then checks if the destination transaction is out of order. If the destination transaction is out of order, it checks if the source transaction is out of order. If the source transaction is not out of order, an error is reported. If the source transaction is out of order, it is matched sequentially with each unmarked non-comparison transaction in the comparison source queue. If no matching transaction is found, an error is reported; if a match is found, the matching transaction is deleted from the comparison source queue. If the destination transaction is not out of order, it checks if the source transaction is not out of order. If the source transaction is not out of order, it matches with the first unmarked non-comparison transaction in the comparison source queue. If they don't match, an error is reported; if they match, the matching transaction is deleted from the comparison source queue. Then, it checks if the test case has ended. If not, it continues to loop to check if there is a new destination transaction. If it has ended, it checks if there are any unmarked non-comparison transactions in the comparison source queue. If they exist, an error is reported; otherwise, the process ends. Among them, the transactions marked as not to be compared are the transport transactions generated during anomaly testing, and these transport transactions will be ignored when comparing them.
[0071] In this application, by using different transaction comparison mechanisms in out-of-order and forward-order modes, a comprehensive verification of the correctness of request or response transaction transmission is achieved, further improving the accuracy and efficiency of verification.
[0072] In another embodiment, the verification parameters include at least one of the following: data width, ID width, address width, number of incomplete transactions, signal delay information of each master AXI signal group, random seed of test cases, and test type for each agent in the agent cluster.
[0073] In this embodiment, the AXI data width parameter defines the bit width of data transmission. The ID width parameter defines the range of transaction identifiers. The address width parameter defines the addressable address space size; for example, if the address width is set to 32 bits, the maximum addressable address space is 4GB. This parameter is crucial for verifying the address mapping and routing functions of the AXI interconnect module. The number of incomplete transactions parameter defines how many incomplete transactions can exist at any given time; for example, if the number of incomplete transactions is set to 16, the system can process 16 incomplete transactions simultaneously. This parameter is important for verifying the performance of the AXI interconnect module under high load. The signal delay information parameter defines the delay time of each main AXI signal group; for example, the delay of the read address channel signal can be set to 2 clock cycles, and the delay of the write data channel signal can be set to 3 clock cycles. The random seed parameter is used to generate random test cases. The test type parameter defines the type of test case; for example, the test type can be set to read / write test, error injection test, stress test, etc.
[0074] In this application, by configuring these verification parameters, the verification platform can simulate various working scenarios and conditions, ensuring the functional correctness and stability of the AXI interconnect module under different circumstances. This design not only improves the flexibility and adaptability of verification but also ensures the comprehensiveness and reliability of the verification process.
[0075] In another embodiment, the virtual sequence sender includes multiple sequence sender handles, which are associated with the sequence sender; the virtual sequence sender is used to control the sequential or parallel generation of request transactions by each master agent.
[0076] In this embodiment, the virtual sequencer sends messages to manage the sequencers of each agent through multiple sequencer handles, with each handle associated with a sequencer of one agent. These handles control and manage the behavior of each agent, ensuring they can generate and send transactions according to the requirements of the test cases. The virtual sequencer also controls how the main agents generate request transactions, i.e., sequentially or in parallel. In sequential mode, the virtual sequencer triggers the sequencer of each main agent in turn, generating request transactions in a predetermined order. For example, if a test case requires main agents 1, 2, and 3 to send request transactions sequentially, the virtual sequencer will first trigger main agent 1 through the sequencer handle associated with main agent 1, then main agent 2, and finally main agent 3. In parallel mode, the virtual sequencer triggers the sequencers of multiple main agents simultaneously, enabling them to generate and send request transactions in parallel. For example, if a test case requires main agents 1 and 2 to send request transactions simultaneously, the virtual sequencer will trigger both agents simultaneously through the sequencer handles associated with main agents 1 and 2. This allows for precise control over the agent's behavior and flexible control over how request transactions are generated.
[0077] In another embodiment, one end of the interface in the interface module is connected to the design under test, and the other end is connected to the virtual interface of each agent in the agent cluster; the AXI signal group includes read address channel signal, read data channel signal, write address channel signal, write data channel signal and write response channel signal.
[0078] In this embodiment, one end of the interface in the interface module is connected to the design under test (DUT). This connection ensures that the DUT can receive transactions from the proxy cluster and send transactions back to the proxy cluster. For example, the interface in the interface module may contain multiple signal channels for transmitting addresses, data, control signals, etc. The other end of the interface is connected to the virtual interface of each proxy in the proxy cluster. Each proxy's virtual interface is used to simulate the device behavior in the DUT and communicate with the interface in the interface module. For example, the virtual interface of the master proxy can receive request transactions from the interface module and send them to the DUT; the virtual interface of the slave proxy can receive response transactions from the DUT and send them back to the master proxy.
[0079] In this embodiment, the read address channel signal is used to transmit the address information of a read request transaction. The read data channel signal is used to transmit the data information of a read response transaction. The write address channel signal is used to transmit the address information of a write request transaction. The write data channel signal is used to transmit the data information of a write request transaction. The write response channel signal is used to transmit the confirmation information of a write response transaction.
[0080] Figure 3A schematic diagram of the structure of the transport transaction router in an embodiment of this application is shown, as follows: Figure 3 As shown, the transport transaction router includes a driver port and a monitor port for each agent, and a request scoreboard port and a response scoreboard port for each master agent.
[0081] The request scoreboard port and response scoreboard port in the transport transaction router each contain a source port and a destination port; the source port and destination port in the transport transaction router are connected to the source port and destination port of the corresponding request scoreboard and response scoreboard in the primary agent, respectively.
[0082] In this embodiment, as Figure 3 As shown, the verification platform includes 2 master agents and 4 slave agents, and the transport transaction router includes the driver port MDP_n of the nth master agent (e.g., ...). Figure 3 MDP_1 and MDP_2 in the middle) and the monitor port MMP_n of the nth master agent (such as MMP_n) Figure 3 MMP_1 and MMP_2 in the example). Also includes the nth drive port SDP_n from the agent (e.g., ...). Figure 3 SDP_1~SDP_4) and the nth monitor port SMP_n (e.g., ...) from the agent Figure 3 (SMP_1~SMP_4 in the original text). It also includes the request scoreboard port corresponding to each master agent, including the nth request scoreboard source port SCQSP_n (e.g., ...). Figure 3 SCQSP_1 and SCQSP_2 in the middle), and the nth request scoreboard destination port SCQDP_n (e.g. Figure 3 SCQDP_1 and SCQDP_2 in the example. It also includes the response scoreboard port corresponding to each master agent, including the nth response scoreboard source port SCSSP_n (e.g., ...). Figure 3 SCSSP_1 and SCSSP_2 in the nth response scoreboard destination port SCSDP_n (e.g. Figure 3 (SCSDP_1 and SSCSDP_2 in the text).
[0083] In this embodiment, the source port and destination port in the transport transaction router are connected to the source port and destination port of the corresponding request scoreboard and response scoreboard in the primary agent, respectively. For example... Figure 3As shown, the request scoring board (REQ_SCB_1) of the main agent 1 (M_AGT_1) has a source port SP and a destination port DP. The request scoring board (REQ_SCB_1) has a corresponding source port SCQSP_1 and a destination port SCQSP_1 in the transport transaction router. Therefore, the source port SP in the request scoring board (REQ_SCB_1) is connected to the corresponding source port SCQSP_1 in the transport transaction router, and the destination port DP in the request scoring board (REQ_SCB_1) is connected to the corresponding destination port SCQSP_1 in the transport transaction router.
[0084] In this application, a detailed design of the transaction transmission router ensures that transactions are accurately transmitted from the agent to the scoreboard. The transaction transmission router includes driver and monitor ports for each agent, and request and response scoreboard ports for each master agent. The proper connection of these ports and the transaction transmission flow ensure the correct transmission and verification of transactions within the verification platform. This design not only improves the flexibility and adaptability of the verification platform but also ensures the comprehensiveness and reliability of the verification process, thereby effectively verifying the functional correctness and performance of the AXI interconnect module under different operating conditions.
[0085] In another embodiment, the transport transaction router further includes a request arbitration module and a response arbitration module; the internal port connection method of the transport transaction router is as follows:
[0086] The primary agent's driver interface is connected to the source port of the corresponding request scoreboard;
[0087] The main agent's monitor interface is connected to the destination port of the corresponding response scoreboard;
[0088] The agent's driver interface is connected to the input port of the response arbitration module, and the output port of the response arbitration module is connected to the source port of the response scoring board.
[0089] The agent's monitor interface is connected to the in port of the request arbitration module, and the out port of the request arbitration module is connected to the destination port of the request scoreboard.
[0090] The number of inbound ports for the request arbitration module and the response arbitration module is the same as the number of slave agents, and the number of outbound ports for the request arbitration module and the response arbitration module is the same as the number of master agents.
[0091] In this embodiment, the transmission transaction router also includes a request arbitration module and a response arbitration module. The request arbitration module is used to process the request transmission transactions received from the agent monitor interface, determine the source master device of the request transmission transaction according to the predetermined arbitration rules (such as address mapping, ID mapping, etc.), and then assign the transaction to the correct scoring board. The response arbitration module is responsible for processing the response transmission transactions generated by the driver interface, determining the destination master device of the response transmission transaction according to the predetermined arbitration rules, and accurately assigning the transaction to the corresponding scoring board.
[0092] In this embodiment, the port connection method inside the transport transaction router is as follows:
[0093] The primary agent's driver interface is connected to the source port of the corresponding request scoreboard. For example... Figure 3 The driver interface MDP_1 of the master agent 1 (M_AGT_1) is connected to the source port SCQSP_1 of the corresponding request scoring board.
[0094] The main agent's monitor interface is connected to the destination port of the corresponding response scoreboard. For example... Figure 3 The monitor interface MMP_1 of the main agent 1 (M_AGT_1) is connected to the destination port (SCSDP_1) of the corresponding response scoring board.
[0095] like Figure 3 In this configuration, all the driver interfaces of the agent are connected to the input ports of the response arbitration module, and the output ports of the response arbitration module are connected to the source ports of the response scoring board.
[0096] like Figure 3 In this process, all the monitoring interfaces of the agent are connected to the in port of the request arbitration module, and the out port of the request arbitration module is connected to the destination port of the request scoring board.
[0097] The number of inbound ports for the request arbitration module and the response arbitration module is the same as the number of slave agents, and the number of outbound ports for the request arbitration module and the response arbitration module is the same as the number of master agents.
[0098] In another embodiment, the transport transaction router is also used for:
[0099] In response to each request transaction received from the agent's monitor interface or the corresponding response transaction generated by the driver interface, the request transaction or response transaction is sent to the corresponding monitor interface or driver interface in the transport transaction router, and to the corresponding request arbitration module or response arbitration module. The request arbitration module or response arbitration module determines the main agent corresponding to the request transaction or response transaction based on the predetermined arbitration rules, and sends the request transaction or response transaction to the scoring board port corresponding to the main agent.
[0100] In this embodiment, when a request transaction sent by the primary agent is received from the primary agent's monitor interface, the transaction is forwarded to the corresponding monitor interface of the transport transaction router. When the primary agent processes the request transaction and generates a response transaction, the response transaction is sent to the corresponding driver interface of the transport transaction router through the primary agent's driver interface. Both request and response transactions, once they reach the corresponding interface of the transport transaction router, are sent to the corresponding arbitration module. Request transactions are sent to the request arbitration module, and response transactions are sent to the response arbitration module. The arbitration module determines the transmission path of the transaction according to predetermined arbitration rules. After determining the primary agent corresponding to the transaction, the arbitration module sends the transaction to the scoring board port corresponding to that primary agent. Thus, the transport transaction router can efficiently manage the transmission and scheduling of transactions, ensuring that transactions correctly reach the corresponding scoring board for verification. This intelligent scheduling mechanism based on arbitration rules improves the flexibility and adaptability of the verification platform, while also ensuring the accuracy and reliability of the verification process.
[0101] In another embodiment, the principal agent corresponding to the request or response transaction is determined based on predetermined arbitration rules, including at least one of the following:
[0102] If the address mapping bits of a request transaction or response transaction contain the corresponding primary agent information, then the primary agent corresponding to the request transaction or response transaction is determined based on the primary agent information.
[0103] If the address mapping bits of a request transaction or response transaction do not contain the corresponding primary agent information, and there are secondary address mapping bits in the non-address mapping bits, then the primary agent corresponding to the request transaction or response transaction is determined in the secondary address mapping bits.
[0104] If the address mapping bits in the response to a request transaction or response transaction do not contain the corresponding primary agent information, and there are no secondary address mapping bits in the non-address mapping bits, then the primary agent corresponding to the secondary agent is determined based on the correspondence between the secondary agent and the primary agent.
[0105] In this embodiment, the address mapping bits typically contain information related to the target address or source address. This address information can be used to determine the primary agent corresponding to the transaction. If the address mapping bits of the request or response transaction contain explicit primary agent information, the arbitration module can directly determine the primary agent corresponding to the transaction based on this information.
[0106] In this embodiment, if the address mapping bits of a request or response transaction do not contain enough information to determine the primary agent, but auxiliary address mapping bits exist in the non-address mapping bits, the arbitration module can use this auxiliary information to determine the primary agent. The auxiliary address mapping bits are manually set within the normal address bit range (i.e., the non-address mapping bits) when generating test cases in the sequence. Since the auxiliary address mapping bits are within the normal address bit range and are not filtered during routing, they can be used for arbitration in the arbitration module. Besides using address storage for mapping information, it can also be used for ID storage, in the same way.
[0107] In this embodiment, if neither the address mapping bits nor the non-address mapping bits of the request or response transaction contain sufficient information to determine the primary agent, the arbitration module can use the correspondence between the secondary agent and the primary agent to determine the primary agent. For example, secondary agent 1 may be pre-set to communicate only with primary agent 1, and secondary agent 2 may be pre-set to communicate only with primary agent 2.
[0108] In related technologies, during the arbitration process, if the design under test removes the information indicating the destination slave device when routing transmission transactions to the master device (e.g., the high 4 bits of the address are used to select the slave device, but are removed when transmitting to the slave device port), then the transmission transactions generated by the slave agent cannot determine the corresponding master agent through address mapping (because the address information in the transmission transaction does not contain the high 4 bits used for address mapping). The solution in this embodiment avoids the problem of not being able to determine the corresponding master agent through assisted arbitration.
[0109] According to embodiments of this application, this application also provides an electronic device, including: the AXI interconnect module verification platform of this application.
[0110] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this application can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution of this application can be achieved, and this is not limited herein.
[0111] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of that feature. In the description of this application, "a plurality of" means two or more, unless otherwise explicitly specified.
[0112] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. An AXI interconnect module verification platform, characterized in that, The verification platform includes: Test module, interface module, test case configuration module, and transport transaction router; The testing module includes a proxy cluster, a scoreboard unit, a parameter configuration unit, and a virtual sequence sender. The proxy cluster includes multiple master proxies and multiple slave proxies. Each master proxy corresponds to a set of slave AXI signal groups, and each slave proxy corresponds to a set of master AXI signal groups. The scoreboard unit configures a request scoreboard and a response scoreboard for each master proxy. The request scoreboard is used to verify the correctness of request transaction transmission, and the response scoreboard is used to verify the correctness of response transaction transmission. The parameter configuration unit is used to configure all verification parameters in the verification environment. The virtual sequence sender is used to control the sequence senders of all proxies to generate request or response transactions based on test cases. The interfaces in the interface module are used to connect the design under test to each agent in the agent cluster, and each interface is used to manage a group of AXI signal groups; The test case configuration module is used to adjust the verification parameters in the parameter configuration unit based on the current verification environment, generate corresponding test cases based on the adjusted verification parameters, and send the test cases to the virtual sequence sender. The transmission transaction router is used to allocate request or response transactions sent or received by the agents in the agent cluster to the scoreboard in the scoreboard unit; The master agent is used to generate a request transaction based on the test case and send the request transaction to the slave agent through the design under test. The agent processes the request transaction to generate a response transaction, and sends the response transaction to the main agent through the design under test; The request scoring board is provided with a first source port, a first destination port, and a first comparison source queue; the first source port and the first destination port are respectively connected to corresponding ports in the transmission transaction router; the first comparison source queue is used to store request transactions sent by the master agent corresponding to the request scoring board; the first destination port is used to receive request transactions received by the slave agent under the master agent corresponding to the request scoring board. The response scoring board is provided with a second source port, a second destination port, and a second comparison source queue; the second source port and the second destination port are respectively connected to corresponding ports in the transmission transaction router; the second comparison source queue is used to store response transactions sent by slave agents under the master agent corresponding to the response scoring board; the second destination port is used to store response transactions received by the master agent corresponding to the response scoring board. In response to both the first comparison source queue and the first destination port being in out-of-order mode, the request transactions in the first comparison source queue are compared with the request transactions in the first destination port in ascending order of their entry time into the first comparison source queue. If the target request transaction in the first comparison source queue is the same as the request transaction in the first destination port, it is determined that the request transaction is transmitted correctly, the comparison is stopped, and the target request transaction is deleted from the first comparison source queue. In response to both the first comparison source queue and the first destination port being in ascending order mode, the request transaction in the first destination port is compared with the request transaction with the earliest entry time in the first comparison source queue. If the comparison results are the same, it is determined that the request transaction is transmitted correctly, and the request transaction with the earliest entry time in the first comparison source queue is deleted from the first comparison source queue.
2. The verification platform according to claim 1, characterized in that, The primary agent corresponding to the request scoreboard sends the generated request transaction to the first source port through the driver and the transport transaction router; The first source port sends the request transaction to the first comparison source queue; The slave agent under the master agent corresponding to the response scoreboard sends the generated response transaction to the corresponding port in the transport transaction router through the driver, and the transport transaction router sends the response transaction to the second source port through arbitration; The second source port sends the response transaction to the second comparison source queue.
3. The verification platform according to claim 1, characterized in that, After the monitor in the slave agent under the master agent corresponding to the request scoreboard receives the request transaction, it sends the request transaction to the corresponding port in the transmission transaction router through the monitor port. The transmission transaction router sends the request transaction to the first destination port through arbitration. After receiving the response transaction, the monitor in the master agent corresponding to the response scoreboard sends the response transaction to the second destination port through the monitor port and the transmission transaction router.
4. The verification platform according to claim 1, characterized in that, In response to both the second comparison source queue and the second destination port being in out-of-order mode, the response transactions in the second comparison source queue are compared with the response transactions in the second destination port in ascending order of their entry time into the second comparison source queue. If the target response transaction in the second comparison source queue is the same as the response transaction in the second destination port, it is determined that the response transaction was transmitted correctly, the comparison is stopped, and the target response transaction is deleted from the second comparison source queue. In response to both the second comparison source queue and the second destination port being in ascending order mode, the response transaction in the second destination port is compared with the earliest entry time response transaction in the second comparison source queue. If the comparison results are the same, it is determined that the response transaction was transmitted correctly, and the earliest entry time response transaction in the second comparison source queue is deleted from the second comparison source queue.
5. The verification platform according to claim 1, characterized in that, The verification parameters include at least one of the following: the data width, ID width, address width, number of incomplete transactions, signal delay information of each main AXI signal group, random seed of the test case, and test type of each agent in the agent cluster.
6. The verification platform according to claim 1, characterized in that, The virtual sequence transmitter includes multiple sequence transmitter handles, and the sequence transmitter handles are associated with the sequence transmitter; The virtual sequence sender is used to control the sequential or parallel generation of the request transactions by each of the master agents.
7. The verification platform according to claim 1, characterized in that, One end of the interface in the interface module is connected to the design under test, and the other end is connected to the virtual interface of each agent in the agent cluster. The AXI signal group includes read address channel signal, read data channel signal, write address channel signal, write data channel signal, and write response channel signal.
8. The verification platform according to claim 1, characterized in that, The transport transaction router includes a driver port and a monitor port for each agent, and a request scoreboard port and a response scoreboard port for each master agent. The request scoreboard port and response scoreboard port in the transport transaction router each contain a source port and a destination port; The source port and destination port in the transmission transaction router are respectively connected to the source port and destination port of the request scoreboard and response scoreboard in the corresponding master agent.
9. The verification platform according to claim 8, characterized in that, The transmission transaction router also includes a request arbitration module and a response arbitration module; the internal port connection method of the transmission transaction router is as follows: The driver interface of the main agent is connected to the source port of the corresponding request scoreboard; The monitoring interface of the main agent is connected to the destination port of the corresponding response scoreboard; The driver interface of the agent is connected to the input port of the response arbitration module, and the output port of the response arbitration module is connected to the source port of the response scoring board. The monitoring interface of the agent is connected to the in port of the request arbitration module, and the out port of the request arbitration module is connected to the destination port of the request scoring board. The number of inbound ports of the request arbitration module and the response arbitration module is the same as the number of slave agents, and the number of outbound ports of the request arbitration module and the response arbitration module is the same as the number of master agents.
10. The verification platform according to claim 9, characterized in that, The transport transaction router is also used for: In response to each request transaction received from the monitoring interface of the agent or a corresponding response transaction generated by the driver interface, the request transaction or response transaction is sent to the corresponding monitoring interface or driver interface in the transport transaction router, and the request transaction or response transaction is also sent to the corresponding request arbitration module or response arbitration module. The request arbitration module or response arbitration module determines the main agent corresponding to the request transaction or response transaction based on a predetermined arbitration rule, and sends the request transaction or response transaction to the scoreboard port corresponding to the main agent.
11. The verification platform according to claim 10, characterized in that, The determination of the principal agent corresponding to the request or response transaction based on predetermined arbitration rules includes at least one of the following: If the address mapping bits of the request transaction or response transaction contain corresponding master proxy information, then the master proxy corresponding to the request transaction or response transaction is determined based on the master proxy information. If the address mapping bits of the request transaction or response transaction do not contain the corresponding primary agent information, and there are secondary address mapping bits in the non-address mapping bits, then the primary agent corresponding to the request transaction or response transaction is determined from the secondary address mapping bits. If the address mapping bits of the response transaction do not contain the corresponding primary agent information, and there are no auxiliary address mapping bits in the non-address mapping bits, then the primary agent corresponding to the secondary agent is determined based on the correspondence between the secondary agent and the primary agent.
12. An electronic device, characterized in that, include: The AXI interconnect module verification platform according to any one of claims 1-11.
Citation Information
Patent Citations
Bus verification platform
CN113268435A
Universal verification component based on UVM (Universal Verification Module) and feedback control method
CN115357441A