{"id":45950,"library":"pyuvm","title":"pyuvm","description":"A Python implementation of the Universal Verification Methodology (UVM) using cocotb. Version 4.0.1 supports Python >=3.6. Release cadence is irregular.","status":"active","version":"4.0.1","language":"python","source_language":"en","source_url":"https://github.com/pyuvm/pyuvm","tags":["verification","uvm","cocotb","simulation"],"install":[{"cmd":"pip install pyuvm","lang":"bash","label":"Default"}],"dependencies":[{"reason":"Required for simulation and testbench execution","package":"cocotb","optional":false}],"imports":[{"note":"pyuvm must be imported as pyuvm; uvm is not a top-level module.","wrong":"import uvm","symbol":"uvm","correct":"import pyuvm"},{"note":"Common mistake: using uvm instead of pyuvm.","wrong":"from uvm import Test","symbol":"Test","correct":"from pyuvm import Test"},{"note":"uvm_component is a decorator within pyuvm, not a separate module.","wrong":"from uvm_component import uvm_component","symbol":"uvm_component","correct":"from pyuvm import uvm_component"}],"quickstart":{"code":"import pyuvm\nfrom pyuvm import uvm_component, Test, uvm_sequence_item\n\n@uvm_component\nclass MyDriver(pyuvm.uvm_driver):\n    def build_phase(self):\n        pass\n\n@uvm_component\nclass MyEnv(pyuvm.uvm_env):\n    def build_phase(self):\n        pass\n\nclass MyTest(Test):\n    def build_phase(self):\n        self.env = MyEnv(\"env\", self)\n\nif __name__ == \"__main__\":\n    from pyuvm import run_test\n    run_test(MyTest)\n","lang":"python","description":"Basic UVM test structure using pyuvm components and run_test()."},"warnings":[{"fix":"Ensure Python >=3.6 and cocotb >=1.6.","message":"pyuvm 4.x dropped support for Python 2 and older cocotb versions.","severity":"breaking","affected_versions":">=4.0.0"},{"fix":"Always use 'import pyuvm' and 'from pyuvm import ...'.","message":"You must import components from pyuvm, not from uvm. Many examples mistakenly use 'import uvm'.","severity":"gotcha","affected_versions":"all"},{"fix":"Use the provided base classes and override build_phase properly.","message":"uvm_sequence and uvm_sequencer usage changed in pyuvm 3.x+; direct instantiation may fail.","severity":"deprecated","affected_versions":">=3.0.0"}],"env_vars":null,"search_vec":"'3.6':17 '4.0.1':14 'cadenc':19 'cocotb':12,24 'implement':4 'irregular':21 'methodolog':9 'python':3,16 'pyuvm':1 'releas':18 'simul':25 'support':15 'univers':7 'use':11 'uvm':10,23 'verif':8,22 'version':13","created_at":"2026-06-07T12:57:32.380200+00:00","updated_at":"2026-06-07T12:57:32.380200+00:00","problems":[{"fix":"Use 'import pyuvm' or 'from pyuvm import ...'.","cause":"Importing 'uvm' instead of 'pyuvm'.","error":"ModuleNotFoundError: No module named 'uvm'"},{"fix":"Ensure all UVM phases (build_phase, connect_phase, etc.) are properly overridden.","cause":"Missing required method implementations (e.g., build_phase).","error":"TypeError: Can't instantiate abstract class ... with abstract methods ..."},{"fix":"Call super().build_phase() in build_phase before accessing hierarchy.","cause":"Trying to access parent or child component before it is built.","error":"AttributeError: 'NoneType' object has no attribute 'get_name'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/pyuvm/pyuvm","github":"https://github.com/pyuvm/pyuvm","docs":null,"changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-29","last_verified":"2026-06-29","next_check":"2026-07-29","install_tag":null}}