{"id":23438,"library":"cocotb-bus","title":"cocotb-bus","description":"cocotb-bus provides bus interface components for cocotb, including AXI, Avalon, and Wishbone protocols. Current version 0.3.0 supports cocotb 2.0. Release cadence is low, with major updates tied to cocotb versions.","status":"active","version":"0.3.0","language":"python","source_language":"en","source_url":"https://github.com/cocotb/cocotb-bus","tags":["cocotb","bus","axi","avalon","wishbone","verification","hdl","simulation"],"install":[{"cmd":"pip install cocotb-bus","lang":"bash","label":"Install via pip"}],"dependencies":[{"reason":"Runtime dependency; cocotb-bus is a companion library for cocotb.","package":"cocotb","optional":false}],"imports":[{"note":"AXIMaster moved to cocotb-bus in cocotb 2.0","wrong":"from cocotb.drivers import AXIMaster","symbol":"AXIMaster","correct":"from cocotb_bus.drivers import AXIMaster"},{"note":null,"wrong":null,"symbol":"AXISlave","correct":"from cocotb_bus.drivers import AXISlave"},{"note":null,"wrong":null,"symbol":"AvalonMaster","correct":"from cocotb_bus.drivers import AvalonMaster"},{"note":null,"wrong":null,"symbol":"WishboneMaster","correct":"from cocotb_bus.drivers import WishboneMaster"},{"note":null,"wrong":null,"symbol":"AXIStreamDriver","correct":"from cocotb_bus.drivers import AXIStreamDriver"}],"quickstart":{"code":"import cocotb\nfrom cocotb.clock import Clock\nfrom cocotb.triggers import ClockCycles\nfrom cocotb_bus.drivers import AXIMaster\nfrom cocotb_bus.monitors import AXIMonitor\n\n@cocotb.test()\nasync def test_axi(dut):\n    cocotb.start_soon(Clock(dut.clk, 10, units='ns').start())\n    # Reset\n    dut.rstn.value = 0\n    await ClockCycles(dut.clk, 5)\n    dut.rstn.value = 1\n    # Create AXI master\n    axi_master = AXIMaster(dut, \"axi\", dut.clk)\n    # Write example\n    await axi_master.write(0x100, 0xDEADBEEF)\n    # Read back\n    data = await axi_master.read(0x100, 4)\n    dut._log.info(\"Read data: %s\", data)","lang":"python","description":"Basic cocotb test using cocotb-bus AXI master and monitor."},"warnings":[{"fix":"Upgrade cocotb to 2.0 or use cocotb-bus <=0.2.1 for cocotb 1.x.","message":"cocotb-bus 0.3.0 only supports cocotb 2.0. Do not use with cocotb 1.x.","severity":"breaking","affected_versions":">=0.3.0,<0.4.0"},{"fix":"Import from cocotb_bus.drivers, not cocotb.drivers.","message":"Import paths changed in cocotb 2.0. Bus drivers are no longer in cocotb proper; they moved to cocotb-bus.","severity":"gotcha","affected_versions":"all"},{"fix":"Upgrade to cocotb-bus 0.3.0 and cocotb 2.0.","message":"cocotb-bus 0.2.x is deprecated; not compatible with cocotb 2.0.","severity":"deprecated","affected_versions":">=0.2.0,<0.3.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run 'pip install cocotb-bus' in the same Python environment as cocotb.","cause":"cocotb-bus not installed or installed in wrong environment.","error":"ModuleNotFoundError: No module named 'cocotb_bus'"},{"fix":"Change import to 'from cocotb_bus.drivers import ...'","cause":"Using cocotb 2.0 where drivers moved to cocotb-bus.","error":"AttributeError: module 'cocotb' has no attribute 'drivers'"},{"fix":"Use 'from cocotb_bus.drivers import AXIMaster'.","cause":"AXIMaster no longer part of cocotb core in version 2.0.","error":"ImportError: cannot import name 'AXIMaster' from 'cocotb.drivers'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}