Skip to content

Interface class shall not be nested within another interface class. (IEEE 1800-2023 8.26) #34

@s3rg1o7

Description

@s3rg1o7

I get the following error when trying to run the example from examples/call/cocotb/call_sv_bfm

hdl_if/share/dpi/pyhdl_if_icall_api.svh:21:11: Interface class shall not be nested within another interface class. (IEEE 1800-2023 8.26)

My setup:

I am trying to run from within a conda environment, to mimic the setup I have in my project.

$ verilator --version
Verilator 5.038 2025-07-08 rev v5.038

$ pip list | grep pyhdl
pyhdl                         0.3.0

I've installed all the dependencies from the and in order to reach a point where I can run the make command I needed to do the following 3 steps:

  1. install packages:
     pip install cython
     pip install setuptools_scm
  2. set BUILD_NUM=1 by hand in src/hdl_if/build_num.py
  3. ran
    ivpm update -a 
    python setup.py build_ext --inplace
  4. modify examples/call/cocotb/call_sv_bfm/Makefile to add custom libraries:
    export PYTHONPATH := ../../../../src/:../../../../packages/:../../../../packages/pytypeworks/src/:$(PYTHONPATH)    
    
  5. added missing signals err and sel to the init_bfm instantiation:
        ...
        
        wire[31:0] dat_r, dat_w;
        wire[31:0] adr;
        wire stb, cyc, we;
        wire err, sel;
        reg  ack_r;
        wire ack = (ack_r && cyc && stb);
        
        ...
    
        WishboneInitiatorBFM    init_bfm(
            .clock(clk),
            .reset(reset),
            .err(err),
            .sel(sel),
            .adr(adr),
            .dat_r(dat_r),
            .dat_w(dat_w),
            .stb(stb),
            .cyc(cyc),
            .ack(ack),
            .we(we)
        );
    
    endmodule

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions