APPLICATION OF OBJECT-ORIENTED PROGRAMMING CONCEPTIONFOR VERIFICATION OF HDL-BASED DIGITAL DESIGNS - MAIKIV, IHOR; OSOLINSKIY, OLEKSANDR; BYKOVYY, PAVLO; FEDOROVYCH, VIKTOR (Herald of Khmelnytskyi National University. Technical sciences, 2025)
The article presents the application of an object-oriented methodology for testbench development using SystemVerilog. This approach extends the capabilities of Verilog with complex data types, including classes and principles of object-oriented programming (OOP). The structural and object-oriented approaches are compared in the article. The advantages of OOP are highlighted in the context of code reuse, scalability, and clarity of testbench architecture. The structured verification environment is presented. It is based on transaction-level modeling and incorporates a set of modules (driver, monitor, scoreboard). This methodology allows designers to clearly separate the tasks between different levels and improve maintainability and code reuse.The practical application of object-oriented approach to testbench design is demonstrated on the UART communication protocol. The developed verification environment supports both transmission and receiving paths (TX and RX), and provides mechanisms for transaction generation, data monitoring and automated result checking. The use of virtual interfaces, mailboxes, and dynamically parameterized transactions ensures that the environment can be easily adapted to different DUT configurations and extended with new functionality. The effectiveness of the proposed approach is validated by implementing and simulating a testbench in a iSIM simulation environment of Xilinx Vivado 2020.2 software package. The obtained results demonstrate the benefits of object-oriented principles in terms of code reusability, modularity and readability that make this approach well-suitable for big and complex verification tasks.The development of parameterized modules (driver, monitor, control block) that will simplify the verification process of widely used serial interface controllers such as I2C, SPI, QSPI, LIN etc. will be the next step of the research.
Keywords: SystemVerilog; object-oriented programming; test environment; test-bench